Мне нравится считать себя тимлидом. Ну, понимаете, я могу считать себя кем хочу, хоть котом. Но, по всем признакам я, вроде как, тимлид. К этому гениальному выводу я пришел исходя из двух обстоятельств: я руковожу и программирую. А иногда я беру себе проекты, как халтурку, и делаю их один. Как строители шабашат, ну вы знаете. Сначала шабашишь, потом бац, и фирму свою глядишь, откроешь, окна будешь ставить, порог вхождения небольшой: есть скафандр – будут путешествия. Про один такой проект и хочу рассказать, а также сделать какие-то выводы. К сожалению, тут будут технические подробностей, поэтому вот вам смешная картинка про тимлидов.
Проект по программированию и натягиванию на движок. Верстка уже была готова, дизайн согласован, оставалось только заставить всё это работать. Я отказывался сначала, не хотел (я ленив по природе), но пацаны из студии МОСТ прямо упросили меня. Мол, ты парень такой, кого не страшно просить, ибо программисты все безумные кругом. Одним ТЗ подавай, другим деньги. Да и найти нормального программиста в Рязани, который не будет трахать голову по всяким пустякам и согласится работать за те гроши, что беру я — просто миф. Хотя есть алмазы в сёлах, но поговаривают интернеты туда еще не провели.
Сайт бизнес-тренера. Я их всегда недолюбливал: вроде как паразиты на теле бизнеса. Как инфобизнесмены, коучи и прочее говно. Но Виктор мне понравился: эрудированный, не выпендривается, знает, чего хочет, платит бабло, которое не позволяет себе платить средней паршивости фирма в Рязани. Короче нормальный бизнес-тренер и пашет как лошадь: контент генерирует на-гора, рассылки триггерные делает, видео записывает и каждую неделю куда-то уматывал на свои бизнес-тренерские дела, поэтому связь держали исключительно по скайпу, хотя сам он и из Рязани. Мне советы давал разные по ходу работы, книжки советовал. Короче изменил я свое мнение. Не все бизнес-тренеры мудаки. Это как c SEOшниками. Есть нормальные ребята, но репутация профессии подпорчена большим количеством аферистов.
А, да! Я же про сайт хотел рассказать. Идея сайта в том, что он состоит из большого количества блоков разных форматов. И эти блоки выводятся по определенным правилам, которых over9000. Заставил я это всё работать с помощью MODX Revo, php и пиздюлей. Всё как обычно — на входе вёрстка, на выходе алмаз ограненный.
Почему я хочу рассказать об этом проекте? Потому что проект получился таким, который использует всю мощь этой CMF. Хочется давать ссылку на этот пост тем начинающим веб-мастерятам, которые спрашивают меня о выборе CMS.
Сайт пронизывают тэги. Тэги есть у каждого документа в системе. На основании тэгов (с помощью простого матана просчитывается векторное расстояние между суммой тэгов у документов, и выводятся ближайшие) подбираются релевантные мероприятия и статьи, которые будут интересны пользователю. Короче без всяких биг-дейта и рекомендательных систем, но зато достаточно эффективно.
Всё оформлено максимально децентрализовано и на чанках (кусочки кода в MODX). В чем фишка то? А в том, что за счет использования БЭМ (блок, элемент, модификатор) в верстке и за счет использованием сниппетов получилось добиться полностью независимого конструктора для пользователя. Сниппеты это куски пехапе кода. Они производят другие куски кода, в зависимости от id ресурса или id шаблона.
То есть можно сказать: эй, MODX, у меня новый тип страницы. Хочу, чтобы был заголовок, текст, под ним отзывы, под ними комменты, справа чтобы тэги висели и еще какое-нибудь говно, я сам еще не решил. И всё будет корректно работать.
И у страницы сразу будет и рабочая логика — если тэг выбран, то сразу подцепляются статьи и мероприятия по тэгу. Если выбрано несколько тэгов, то всё это подцепляется, но уже по матану. Если же статьи выбраны, то они показываются в приоритете, а дальше по матану. Если картинку загрузили к статье в поле слайдер, то статья сразу попадает на главную страницу вместе со ссылками, вступлением и заголовками.
Все по кускам. Сначала основной текст. Затем блок для регистрации, берется из другого места. Статьи в блок «подготовка к мероприятию» дергаются по тэгу. Отзывы тоже идут по связи. С проектом было крайне забавно работать, потому что в качестве ТЗ были блоки, и наброски страниц, которые по 100 раз изменились в процессе работы. Но, так как я изначально знал об этом, то и делал с акцентом на независимость.
Просто кликаешь, добавляешь, вводишь и вуаля. Как LEGO собирать в режиме реального времени. Приятно.
Почему MODX то? Я всегда считал, что MODX сделан для дизайнеров. Он настолько прост, что если ты знаешь html и css, то ты разберешься с ним за 1 сутки. Ну, конечно, если ты не ленивая жопа, которая ищет оправдания вместо того чтобы делать. Я раз 5 или 6 обучил стажера за один день натягивать шаблон на MODX. Каждый раз неприятие. Типа моя жумла или вордпресс делает это по другому. Фу! Блевота! В жумле вот так…
И через 1 неделю он говорил мне: — это лучшее из того что я пробовал. Лучше чем героин, который мне приходилось принимать, когда я делал сайты на joomla, чтобы не страдать так сильно!
А ты ему: — парень, вот тебе сайт modstore.pro иди и охуевай дальше.
А знаете что самое клевое? Ну, то, что если вы дизайнера научите этим пользоваться, то он будет делать просто крутецкий продукт. Потому что дизайнер думает как пользователь. А программист думает как программист: где ТЗ!? Этого в ТЗ не было!
Пример из проекта: необходимо чтобы контент-менеджер мог выбирать любой документ и показывать его на главной в слайдере.
Смысл в том, что программист сделает форму для добавления фото в слайдер и рядом флажок «выводить на главной» а дизайнер просто сделает форму добавления фото и припишет «если фото загружено, то оно будет выводиться на главной». Смекаете? Программисты — псы алгоритмов. Но дизайнеры не умеют программировать. В итоге ваш охуенный залайканный на дрибле дизайн будет разбит о суровые реалии советской алгоритмической школы, главный постулат которой «небыло в ТЗ». Чуть ниже кусок админки, где это реализовано.
Я не говорю, что программисты пидорасы, а я на белом коне. Я вообще про них ничего не говорю, тут всё в бюджет тупо упирается. По-хорошему, тут и требования надо оформлять и переводить эти требования с языка бизнеса на язык алгоритмов. Интерфейсы админки отрисовывать (лол, кто это делает в Рязани, поднимите руки, а?) и всё это дело тестировать, допиливать, тестировать и переделывать. Ну вы знаете.
Подведу итог про MODX Revo. UPD от 10.09.15, спасибо пользователям Виктору и Мордынскому Николаю с сайта modx.pro.
Плюсы:
Минусы:
Если я что напутал, не серчайте. Я джуниор а не тимлид — я всех обманул. А еще у меня есть отзыв заказчика на книжке, которую он выпустил:
Сайт: http://victorluchkov.ru/
Технологии: PHP, xPDO, JavaScript, MODX Revo, стандартный набор CSS+HTML
Выводы: Если у вас e-commerce то берите 1С-Битрикс или пишите с нуля, если у вас корпоративный сайт-визитка-лендинг-что угодно то modX Revo.
MODX не CMS, а CMF. То есть это фреймвёрк для того чтобы делать другие CMS. Нам нужно больше фреймверков! Хочу фреймверк чтобы делать другие фреймверки, которые делают другие фреймверки
Перечитываю и понимаю, что сложно написано, но что поделать — ведь цель этой статьи создать впечатление, что я охуеть какой профессионал. На самом деле так оно и есть. Я серьезно!