Сьогодні порівняємо швидкість розробки між ZF і Django на прикладі невеликого блогу. Представимо, що нам потрібно зробити блог, де були б записи, розділення на стріки і теги.
Розпочнем з ZF:
- Спочатку ми б створили в базі таблиці, при чому для тегів прийшлося б додаткову таблицю створювати, щоб був зв'язок багато-до-багатьох. А ще б створили таблицю для авторізації.
- Після цього розпочали писати б моделі, які містили б інформацію про зв'язки між таблицями.
- Далі пишем код для авторизації.
- Пишемо код форми для створення постів.
- Пишем код що буде формувати вивід на головній сторінці.
- Пишем код для перегляду постів посторінково(pagination).
- Пишемо код для перегляду кожного поста окремо.
- Пишем код для тегів, тобто їх парсинг, занесення в базу, відображення хмарки тегів.
Ви помітили, що постійно нам потрібно щось писати, робити вручну все. На ZF надзвичайно важко робити модулі, які б з легкістю можна добавляти в аплікейшн. На Django ж це все по іншому, там ми беремо готові компоненти і поєднуємо їх. А коли компонента немає, то пишемо самі, але один раз, далі будемо його з легкістю використовувати.
Але давайте подивимося, як вищеперечислені пункти ми б робили на Django
- Створюємо лише одну модель, де все опишем. Ніяких таблиць вручну не створюємо, додаткової таблиці не потрібно. Для поля з Тегом нам потрібно лише вказати, що це буде поле з тегом і все. Робота по створенню ції моделі займе лише декілька хвилин.
- ... це все зробили в пункті 1.
- Для авторизації використовуємо влаштований модуль, тому цей этап знову займає 0 хвилин.
- Для створення постів потрібно створити лише один файл з 3 строчками. 1 хв.
- Вивід на головній сторінці пишеться за декілька хвилин разом з сторікновістю(pagination), буде строчок 5 займати.
- це вже написали вище в п.5.
- Для окремого перегляду використовуємо стандартний views. Тому все це займає одну строчку і час 30 с.
- Для тегів вже все написано ;). 0 с.
Час на створення блогу хвилин 10 і це максимум(звичайно без дизайну). В найближчий час зніму окремий скрінкаст, щоб довести це.
