Введение
В данной статье я хочу обобщить тот опыт, который я получил при работе с данными фреймворками ( хотя odoo этот целая платформа). У меня часто спрашивают, то из этой пары лучше или хуже, на что я отвечаю, что все зависит от проекта. Я посарюсь описать плюсы и минусы, с которыми я столкнулся при работе с ними.
Надо отметить, что сравнивать платформу и фреймворк не всем корректно, но в области бизнес-приложений наши конкуренты часто пересекаются.
Django
Django это Python фреймворк для быстрой разработки web приложений любой сложности от личного блога до корпоративной системы.
Преимущества
- Большое число батареек, можно найти расширение практически под любую задачу;
- удобная ORM, которая позволяет гибко строить отчеты;
- хорошая документация, подробное описание всех функций и orm;
- удобно масштабировать;
- работает со множеством БД;
Недостатки
- Деплой, из-за отсутствия встроенного веб-сервера;
- В сравнении с odoo интерфейс для стандартных моделей описывается сложнее, так как надо сверстать html и подключить разные виджеты для полей типа многие-ко-мнгогим, один-ко-многим;
- Простая система распределения прав из коробки,которая может только разграничивать доступ к таблицам;
- аналитику и отчётность приходится писать практически с нуля;
- встроенный web сервер доступен только для разработки;
Odoo
Odoo в отличии от конкурента это не просто фреймворк, а целая платформа для создания бизнес-приложений.
Преимущества
- Генератор интерфеса на основе xml, который позволяет реализовать мощный интерфейс с js виджетами (на базе Backbone) используя минимум услилий;
- Мощная система распределения прав из коробки может задавать различные уровни видимости как по таблицам, так и по записям;
- Есть базовая система аналитики и отчётности;
- Есть реализация workflow;
- Есть встроенный web сервер, а так же возможность запуска через внешний типа gunicorn;
Недостатки
- Сложность масштабирования, из-за того что статика хранится в файловом хранилище самой odoo;
- Простая ORM со своеобразным синтаксисом, которая умеет выполнять только простые запросы;
- Плохая документация и часто приходится лезть в исходники; и примеры модулей для реализации функциональности;
- Работает только с PostgreSQL;
- Жестко определенная структура модуля;
Итоги
Из своего опыта я рекомендовал бы использовать Odoo для различного вида учетных систем, т.е. там где важно реализовать максимум бизнес функциональности за короткое время и нет жестких требований по нагрузке и интерфейсу, если же вы хотите максиму гибкости, кастомизаций и у вас больше интерактивное приложение или публичный сервис, то я бы выбрал Django.
comments powered by Disqus