Drupal – это CMS «Сделай все». Существуют модули, которые позволяют добавлять практически любую функциональность, что отлично. Однако, похоже, что многие функции (v5 и v6) кажутся разбросанными вокруг и неинтуитивными для пользователя. Как разработчик, у меня оставалось ощущение, что вы закрепили сайт вместе с помощью жевательной резинки и струны.
Например, чтобы добавить текст в поле поиска по умолчанию (которое исчезает при нажатии), вам нужно либо добавить код jQuery, либо переопределить тему. Я также нашел систему меню более сложной, чем она должна быть.
Я единственный, кто придерживается такого мнения? Какие вещи (если они есть) изменились бы на ядро Drupal?
Отсутствие истинного объектно-ориентированного дизайна означает, что вам часто приходится полагаться на предусмотрительность других разработчиков, чтобы оставить функции «крючка», чтобы вы могли изменить определенное поведение.
Используя Drupal 5, я также столкнулся с ситуациями, когда единственным способом завершить относительно простое изменение дизайна является исправление самого Drupal (а затем обязательно повторите исправления с каждой новой официальной версией Drupal). Но, если быть честным, вы должны были видеть, насколько это плохо было в Drupal 4.
Меня также раздражает, что, когда я трачу время на выявление ошибки или причуды в текущей производственной версии Drupal, я отправляю патч, и патч никогда не выполняется, потому что в основном стабильные версии исправляются только ошибки безопасности.
Для меня самый большой недостаток Drupal заключается в том, что большие части живого сайта Drupal хранятся в базе данных. Поскольку автоматизированный способ переноса контента или конфигурации между системами не существует, развертывание изменений на реальном сайте должно выполняться вручную или с помощью чрезмерно сложного кода.
Одним из самых больших недостатков Drupal является то, что он танцует на линии между инструментом «под ключ» для разработчиков сайтов, не являющихся программистами, и основой для разработчиков, создающих сложные webapps. У этого есть некоторые классные вещи, чтобы предложить обе группы, но уступки одной толпе всегда имеют тенденцию путешествовать по другому.
Растущая тенденция сообщества Drupal заключается в том, чтобы явно создавать API-интерфейсы разработчика, затем пользовательский интерфейс администрирования слоев и пользовательский интерфейс конечного пользователя поверх API. Это хорошо, но есть еще много старой архитектуры. На этой неделе проекту исполнилось 8 лет, и на каждом сайте требуется сочетание модулей, которые развиваются в разных темпах.
Если кто-то еще не построил модуль, который делает то, что вы хотите, эффективное использование системы без взлома кода ядра требует grokking множества различных внутренних API-интерфейсов, множества уникальных структур данных, и изучая некоторые иногда фанки рабочие процессы. Многие ужасно плохие и неспособные поддерживать сайты плавают вокруг людей, которым нужно было делать сложные вещи, и у них не было опыта (или времени), чтобы исследовать «правильный» способ сделать что-то.
(Отказ от ответственности: я только что соавтор нескольких глав для книги о Drupal, и я занимаюсь работой Drupal полный рабочий день, так что я почти так же далек от «непредвзятого», как вы можете получить. Но мне нравится думать, что Я сохраняю перспективу. Я тоже сердце Джанго.)
Drupal доставит вам 80% пути из коробки, но последние 20% займут месяцы и месяцы.
Drupal – впечатляющая система. Это удивительно мало для всех, что он делает, и это модульная система чрезвычайно мощная. Но, как сказал Эли, многие ваши задачи будут опираться на других разработчиков, которые делают что-то определенным образом.
В рамках сообщества Drupal есть дискуссия по поводу его дизайна. Drupal был до того, как функции OOP от PHP были сильными, но теперь, когда они есть, часто обсуждается изменение системы для использования объектно-ориентированных структур данных. В зависимости от ваших вкусов это может быть недостатком для вас как разработчика. Я сам об этом подумал.
Система также может казаться очень «волшебной» для новичков, потому что так или иначе она делает все эти сумасшедшие вещи с небольшим объяснением. «Я только что определил функцию, как дьявол знает, как это назвать?»
Однако я должен сказать, что в целом я большой поклонник Drupal. Это хорошая система, которая лучше нагружает каждую основную версию. Я за один не могу дождаться 7.
Drupal хорош для начала работы, но вы тратите больше времени на «отмена», чем на самом деле делаете все. Это особенно изменилось с выпуском Drupal 6, и, честно говоря, это более очевидно в модулях с добавлением.
По словам Шона, управление миграциями также является проблемой. Я до сих пор не знаю о хорошем методе перемещения изменений с сайта dev на живое.
Я не уверен, что что-то, что я бы изменил в текущем ядре, и большая часть недостатков обрабатывается. Управление изображениями требует работы, интерфейс администратора по умолчанию немного загроможден, что делает более сложные макеты без привлечения просмотров / панелей и т. Д., Которые могут использовать некоторые работы.
я нахожу это ужасно сложным. как разработчик php, ежедневно вырывая мои волосы из-за проблем, которые не имеют никакого отношения к php, но с самим drupal. как / почему / когда это делает X? его большой зверь, которого нужно приручить. документация ограничивается несколькими очень хорошими руководствами, целым рядом дерьмовых и даже более бесполезными нитями форумов, которые всегда появляются в Google.
Удобство использования на бэкэнде – это дерьмо. пользовательская тема также изменит макет части «админ» пакета, которая может быть чрезвычайно расстраивающей и приводит к менее приятным макетам.
если вы работаете с html slicers, его невозможно использовать html, который не был создан специально для drupal. это в значительной степени заставляет вас использовать drupal-html, с большим количеством div, 5 дословных классов на div и т. д. по природе, html / css ребята не могут ожидать знать drupal на этом уровне.
Мне не нравится, как он опирается на имена файлов (10 слов в длину, с очень тонкими различиями между ними), чтобы создать тему.
сказав, что некоторые вещи, которые он может сделать, очень круты и экономят ваши дни и дни пользовательской разработки php
Drupal предоставляет мощные инструменты для не-программистов, они могут легко создавать полноценный сайт с меньшим временем. Но проблема в том, что кривая обучения слишком высока для Drupal.
Если человек новичок в drupal и хочет сделать что-то настроенное, потребуется много времени, если он захочет сделать это надлежащим образом. Есть много способов сделать что-то одно в drupal, узнать, какой он лучший или подходящий для нового посетителя, голова болит.
Я думаю, что это высокая кривая обучения – единственный недостаток, поскольку большинство компаний пытаются найти хороший талант Drupal. http://drupalize.me/ и http://buildamodule.com/ делают очень хорошую работу, чтобы уменьшить эту высокую кривую обучения.
Я считаю, что интерфейс администратора по умолчанию не очень интуитивно понятен по сравнению с другими cms 'like modx или joomla / mambo
Это написано на PHP4. Это изменится с версии 7. Вы можете написать свои собственные модули в php5, конечно. Как опытный разработчик Drupal, и я считаю, что мое резюме пострадало из-за моего ограниченного воздействия на php5.
Это не самое лучшее для запуска сервисов, таких как SOAP. Вызов всего стека Drupal для предоставления веб-сервиса – это слишком большая производительность. Модули служб все еще находятся в разработке.
Нет поддержки транзакций базы данных. Это становится проблемой при масштабировании до экстремальных нагрузок.
Было бы неплохо запустить тесты из командной строки. Это было возможно с помощью simpletest 1.x, но текущая версия не очень хорошо его поддерживает. Simpletest недостаточно зрелый. Чистая установка Drupal может завершиться неудачей. Некоторые из включенных тестов по умолчанию заставляют вас использовать типы контента и модули, которые вам могут не понадобиться, и вы не можете их отключить, не взломав самый простой модуль.
У этого есть, казалось бы, плохая запись безопасности: http://secunia.com/advisories/search/?search=Drupal