Кусок Drupal-жизни длиною в 5 лет

в 20:09, , рубрики: drupal, метки:

Привет.
Критические статьи о Drupal входят в моду, я не хочу писать брызжа слюной о том, что плох друпал или хорош, хотя опыта для первого и второго хватает, я напишу как друпал повлиял на мою жизнь.
Под катом ~5 лет моей жизни бок о бок с друпалом.

Why Drupal?

И действительно? Почему? Почему не ModX, упоминания которого стабильно появляются в темах о Drupal, почему не Joomla?
Ответ прост — так сложились обстоятельства.
Было начало жаркого лето 2007. Я заканчивал второй курс родного физико-технического факультета КубГУ, был студентом-романтиком и меня очень грела мысль о том, что я элита программирования, так сказать, по крайней мере по сравнению с факультетами конкурентами, ведь мы же долбим C/C++, а не какой-нибудь Паскаль как на соседнем ФПМ. И я никогда в жизни не буду сидеть на PHP. Это же унизительно! Но я ошибался.
С этими мыслями я сидел в каморке 186 аудитории, фотографий того времени мало, но выглядело это примерно так:
ФТФ КубГУ. 186 аудитория

Не надо на ночь открывать
image

image
Сессия уже была почти сдана, остались может пару экзаменов и я сидел и общался со своим будущим научным руководителем. На повестке дня был вопрос летнего трудоустройства и вообще, пора бы уже определиться с тем, что меня интересует. Я сказал научному, что вебом интересуюсь потихоньку, он мне ответил «Учи Drupal». Я спросил, что это такое? Ответом мне было — разберёшься.
Сказано — сделано.
Пришёл домой, скачал Denwer, поставил Drupal, потыкал, посмотрел. Не запало в душу.
Жажда знаний и всего нового заставила скачать Joomla, ModX, WP и даже Plone я тогда скачал, но не знал, что с ним делать.
Заранее хочу предупредить, хронология установки CMS может быть нарушена, но зато я опишу первые мысли, так как больше к этим системам не притрагивался.

Drupal

С друпалом было всё просто.
Поставил.
Потыкал.
Пошёл дальше.

Joomla!

Joomla меня удивила с самого начала, прежде всего, почему «Joomla!», а не «Joomla»?
Я её установил, потыкал, запомнилось, что очень много картинок в админке и вообще как-то блондиночно, отчасти я наличие восклицательного знака с этим и связал. Тогда я мало чего знал, гуглить не умел, и был зелёный.
В общем, потыкал я эту «Joomla!», понял, что мне не хватает функционала. Нашёл какой-то модуль, а может и компонент, а может и плагин, а то и вовсе мамбот. Давно это было, не могу сказать точно. Сразу ужаснулся терминологии, слишком всё было сложно.
Промучался пару дней, не знаю по какой причине — но я этот модуль так и не поставил. Решил, что Joomla не для меня и удалил.

WordPress

Вордпресс установился, всё прошло без сучка без задоринки, я его потыкал и из всего, мне запомнились, только какие-то шаблоны в XML и таинственная надпись «Meta» в сайдбаре.
Больше в WP я ничего не понял.

ModX

ModX я установил и мне понравился больше всех, особенно зелёная тема админки, не помню была ли она по дефолту или была установлена мной, но я писался кипятком от обилия аякса, дерева страниц и т.п. Как сейчас помню слова с какого-то сайта, с cmslist.ru, наверно: «WEB 2.0 админ-панель». Я тогда не знал, что такое WEB 2.0, но понимал, что это круто.
Ещё мне понравилась простота создания шаблонов, помню можно было скормить движку HTML и просто тебе надо вставить конструкции типа:
~menu~
и оно выведет!
Я даже было взялся за один заказ, через друзей заказали сайт визитку на ModX, через друзей оплатили 2000р, ЕМНИП, дали доступ к хостингу, это был valuehost, и слились. Заказчика в глаза я не видел, друзья тоже молчали. В общем — спасибо вам, но если вы вдруг меня узнаете — могу вернуть вам «предоплату».
А с ModX меня остановила терминология, ну не понимал я, что такое чанки, хаки, TV-параметры и т.п.

Прочее

Ещё были Interra, очень нравилась, кстати, я к тому времени уже начал использовать бесплатные хостинги, и у меня была с ней проблема, рекламный банер вставлялся куда надо и куда не надо.
Был Xoops, e107, phpBB. Все они проходили мимо.

Но потом моя исследовательская деятельность была свёрнута, мне хотелось подзаработать денег за лето и всё такое. Я тогда жил отдельно, и хотелось хоть какой-то финансовой независимости.

Работу я искал любую, лишь бы было слово «компьютер». Тогда я узнал много, и что такое кадровые агенства, и что такое просто странные работодатели. Искал много и по всякому, мало кого интересовал студент-очник, да ещё и на 2 месяца всего, на дворе был конец июня.
Я разослал резюме в десяток студий своего города, я тогда жил в Краснодаре, мало кто отвечал. Хотя я знал и как LAMP поднять, и HTML-разметку, верстать немного умел.
В кармане осталось уже мало денег, и я уехал на море, вы не поверите — в Дагестан.

Дагестан-оффтоп

По сравнению с Чёрным морем — Каспийское совсем другое, минимум людей, очень солёное и очень красивые виды.
image
image

Вернувшись из Дагестана, я проверил почту и меня приглашали на собеседование в одну фирму рядом с домом, но к моменту моего возвращения — вакансия была неактуальна.

Так я слонялся ещё пару дней.

Звонок

Неожиданно позвонила староста. У нас были с ней напряжённые отношения и я был удивлён звонку.
-Витя, привет.
-Привет.
-Ты же делаешь сайты?
-Ну делаю
-Другу Марины нужно сайт-визитку, быстро и недорого. Возьмёшься?
-Возьмусь.
-Хорошо, он тебе позвонит

Думаю зашибись, у меня нет портфолио, я никогда не работал с заказчиком, что делать не знаю, но слушаюсь судьбу.
Через несколько минут — звонит некий молодой человек, который назвался Давидом. Говорит тоже самое — нужен сайт, быстро, недорого, очень. Предлагает встретиться. Я согласился, он захотел встретиться в этот же день. Решили встретиться недалеко от места где я находился.
Я пришёл на место, стал на пешеходном переходе, к нему подъехала чёрная Honda Civic с номерами 888, я сел в неё и куда-то поехал.
Честно, мне было уже так всё всё равно, что меня не интересовало, что это за человек и куда я еду.
Мы приехали в Краснодарскую госорганизацию.
Прошли к её начальнику, мне сказали следующее:
Здравствуйте, Виктор.
Нам очень нужен сайт, сроки горят. Нам с министерства спустили требование, что мы должны иметь сайт до такого-то числа, но проблема в том, что денег у нас нет. Мы очень на вас надеемся.

Можно сказать, что меня даже не спросили хочу ли я делать, но я понимал, что делать надо, так как это первый сайт в портфолио. И как-то даже не хотелось подводить людей, они надеялись на меня.
Мне дали срок в 3 недели, подписали со мной договор подряда на 6000р, выделили кабинет, вот она государственная основательность и Давида.
На следующий день начался процесс сайтотворения.

Первый сайт

Сайт им нужен был «динамический» как тогда было принято говорить, и я понимал, что нужен движок.
Перебрал в голове всё что пробовал ранее, и решил, что сайт будет на друпале.
Поставил Drupal, тогда это был Drupal 5, и за 3-4 дня накидал страницы, разобрался с таксономией, сделал галерею даже, это была Acidfree Albums и начались муки с «дизайном».
Дизайна у нас просто не было, а каждый мимопроходящий объяснял как должен выглядить сайт.
В итоге получилась голубенькая такая гамма, слева герб данной организации, а справа герб РФ. Я познал вёрстку ещё лучше и прочее. Давид был очень педантичный, всё должно было быть выверено до пикселя, кроссбраузерно и без косяков. К слову, сайт и сейчас нормально отображается в современных браузерах.
Сайт был сделан, с запозданием мне его оплатили, и потом ещё полгода точно звонили и спрашивали, куда надо нажать, чтобы ххх.
К слову, с Давидом, мы очень сдружились, и сейчас лучшие друзья.

Оставалось пару недель лета, их я просто прогулял.
Начался учебный год, я сломя голову несусь к научному руководителю, доложить, что сделал первый сайт на Drupal. Он похвалил и всё.
Я полгода занимался всяким аникейством, лазил под столами в одном фирме делающей архитектурные проекты, ставил им автокад (лицензионный, ога) и был далёк от друпала.

Первая работа

Середина 3-го курса, ровно середина, каникулы были, звонит научный руководитель, говорит, чтобы я приехал в универ.
Приезжаю. Диалог:
-Будешь на меня работать?
-А что делать?
-Будешь или нет?
-Буду. А делать-то что?
-Друпалить!
-Владимир Николаевич, у меня же опыта мало!
-Ничего
Потом подъехал одногруппник, его Николаевич тоже позвал для этого же, и третий, на курс старше меня — отказался.
Условия были предложены шикарные.
Мне обещалась зарплата в 20 000р, возможность продолжать обучение, т.е. работать со свободным графиком.
Сейчас я бы сказал, что это был стартап. Далее в тексте он будет упоминаться как «ОЗМИ», название несколько искажено.
Основная идея ОЗМИ была в качественной и количественной рекламе, по крайней мере мне казалось так первое время.
Были инновационные идеи, в стиле, рекламы в платёжных терминалах, смс-рассылки, ещё некоторые штуки, которые я и не упомню.

ОЗМИ

Начало

Начались трудо выебудни. Николаич сразу дал понять, что работать придётся много, особенно первое время.
Мы взяли Drupal 6 и начали.
1 марта мы приступили к работе, в конце марта выкатили бету.
1 марта я не умел писать модули, поверхностно знал API, и кое-как делал тему оформления.
Методы Николаича были жёсткие. И жёсткость заключалась в преждевременной оптимизации, у нас со Стёпой знаний для неё ещё не хватало.
Мне нужно было написать какой-то модуль, по моему, вывод новостей или что-то в этом роде. В пятницу Николаич даёт мне задание, даёт книгу «Pro Development», но по Drupal 5 и сказал «В понедельник нужен модуль, пиши. Под шестёрку».
И я написал модуль за выходные, после этого мне не особо были понятны рыдания на drupal.ru, о том, что в книге по Drupal 6 было чего-то некорректно, что ничего не получается, etc.
Ситуация с этой книгой была следующая.
Была книга Pro Development Drupal 5. Потом выпустили Pro Development Drupal 7, и при переводе допустили ошибку, в книге по Drupal 6 оказались исходники под Drupal 5, большинство примеров не работало, так как API было изменено, но основные принципы остались теже.

Мы выкатили бету, на сайте началась работа других людей.

Работа с живыми людьми

Контенгент на сайте был разный и людей было много. Около 1000 человек постоянной аудитории, они были мотивированы за работу на сайте, это был обезьяний труд — вбивать объявления.
Особенно запомнился некто gordeiko, который на форуме задал вопрос: «Капейки. Куда ввадить капейки, нада нинада?????»
Мы (я, Степан, Николаич) эти капейки вспоминаем до сих пор. Мы просто не знали что ему ответить.
Вопрос этот был вызвал тем, что мы что-то сделали с полем цены, не помню что.

Андрей Викторович

Потом появилась эта знаменательная фигура. Далее по тексту — АВ, как мы его называли.
Мы не знали кто он, но гендир сказал, что он будет следить, управлять и направлять нас в разработке сайта.
И началось…
АВ был прожжённый МЛМ-щик, ничего не понимающий ни в МЛМ, ни в веб-разработке, но креативил он знатно.
Притом креативил всегда и везде.

Лесенки/Кирпичики

На сайт была импортирована очень широкая география, весь КЛАДР, без улиц, вышло порядка 180 000 населённых пунктов нашей широкой страны.
Для удобства выбора были сделаны зависимые select-ы, Hierarchical Select в терминах Drupal, но мы написали его самостоятельно, не вытягивала система таксономии такое количество терминов.
АВ каждый раз называл эти селекты по разному, из того что помню, это лесенки и кирпичики, и каждый раз он пытался вспомнить как оно называется, говорил новый термин и добавлял коронную фразу.
Выглядело это так: «Эти глючат, как вы их, программисты, называете? А! Лесенки!»

Барабанная система

Сайт рос и развивался, у нас появился справочник организаций ака «жёлтые страницы». Но тех кто хочет размещаться платно — почти не было.
Тогда АВ придумал новую функцию, которая взорвёт рынок — барабанная система.
Что это такое и почему она должна была взорвать рынок?
Барабанная система напрочь убивает релевантность поискового запроса.
При каждом поисковом запросе организации будут сортироваться не по релевантности, а тупо по очереди.
При первом поисковом запросе твой автосалон последний, при следующем он первый, потом второй, третий, etc.
«Рекламодатели будут пищать! У каждого будет возможность оказаться на первом месте! Это будет бомба! Такого ни у кого нет!».
В общем мы не стали делать эту бомбу, зато после этого совещания команду покинул Владимир Николаевич, не выдержал креатива.
Остались мы вдвоём со Степаном.

Технические задания

Техническое задание у нас было, реально. Но только первый месяц, потом у нас появился АВ и всё начало делаться в стиле «Нам срочно надо! Очень! Делайте! Я тут главный!».
Нам его как-то надо было отвлекать, кое-как с гендиром договорились, что он его любые хотелки будут утверждаться гендиром и только потом переходить к нам. На время поток креатива прекратился.
Потом мне пришло ТЗ… Без ТЗ было лучше.
Это был вордовский файлик из десятка пунктов. Всё было кратко и лаконично, запомнился мне только пункт:
n. Привести в единый вид автор. и неавтор. стороны сайта.
Что это такое — выясняли долго, АВ был любителем экономить буквы, т.е делать странные и непонятные сокращения, а вкупе с креативом — это было нечто.
Автор. и неавтор. это оказались «Авторизованные и неавторизованные стороны сайта», т.е. надо было привести в единый вид — вид сайта для анонима и авторизованного юзера. В чём там разница мы не поняли, АВ тоже не смог объяснить, зато дико разорался «Разве непонятно?»

Потом команду покинул Степан. Я остался один.
Я бы и дальше выкладывал креатив АВ и он есть, но лежит где-то в архивах на другом жёстком диске, там должна быть графика и «графические ТЗ».

Потом был найден как усмирить АВ, мы нашли девочку-дизайнера, они сидели с ним вдвоём, чего-то рисовали, и он был почти рад. Его радость была неполной, он потом обязательно в Paint всё перерисовывал как надо.

Закат

Постепенно становилось всё хуже.
Начались проблемы с деньгами, их тупо задерживали под разными предлогами. Основной канвой был, конечно, кризис.
Потом были взяты ещё 2 программиста, а я осенью покинул компанию, практически сразу после того, как директор начал обещать программерам доли, мне стало понятно, что ловить здесь нечего и чего-то затевается.
Я ушёл в конце сентября, ЕМНИП, директор мне долго никак не мог перечислить долг по ЗП, ссылась то на плохую работу банка, то на то, что я чего-то не доделал, то просто физически мне угрожал. Но к ноябрю вроде как отправил мне мои ~40т.р за 2 месяца работы.
На этом работа с ОЗМИ прекратилась.

Уход во фриланс

Тере

Я ушёл из ОЗМИ, почти сразу меня пригласили в одно известное местное Интернет-СМИ, там у меня долго не получилось проработать, они хотели фуллтайм, были против учёбы, в общем где-то 2 недели я там проработал и ушёл фрилансить.
Почти сразу мне постучался клиент, главный редактор одного интересного журнала, назовём его Тере. Звали его Андрей. Чем он меня поразил — он был главредом и он друпалил.
Мы с ним договорись о часовом рейте, задачах и начали работать.
Прежде всего стояла задача переноса журнала на Drupal, было озвучено — никакого самописа, только «визуальные модули».
Сайт в то время крутился на WP + WP MUI + Buddy Press, могу ошибаться в названиях и каждый вечер, в пик юзеров на сайте, он клал VPS, помогало только передёргивание веб-сервера. Стояли всякие Super Cache, но они не сильно помогали.
Мы быстро вдвоём накидали сайт на Drupal 6, я написал скрипт переноса, перенесли контент и юзеров и сайт начал работать гораздо лучше, LA не поднимался даже до трети того, что было на WP. Для меня это было откровением, Drupal быстрее чем WP, к слову, кеширование у нас отсутствовало.
Потом уже я понял причины, там была очень странная структура БД, WP давал мало запросов, но зато каких!
Проработал я с этими Тере около полугода, и скажу — Спасибо, Андрей!, вы мне очень помогли.

IT-дозор

Кто связан с друпалом — сразу понял, про кого я говорю.
Как было дело.
Я к тому времени довольно продвинулся в Drupal и стал заметным в сообществе. Меня «приняли» в скайп-чат самых известных русско-язычных друпалеров, был я там самым молодым.
И там я познакомился с Егором, он почти сразу написал в личку, спросил как у меня с линуксом и предложил парт-тайм, по сути, обычным саппортом хостинга. Я согласился.
Егор был владельцем IT-дозор, сам русскоязычный, но перебравшийся в Канаду. Не люблю слово эмиграция, да и можно ли применить это слово к свободным людям?
IT-дозор это была работа моей мечты, да, я много работал с клиентами, но я много учился, я работал с друпалом.
И через 2 месяца Егор предложил мне стать на ступеньку выше — я стал админом. Прошёл краткий курс молодого бойца, и довольно часто оставался за главного.
Так мы с ним и проработали 364 дня, 15 августа я ушёл, просто устал, но если будет надо — я вернусь.
Егор мне показал другой бизнес, не наш русский наебизнес, а совсем другой, где клиент это главное, и клиента нельзя бросать наедине со своими проблемами, даже если он платит 100р в месяц.

В общем уйдя из IT-дозора, меня позвал работать друг в свою свежеоткрытую студию. Скажу честно и сразу — мне не понравилось, просто как-то не так всё.

Потом были всякие фриланс-заказы, на них я останавливаться не буду.
Работая в IT-дозоре я познакомился с многими людьми, и многие люди даже переживали мой уход из этой компании. Сообщество маленькое, всё у всех на виду.
И был один человек, назовём его SU. Он очень переживал «Ты в Краснодаре, без работы, ВЕРНИСЬ В ДОЗОР! Ну куда ты пойдёшь?».
И предложил мне Москву.
Москву как вариант для переезда я никогда не рассматривал, не хотелось мне переезжать, как-то и в Краснодаре было всё хорошо. Что я и говорил SU.
Ну и в общем, по его наводке — меня пригласила одна московская компания. Назовём её Простобокс.
Я отсобеседовался по gtalk, мне сказали, что я нравлюсь им, и со мной хотят пообщаться лично.
Я покупаю билет на Avianova, вылетаю в Москву.

Москва

В Москве я был первый раз в жизни, из знакомых — только знакомые по drupal.ru.
И вот я прилетаю в 7 или 8 утра, а меня уже встречают, даже 2 человека.
Меня сразу прокатили по Москве, показали Москва-сити, Красную площадь, храм Христа Спасителя, ещё какие-то места, которые я незапомнил.
После были посиделки в ресторане с другими друпалерами.
Потом мне пришло письмо на мыло, человек хотел моей консультации, я ему написал, что могу с ним встретиться.
Потом я лёг спать.

Консультация

Так вышло, что я сначала пообщался с человеком, проконсультировал его, а потом пошёл на собеседование.
Консультация была интересной.
Мне утром звонит человек, спрашивает где мы можем встретиться, а я не знаю ни Москвы, ни даже где я нахожусь, меня к себе взял один друпалер.
Но мне надо ехать на собеседование на ст.м Шаболовская, предложил встретиться где-то там, человек согласился, оказалось, что он живёт недалеко.
Я проконсультировал человека, довольно интересный проект и пошёл на собеседование.

Собеседование

Обычные вопросы уровня — JOIN'ы умеешь? Ничего сверхестественного, ответил, рассказал, пообщались, у меня спросили «Когда ты можешь приступить к работе?». Попросил 2 недели на собрать вещи и улетел в Краснодар.

Жизнь и работа в Москве

Через 2 недели я прилетел в Москву, уже работать, так сказать.
Остановился снова у того друпалера, у которого жил. Дети были на даче, а жена ну почти была непротив чужого человека в квартире.
Так я и прожил у него 2 недели.
Потом понял, что нужно чего-нить подыскать. Начал шерстить авито, сландо, и прочее. Даже на хабре спрашивал habrahabr.ru/qa/9936/, не ожидал получить такого отклика, честно говоря.
Случайно нашёл подселение в комнату, на Краснопресненской за 7000р. Съездили с Андреем, посмотрели, вроде всё ок.
Перевёз вещи, заплатил 14т.р и вечером приехал.
На работе обычная рутина, новый проект на Drupal 7, ничего такого, в принципе.

Ад? Не, намного лучше!

Когда мы приходили смотреть квартиру с Андреем, там было тихо, спокойно, и был только один человек, хозяин квартиры, как мы думали.
Вечером же я узрел гораздо больше людей.
Естественно со всеми познакомился, самое большее впечатление произвёл один стартапер из Республики Беларусь.
Это было нечто. Паша был крайне интересным стартапером, очень большим романтиком и очень слабопонимающим предметную область.
У него было 2 проекта, один "Реальная база объявлений недвижимости", второй был проект обо всё и ни о чём.
Надежды он возлагал на оба проекта, в частности, Реальная база недвижимости через пару месяцев должна была поровняться с cian.ru по посещаемости, а сайт обо всём и ни о чём — должен был ему приносить 2 миллиона за счёт квадратиков.
Квадратиками назывались рекламные места.
Паша сразу спросил, кем я работаю и как я могу ему помочь, я сказал, что работаю в другой сфере и не знаю чем ему помочь. Его такой ответ удовлетворил, в принципе.
Но каждый вечер Паша делился со мной планами на будущие успехи.
Паша был вообще весёлый человек, один раз застал интересный разговор. Я слышал только ответы Паши, разговаривал он видимо со своей девушкой:
-На море поехать? Зачем тебе это море! Поехали в Беларусь!
Я валялся с этого.
Но Паша был спокойным соседом, оказалось, что квартира это по меньшей мере проходной двор, а из постоянных соседей — двое наркоманы. Было весело, были и драки, слава богу они прошли мимо меня, были поиски стаффа в пять утра и постоянно у кого-то воняли ноги, а наркоманы были самые чувствительные по запаху.
Так я и прожил с ними 3 недели, потом мне выдали зарплату.

Своя арендованная квартира

У меня было n тысяч-рублей, мне нужно было срочно переезжать от наркоманов, всё равно куда.
И тут мне приходит письмо в личку на drupal.ru.
Писала одна девочка, из города Кемерово, я ей оказывается, когда-то давно помог с сайтом, она узнала, что я ищу квартиру и пообещала помочь найти.
И нашла, очень быстро, отличная квартира, дёшево, но далеко не центр и абсолютно нулёвая — минимальный набор советской мебели.
Мы быстро встретились с хозяйкой, я посмотрел квартиру и почти сразу в неё переехал.
Через неделю я узнал, что после того, как я съехал от наркоманов — их накрыла милиция.

Смена места работы

Так уж вышло, что по разным причинам, работать в Простобоксе мне не сильно нравилось. На то было много причин, начиная от ненавистного мне SVN и заканчивая тем, что я там не развивался как специалист.
В общем я сменил место работы и ушёл в работу над проектом, того человека, которого я консультировал в самом начале моей Москвы.

Новый проект

Здесь я не буду рассказывать про проект, NDA, как-никак. Но расскажу про Drupal и работу с ним.
Проект делается на Drupal 6, минимальной командой. В сумме — нас три человека, но занятость не могу сказать, что полностью полная.
На проект уже ушло ~800 человеко-часов, судя по Redmine.
Ещё порядка 150-200 уйдёт до запуска.
Я не знаю как назвать мою роль в проекте, но я погружён во все процессы + занимаюсь разработкой.

Сделаю небольшое резюме за эти неполные пять лет, что я с друпалом:

Минусы Drupal

Drupal, действительно, не самая лёгкая CMS
Любишь кататься, хочешь гибкости и открывать окна мышкой? Плати за это количеством SQL-запросов.
Ещё так вышло, что на продакшен-сервере у нас достаточно медленные диски, всё хорошо, но вот процедуры типа сброса кеша занимали довольно много по времени. Поставили memcache — теперь на SQL уходит только треть времени генерации страницы. Среднее время генерации — не превышает 1000мс.
Любители фреймворков воскрикнут «Да как так можно! Говно ваш друпал!», собственно ничуть не говно, всё пучком, об этом далее.

Drupal тяжело отлаживать
Из-за хуков тяжело понять что откуда возникает.
Как пример, был такой баг.
На каждой странице отдавался 404 HTTP-статус, но с контентом было всё ок.
В итоге дело оказалось в hook_menu_alter() одно из самописных модулей, модуль изменял пункт, которого в силу каких-то обстоятельств не существовало. Система меню друпала дурела и получалось вот такое.

Другая история была с модулем Invite и модулем og_features, они пытались одновременно переопределять форму регистрации, в итоге имеем баг, с тем, что модуль инвайтов инвайтиться не хочет.

В Drupal существуют баги
Да, это так, но баги, что в ядре полная фигня, по сравнению с тем, что бывает в контрибе.
Если вы не накладываете патчи на модули, то вы, вероятно, не погружались в процесс разработки.
Многие любят делить модули на красненькие и зелёнькие, и считают, что в зелёньких по-умолчанию всё хорошо, но это далеко не всегда так.
Зелёненькие модули — это релизы
Красненькие — dev-версии.

Сообщество Drupal — бяки и злюки и не любят новичков
Ага, а я самый главный ненавистник и это не шутка.
В Drupal-сообществе не любят идиотизм в любых его проявлениях, никто никому не обязан и не хочет отвечать на вопрос, который задаётся каждые 3-4 дня «Как мне зайти на сайт, если я скрыл форму входа?»
Не торопитесь делать сайты, читайте больше, а всё что вы хотите спросить — до вас уже спрашивалось.

Плюсы Drupal

Готовые решения
Количество готовых решений — зашкаливает, но исповедуется принцип, что модуль для решения задачи не должно быть зоопарка модулей, т.е. если CCK он один и рабочий, а не как у Joomla 6 штук и каждый по разному работает.
Да, бывает всякое, бывает, что и аналогов нет, и модуль не самым лучшим образом работает. Но не ленитесь заглядывать в Issue.
Взять модуль Organic Groups, казалось бы, довольно взрослый модуль, всё должен уметь, увы, разработчик забыл добавить кнопку выхода из группы в интеграцию с Views, решается патчем.
Хотя уже может включено в релиз.

Инструменты
Это вообще тема для отдельной статьи, напишу что используем мы.
Drush — инструментарий администрирования Drupal через командную строку, mush have

Drush make — тоже незаменимая вещь для экономии времени. Применительно к нам, используется для следующего.
У нас есть десяток самописных модулей, хранятся они в git, каждый в отдельном репозитории. И напрямую в код проекта коммиты модулей не уходят! На это есть свои причины.
В определённое время мы выпускаем новый релиз, чтобы не ходить по репозиториям и не вводить там
git clone git@server:module_name1
git clone git@server:module_name2

git clone git@server:module_name100
Мы используем drush make, в итоге, сборка свежих версий модулей, сводится к запуску команды
drush make custom.make
drush make сам выкачивает модули из репов и раскладывает по каталогам.
Второе применение drush make — наложение патчей. У нас есть список патчей, за которым приходится следить и после апдейта контриб-модулей накладывать. Drush make этот автоматизирует процесс, экономия времени при релизах — колоссальная.

Features — так как Drupal гибкая система для тыкальщиков мышкой, то настройки хранятся в БД, деплой настроек в таком случае — нечто невообразимое, как синхронизировать настройки Dev и Production, ничего не забыть не поломать? Да ещё и хорошо бы, чтобы это всё в git попало. Тут приходит на помощь модуль Features, он на основе настроек в БД генерирует модули своего формата, называемые в обиходе фичами.
Например, вы создали на Dev раздел новостей, естественно, натыкали его мышкой. Вам на Production надо перенести как минимум, 3 сущности, это вьюху, тип контента, словари таксономии. Вручную это займёт примерно час.
С модулем Features это займёт 10 минут в худшем случае. Вам нужно выделить галочками, что вы хотите переносить, сгенерировать модуль, закоммитить его, включить на продакшене и всё, профит.

Документация
Документации — полно, что в блогах, что на drupal.org, она хорошо структурирована и есть ответы на большинство вопросов. Лучше документация только у Rails, на мой взгляд.

Мероприятия
Здесь полно всего.
Начиная от крупных вроде DrupalConf в Москве, Киеве, заграницей, заканчивая мелкими, местечковыми вроде Drupal-Cafe или Друпал-шашлыки.
Если вы в Москве, в Краснодаре, Киеве, Донецке, Днепропетровске — присоединяйтесь к проводимым мероприятиям! В Москве скоро будет пейнтбол, например, приглашаются все желающие. Биться будем, кстати, с Joomla-адептами, закончим холивар.

Будущее друпала

Увы, но я не верю в светлое будущее.
Ситуация мне видится следующей:
Drupal 5 — начало взлёта
Drupal 6 — вырастили армию хомячков
Drupal 7 — вроде и повысили юзабилити для неискушённого юзера/создателя сайта, но поддержка уже сложнее и дороже. Вот хороший пример. Я часто делаю апгрейды с одной мажорной версии на другую, во время Drupal 6 — многие обновлялись с Drupal 5 самостоятельно, без знаний. Апгрейд на Drupal уже требует знания SQL, так как если появлятся ошибки в БД, процесс апгрейда остановится, пока не исправишь, шестёрка эти ошибки просто проглатывала.
Drupal 8 — решил «объединяться» с Симфони. Я попробовал Симфони, мне не понравилось + показалось, что сообщества нет как такового, слишком тухло, по сравнению с Drupal, да и как-то сложилось мнение, что для нормальной работы симфони нужно много костылей, у одних ActiveRecord не работает, у других ещё что-то.
Я сейчас веду трудовую деятельность на Drupal и параллельно изучаю RoR.
Я не буду говорить, что RoR рулит, друпал — срулит. Это разные инструменты, но я рад обоим системам.

Автор: RxB

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js