Если вы ищете разработку -рамку, Drupal, вероятно, не является правильным выбором.Если вы ищете набор для создания веб-сайтов, Drupal, вероятно, является правильным инструментом.
Люди часто говорят, что Drupal - это CMF, где F означает Framework, но на самом деле Drupal - это просто гибкая CMS..
На высоком уровне платформа веб-приложений делится на две категории: MVC и CMS.Model View Controller - это то, что большинство людей называют фреймворком.CMS - это просто гибкая CMS с возможностями разработки приложений.
На практике Drupal не хватает:
- Правильная архитектура.Большинство вещей в Drupal, эволюционировали органически;что вызывает несогласованность, неожиданное поведение и неожиданные барьеры.Не сказать, что Drupal не создан должным образом: просто сказать, что он не был спроектирован: спроектирован как единое целое.
- Принцип наименьшего удивления.Многие фреймворки позволяют опытным разработчикам создавать сайты за несколько часов.С Drupal вы должны получить большой опыт и лучшие практики, прежде чем вы сможете быть уверенными в развертывании веб-сайтов по планированию.
- MVC.У Drupal есть отдельный слой базы данных и слой темы (представления), но они нетрадиционны и часто используются неправильно.И, конечно, не после структурной схемы.
- незавершенное поведение: платформа может форсировать определенные методологии, библиотеки или даже поощрять определенное поведение, но она не должна иметь жестко заданных / не переопределяемых значений по умолчанию, которые определяют ваш конечный продукт.Или по-английски: Ядро Drupals имеет много настроек по умолчанию, которые определяют, как вы собираетесь настраивать, размещать и структурировать ваш сайт, независимо от ваших (клиентских) потребностей или пожеланий.Модули или дополнения даже более часто встречаются с поведением и часто выглядят встроенными и / или жестко закодированными.
- СУХОЙ, не повторяйте себя: Drupal сильно зависит от повторения.Вся ее система тем зависит от копирования фрагментов кода в пользовательские файлы и изменения лакомых кусочков.Его система переопределения форм требует копирования больших частей формы по умолчанию в пользовательские модули и изменения частей, которые нужно изменить.
Многие из этих недостатков являются основной причиной задержки и проскальзывания бюджета, так каквидел в моем + 10 лет опыта Drupal.В тех случаях, когда часть с непроверенным поведением оказалась наиболее неприятной для большинства проектов, в которых я принимал участие. Очевидные простые функции или идеи, как оказалось, занимают большую часть всего бюджета;Крошечные детали пожирают недели развития;последние 20% занимают не только 80% усилий, но иногда и 300%.
Кроме того, Drupal не следует шаблонам OO, что (согласно общему мнению) является плохой вещью.Нет наследования, нет DRY-практики, нет объект-отношения-сопоставителя *) и нет юнит-тестирования. **).
Все это может звучать негативно, но в действительности людям удается создавать хорошие сайты Drupals, несмотря на все эти "недостатки".Это потому, что они в основном придерживаются настроек по умолчанию Drupal (стандартные, где это возможно, аддоны, где нужны изменения, пользовательские разработки, когда не осталось других опций).
*)
На самом деле есть;в Drupal 7 была введена PDO, но (пока?) не используется как ORM много / вообще.
**)
На самом деле: все основные и многие вклады имеют тесты, но это интеграционные тесты иредкий юнит-тест.Интеграционные тесты (DrupalWebTest) устанавливают чистую базу данных Drupal-codebase + для каждого отдельного теста.Ваш средний тестовый набор, занимающий более 8 часов, не является исключением.TDD просто (пока) невозможен.
РЕДАКТИРОВАТЬ Чтение на ваших примерах: Drupal особенно плох в области «мастеров форм», хотя в Drupal 7 он улучшился. Еще одним заметным недостатком в Drupal является правильный программируемый рабочий процесс.система.Существует несколько модулей, которые улучшают или заменяют простую систему документооборота в ядре, но их нелегко и не эффективно (с точки зрения разработки) программировать. Похоже, что основные функции, которые вы хотите, среди самых слаборазвитых районов в Drupal