ГоловнаВсі публікаціїКатегоріїПро проєкт

Що таке Сonvention over Сonfiguration (в контексті RoR і не тільки)?

Обкладинка нотатки: Що таке Сonvention over Сonfiguration (в контексті RoR і не тільки)?
Зміст дописунатисність на посилання, щоб перейти до потрібного місця
Convention over Configuration (CoC) — це принцип, який полягає в тому, що система або фреймворк вже має конфігурації за замовчуванням, дозволяючи розробнику уникати написання / створення налаштувань самостійно. Це значно скорочує кількість рішень, які потрібно приймати, і зменшує час на налаштування та розробку загалом.
Вперше цей підхід здобув популярність завдяки фреймворку Ruby on Rails. В основі Rails закладено ідею, що більшість розробників будуть виконувати подібні завдання схожими способами. Тому Rails забезпечує типові рішення, такі як структуризація файлів, назви моделей, контролерів і баз даних. Якщо дотримуватися прийнятих угод (conventions), система автоматично налаштовує багато аспектів програми. Наприклад, модель з назвою Article буде автоматично відповідати таблиці articles у базі даних, без потреби в додатковій конфігурації.
Це звільняє розробника від рутинної конфігурації. Виняткові випадки, де потрібна індивідуалізація, легко налаштовуються окремо, однак основний обсяг завдань можна виконати швидше, користуючись заздалегідь визначеними умовностями.
Позбавлення від надмірної конфігурації дозволяє зосередитися на логіці програми, а не на налаштуваннях. Це пришвидшує розробку і зменшує кількість помилок, оскільки менше конфігурацій означає менше місць, де може бути баг. Водночас цей підхід можна зустріти і за межами Rails. Багато сучасних фреймворків та інструментів використовують подібний підхід — від JavaScript-бібліотек до систем управління інфраструктурою.
CoC є одним із ключових підходів до спрощення процесу розробки, де програми, які відповідають встановленим угодам, потребують мінімальної конфігурації, а розробник отримує більше свободи для створення функціоналу замість роботи з дрібними налаштуваннями.

Приклад CoC (RoR)

Давайте розглянемо приклад CoC трохи детальніше, щоб зрозуміти де саме ми економимо час та зменшуємо ймовірність багів через доданий кастомний код.
coc-scheme.png
  1. Розробник створює модель – наприклад, модель Article у Rails.
  2. Оскільки Convention over Configuration передбачає використання угод (конвенцій), Rails автоматично очікує, що таблиця для цієї моделі буде називатися articles (стандартна множина для англійських іменників).
  3. Rails автоматично підключає цю модель до таблиці articles у базі даних, без необхідності додаткових налаштувань. Якщо угода підходить, додаткова конфігурація не потрібна.
Такий підхід звільняє від зайвої конфігурації, оскільки система покладається на типові налаштування.
Якщо простими словами - фреймворк вже має загальні конфігурації, які не треба вигадувати самому, а треба просто слідувати конвенціям, щоб все працювало "прямо з коробки".
Що таке SCM (Source Control Management)?
21.08.2024 21:46

Що таке SCM (Source Control Management)?

meme code
meme code@memecode
Яку ієрархію має DOM (Document Object Model)?
23.08.2024 09:22

Яку ієрархію має DOM (Document Object Model)?

meme code
meme code@memecode
Як працює модель штучного інтелекту?
15.09.2024 16:42

Як працює модель штучного інтелекту?

meme code
meme code@memecode
Що означає реляційний (в контексті реляційних баз даних)?
21.09.2024 08:27

Що означає реляційний (в контексті реляційних баз даних)?

meme code
meme code@memecode
Що таке RDBMS (relational database management system / реляційна система управління базами даних)?
21.09.2024 08:56

Що таке RDBMS (relational database management system / реляційна система управління базами даних)?

meme code
meme code@memecode
 Що означає ACID принцип у програмуванні?
24.09.2024 20:31

Що означає ACID принцип у програмуванні?

meme code
meme code@memecode
Округлення десяткових чисел: математичні правила, JavaScript і Ruby
18.10.2024 12:59

Округлення десяткових чисел: математичні правила, JavaScript і Ruby

meme code
meme code@memecode
[Фікс] Factory not registered: "user" (KeyError) (FactoryBot / Rails 7)
07.12.2024 10:46

[Фікс] Factory not registered: "user" (KeyError) (FactoryBot / Rails 7)

meme code
meme code@memecode
Що таке PORO в Ruby?
08.12.2024 12:46

Що таке PORO в Ruby?

meme code
meme code@memecode
Чим відрізняються spec_helper.rb і rails_helper.rb у RSpec?
08.12.2024 13:53

Чим відрізняються spec_helper.rb і rails_helper.rb у RSpec?

meme code
meme code@memecode
09.12.2024 14:50

[Фікс] No such file or directory @ rb_sysopen - tmp/pids/server.pid

meme code
meme code@memecode
Що потрібно знати, щоб побудувати успішну кар'єру на фрілансі в IT
23.12.2024 16:03

Що потрібно знати, щоб побудувати успішну кар'єру на фрілансі в IT

meme code
meme code@memecode