Ruby on Rails — це фреймворк для веб-застосунків, написаний мовою програмування Ruby. Він слідує архітектурному шаблону Model-View-Controller (MVC) і розроблений для того, щоб зробити веб-розробку більш зручною та ефективною.
Ось деякі основні концепції Ruby on Rails:
1. Архітектура MVC:
- Model (Модель): Представляє дані та бізнес-логіку застосунку. Взаємодіє з базою даних, обробляє дані та визначає поведінку застосунку.
- View (Представлення): Відповідає за презентацію та інтерфейс користувача. Відображає дані користувачу та передає введені дані контролеру для обробки.
- Controller (Контролер): Обробляє введення користувача, здійснює їх обробку і взаємодіє з моделлю та представленням для досягнення бажаного результату. Контролер виступає як посередник між моделлю та представленням.
2. Конвенція замість конфігурації (Convention over Configuration, CoC):
- Ruby on Rails дотримується принципу конвенції замість конфігурації, що означає, що розробникам не потрібно вказувати кожну деталь застосунку. Натомість, фреймворк робить припущення на основі стандартів, знижуючи необхідність у явній конфігурації.
3. Не повторюйся (Don’t Repeat Yourself, DRY):
- Цей принцип заохочує до усунення надмірності в коді. У Ruby on Rails загальні функціональності та шаблони коду абстрагуються в багаторазові компоненти, такі як допоміжні методи (helper methods) та часткові представлення (partial views).
4. Active Record:
- Active Record — це система об'єктно-реляційного відображення (ORM) у Rails. Вона дозволяє взаємодіяти з базою даних за допомогою коду на Ruby, замість використання SQL. Моделі в Rails зазвичай успадковують від ActiveRecord::Base і представляють таблиці бази даних.
5. RESTful маршрути (RESTful Routes):
- Rails надає перевагу RESTful маршрутам, які відображають HTTP методи (GET, POST, PUT, DELETE) на дії контролера. Це стандартизування спрощує проєктування та обслуговування веб-застосунків.
6. Шаблони (Scaffolding):
- Rails надає генератори для створення шаблонів, які можуть автоматично створювати базову MVC структуру для ваших моделей, представлень та контролерів. Це корисно для швидкого прототипування застосунку.
7. Gemfile та Bundler:
- Gemfile — це конфігураційний файл, в якому вказані залежності (gems) для вашого Rails застосунку. Bundler — це інструмент для управління залежностями gems, що забезпечує встановлення правильних версій.
8. Rails Console:
- Rails надає потужний командний інтерфейс, який називається Rails Console, що дозволяє взаємодіяти з вашим застосунком та його базою даних через REPL (Read-Eval-Print Loop).
9. Asset Pipeline:
- Asset Pipeline в Rails управляє та пакує ресурси, такі як стилі (stylesheets) та JavaScript файли. Він включає такі функції, як мінімізація (minification) та відбитки (fingerprinting) для оптимізації доставки ресурсів.
10. Проміжне ПЗ (Middleware):
- Проміжне ПЗ в Rails складається з ряду фільтрів, які виконуються до та після того, як запит потрапляє в застосунок. Це дозволяє розробникам налаштовувати цикл запит-відповідь.
Це лише кілька основних концепцій Ruby on Rails. Згодом, поглиблюючи знання в розробці на Rails, ви зустрінете додаткові функції та практики, які підвищать ефективність та підтримуваність ваших застосунків.
Перекладено з: Ruby on Rails fundamental concepts