Первые впечатления от Drupal 8

Поскольку у меня уже был опыт ведения сайтов на Drupal 6 и Drupal 7, то, естественно, мне очень интересно как же поведет себя Drupal 8. Первые впечатления и мысли уже есть и я сейчас постараюсь их истолковать.

Собственно, первоначальной идеей было получить сайт с уникальным дизайном, который представляет из себя коллекцию статей и предоставляет возможности комментирования контента разбитого по рубрикам. Это самое простое что нужно было сделать в начале и с чем я вполне успешно справился потратив порядка недели по 2-3 часа в день. Конечно все еще достаточно сыро и концептуально не завершено ибо есть грязь кода в некоторых генерируемых ядром шаблонах и отсутствие как таковой поддержки мобильной версии, которая, кстати, заявлена в Drupal 8 фактически на уровне ядра, а также мелкие проблемы с выбором модулей и настройками новой админки.

Что же хочется сказать в первую очередь: « А все не так уж и плохо!». Раньше меня пугал переход с Drupal 6 превращенного в полностью поддерживающий HTML 5 на уровне хаков ядра Single Pages Application, который был на 140% SEO оптимизирован и настроен на полную поддержку AJAX. Прошло какое-то время и блог я забросил поскольку у меня поменялись интересы и уже сегодня порядка 400 скрупулезно написанных страниц блога ушли в анналы истории(даже в кэше не осталось ничего).

Собственно, в этот раз для реализации идеи сайта был взят уже сразу Drupal 8 и сразу напоролся на ряд неприятностей. Начать с того, что теперь для темизации используется twig и мне пришлось помимо основного шаблона темы полностью переписывать и очищать от мусорных тегов 20 шаблонов стандартной темы ядра classy. Возникла также проблема с настройкой выхлопа модуля views, на котором болтается половина шаблонов вывода конструкций сайта и что в Drupal 8 сделано очень неуклюже из-за отсутствия централизованной конфигурации админки. С этим я справился кое как потому что задолбался настраивать регионы и форматы вывода содержимого, попутно перевёрстывая каркасы и очищая тему от мусора. Мне сразу же не понравился модуль ядра RDF, который создает совершенно неподдерживаемый современными поисковыми системами код по типу сущностей и отношений контента в виде RDFa, который в свою очередь послужил прародителем современного и семантически правильного HTML 5. Модуль был почти сразу отправлен в топку как только я посмотрел на используемые схемы разметки и выявил их полную неподдерживаемость поисковыми системами(тобишь это просто мусорная нагрузка на ядро).

Поскольку я уже порядка 7 лет работаю front-end разработчиком, то я обращаю большое внимание не только на гибкость системы, но и на ее рациональность, что в Drupal 8 очень сильно страдает. К примеру, совсем неадекватно использованы обертки вывода HTML компонентов ядра и процессов отработки системы. Используется какое-то беспонтовое именование блоков и модификаторов(какая то своя безумная и совсем нерациональная реализация методологии БЕМ) с огромным количеством говноклассов. Это серьезные минусы.

Очень удручила реализация модулей для адаптивной и responsive верстки. Где-то в ядре генерируются метатетеги отвечающие за масштабирование и заявляющие мобильную поддержку сайтом, но на практике фактически неконфигурируемые и убогие. С этим придется разбираться дедовскими методами, верстая на media-queries. К слову, а media-queries нас теперь не спасают совсем потому что в современном мире стало невозможно вычислить мобильные устройства, экраны которых достигли разрешений 1920px(смотрите iPhone 8 к примеру) и остался только один выход отслеживать заголовок браузера для переключения оформления. Это сделано вообще не умно в Drupal 8.

Как то сильно стали отличаться настройки типов контента и параметров выводы, и другие важные вещи. Например, до сих пор не смог грамотно настроить форму ввода комментария для разных ролей. Добавились fields API и прочие полезные примочки, но сконфигурировать их нормально и что показывать и что скрывать для разных ролей настроить пока не удается. Пришлось прибегать к CSS просто для скрытия полей поведение которых даже в незаполненном виде допускается отправкой данных на сервер, но это абсолютно некошерный вариант.

Еще из совсем не мелочей мне бросилось в глаза абсолютно тупое строение шаблонов twig и их разрозненность, которая не дает как обычно и как и в старых версиях гибкости. Например к контент наглухо прибито моноблочное строение статьи в которой заголовок отделить можно, а остальной контент можно только кое как настроить в структуре вывода. Все это для меня очень трагично и я буду пытаться найти способы переопределения вывода силами препроцесса темы.

Также были выпилены такие вещи как quick edit и другие модули нагружающие front-end еще и выполненные с ошибками JavaScript. В топку это барахло.

Хочется отметить, что отдельно порадовала производительность. Drupal 8 работает на удивление быстро и приятно хорошо кэшируется в сравнении с прошлыми реализациями.

Еще хочется очень многое написать нехорошего, но в целом Drupal 8 весьма и весьма справляется с возложенными на него задачами и после ритуала тщательного распиливания и переборки стает фактически идеальной платформой для реализации самых смелых и современных идей. Что у меня получится из этого сделать в финальном варианте покажет конечно-же время, а пока у меня только появляются идеи для новых заметок. Если не получится настроить и отрегулировать как мне надо, я как обычно начну тупо взламывать ядро. Мне это нравится.

Возможно вы обладаете гораздо большим опытом общения с этой замечательной системой и сможете мне в комментариях оставить ссылок на модули или какие-то свои идеи для допиливания.

Добавить комментарий