Что не надо делать при разработке сайта на Drupal
Список худших практик в друпале:
-
Игнорирование coding standards. Самая распространённая ошибка как новичков, так и бывалых. Стандарты кодирования - первое что должен выучить друпал разработчик.
-
Транслит в машинных именах. Когда разработчик называет что-то в духе
novosti
,field_razdel
,razmeri
, где-то умирает котик. -
Много отключённых контриб модулей. Не надо держать на продакшене неиспользуемые модули.
-
Много включённых ненужных контриб модулей. Как правило это говорит, что сайт собирался на коленке.
-
Отключённый watchdog / отключённый вывод ошибок / ошибки в watchdog / ошибки на экране. Неоднократно видел, как разработчики отключали вывод ошибок, чтобы не разбираться в их причинах.
-
Использование
hook_form_alter()
. Всегда пользуйтесьhook_form_FORM_ID_alter()
иhook_form_BASE_FORM_ID_alter()
. -
Русский текст в
t()
. Это бессмысленно и вредно. -
Отсутствие PHPDoc комментариев к функциям и методам. Каждая функция и метод обязаны содержать комментарий.
-
Имена функций без префиксов модуля/темы.
get_products()
- плохо,modulename_get_products()
- хорошо. -
Длинные селекторы в css.
#main-menu div.content ul.menu li a { ...; }
- плохо,#main-menu a { ...; }
- хорошо. -
Использование тяжёлых базовых тем типа Bootstrap или Omega. Поначалу кажется, что они могут сэкономить время, но это ощущение обманчиво.
-
Сложная логика в шаблонах. Всю логику сложнее foreach/if нужно выносить в препроцессинг.
-
Множество переопределённых шаблонов. Их тяжело поддерживать.
-
Лишние файлы в корне. Все пользовательские файлы надо заливать в
sites/default/files
. -
Помойка в
sites/default/files
. Все файлы должны быть рассортированы по подпапкам -sites/default/files/images/products
,sites/default/files/inline
и т.п. -
Использование jQuery.ready(). В 99% нужно пользоваться Behaviors.
-
Использование темы для админки отличной от Seven. Seven - стандарт.
-
Сложная логика в коде, написанном через админку (phpfilter и т.п.). Максимум что там может быть - вызов своей функции.
-
Самописные модули в одной папке с контрибом. Все кастомные модули должны быть в своей папке.