Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ruby on Rails – висхідна зірка комп’ютерних інф...docx
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
771.77 Кб
Скачать

3. Концептуальна суть Rails та Django

Спільні риси:

  • Об’єктна архітектура – використовуються класи, інкапсулюються дані;

  • Легка розробка – швидке і якісне виконання будь-яких змін;

  • DRY (Don’t Repeat Yourself);

  • Просте моделювання даних з можливістю інкапсуляції бізнес логіки в об’єкти, та можливість створення, зчитування, оновлення, видалення таблиці з бази даних;

  • Карта подій, коли при виклику програми остання доступається до моделі і повертає відповідь у вигляді сторінки на браузері;

  • Використання відокремлених методів, таких як HTML чи CSS для відображення сторінки;

По замовчуванню обидві платформи мають:

  • вбудовану систему тестування;

  • генерації документів;

  • вбудований веб сервер (Mongrel, WEBrick у Rails);

Підтримують:

  • скрипти для створення нових проектів з різних файлів;

Відмінності:

- Rails має вигляд «інтелектуальної платформи», яка думає разом із розробником. Тому увесь результат має дещо «магічний», навіть «казковий» вигляд, на відміну від Django, де результат – це зусилля розробника;

- Правило «обмеження звільняють» надає Rails можливість автоматичного створення елементів програм, що складають єдине ціле. Сайт, написаний на Django, будується з кількох програм, віддалених одна від одної, які потрібно підключати;

- Домовленість по конфігурації (описані вище у «Переваги Rails»);

- Стандартизована AJAX бібліотека у Rails. Django ж не інкапсулював його у платформу;

- Обробники URL в Django конфігуруються явно за допомогою регулярних виразів, а не виводяться із структури контролерів автоматично;

- Концепція MVC має дещо інший вигляд View-Template-Controller (Вид-Шаблон-Контроллер).

4. Модель і база даних

Для опису особливостей кожної із платформ я знову ж таки старатимусь описати все по пунктам. Отже:

  • обидві платформи використовують об’єктно-реляційне відображення (ORM), яке присутнє між базою даних і об’єктами класу. У Rails воно представлене за допомогою Active Record, у Django – Model (означає вільну підтримку API для бази даних);

  • надають імена полів, типи, атрибути класу. У розробника є можливість встановлювати обмеження на кожне поле, задавати автоматичні значення та відношення таблиць one-to-many and many-to-many;

  • підтримують «ледачий доступ». Це означає, що доступ до бази даних не потребує надмірних дій;

  • обидві платформи дозволяють оприділяти «гаки» - функції, які можна використовувати для спеціальних операцій без змін коду (before filter, after filter). Для Rails – це “observers” (спосттерігачі), у Django – “signals” (смгнали).

  • Підтримка таких серверів баз даних як: Mysql, PostgreSQL, SQLite, Oracle, MSSQL (для Django).

  • Rails має потужний інструментарій міграцій, що визначають скрипти бази даних, та за допомогою яких легко заповнити таблиці. У Django міграцій немає;

5. Url Роутинг та контроллери

URL Роутинг – це те, яким чином платформа інтерпретує запит від користувацького браузера і вирішує, яка саме функція буде обробляти цей запит. Для зручності користувача давно розроблено URL, за допомогою якого певна дія стає читабельною і зручною.

  • Rails має спеціалізовану директорію config/routes.rb, файл якої надає можливість зв’язувати посилання із певним об’єктом без внесення змін в основний код;

  • Rails підтримує генератор – метод url-for, який дозволяє не прописувати істинної url-адреси у коді програми, а, натомість, використовувати правила, оголошені в routes.rb;

  • У Django теж наявний файл відображення url – urls.py;

  • Django одразу додає тег шаблону для генерації url згідно із конфігурацією файлу urls.py;

  • Django використовує об’єкти Http-запиту та Http-відповіді для передачі поточного стану у систему. Http-запит уміщує в собі метадані про запит (інформація про пересилання і сесію); У відповідь отримують Http-відповідь (тіло виду HTML та ін.);

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]