Сравнение Odoo и Django

Введение

В данной статье я хочу обобщить тот опыт, который я получил при работе с данными фреймворками ( хотя 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