Войти с помощью github
Форум /

Приветствую, дорогой читатель,

Мень зовут Саша Белянский. Я работаю в группе рекламных технологий в Симферополе и занимаюсь разработкой интерфейсов Яндекс.Директа. Помимо основной работы вынашиваю и развиваю идею Витали Харисова о том, что редакторы можно использовать с бОльшим удобством, научив их работать с БЭМ-проектами.

Я хочу поделиться с вами впечатлениями, полученными на прошедшем хакатоне по БЭМ и рассказать о своей идее, несобранной команде, планах проекта и том, почему я решил помогать другим ребятам и не терять время зря!

О себе и проекте

Как я уже написал выше, я работаю в группе рекламных технологий в Симферополе и занимаюсь разработкой интерфейсов Яндекс.Директа, вёрсткой и программированием на JavaScript.

В БЭМ-сообществе меня знают, как разработчика, рассказывающего про идею прототипа BEM IDE. Что это?

БЭМ-методология — это мощный инструмент для разработки больших проектов. Разделение интерфейса на отдельные сущности помогает выделять общее и частное, но, как и во всём в мире, в БЭМ есть свои недостатки. Работая над большим БЭМ-проектом, легко запутаться, ведь логика одного блока может быть описана на разных уровнях переопределения.

BEM IDE — это идея разработки плагинов для различных редакторов кода, которые помогут не меняя привычное окружение работать с БЭМ-проектами просто и понятно. Чтобы лучше понять, о чем идет речь, смотрите видео с BEMup'а в Питере.

Когда появилась возможность стать ментором на хакатоне по БЭМ и попробовать совместными усилиями развить идею BEM IDE, написав плагины для редакторов, я конечно же решил ею воспользовался.

К хакатону у меня уже был готовый прототип BEM IDE и понимание общей концепции работы с кодом блока со всех уровней сразу. Выбирая редакторы, в которых необходимо было реализовать возможности, заложенные в прототипе, я выбрал Atom и Brackets, ведь они написаны на JavaScript и имеют понятное API, которое я и стал изучать. А что касается популярных WebStorm и Sublime Text, разбираться с ними оставили на хакатон.

Ситуация на месте

Первый день хакатона открывался презентациями проектов, где менторам необходимо было рассказать про свою идею и собрать людей для работы над ней.

Как это прошло у меня? Я не мастер ораторского искусства, но это кажется полбеды... Еще до презентации я сделал весьма важный вывод — ехать одному на хакатон, где люди жаждут писать блоки, имея проект, который ничего общего с написанием блоков не имеет, весьма опрометчиво :) Есть большой шанс команду не собрать.

Мои ожидания, увы, оправдались. После презентаций разработчики разошлись по другим, более понятным проектам, которые так или иначе работали с блоками, документацией или сайтом bem.info.

Жаль, что мой проект пришлось отложить, но заниматься им в одиночку было бы менее полезно для хакатона в целом. Поэтому я решил продолжить работу над BEM IDE после хакатона и отразить результаты в отдельной статье, которая будет опубликована на bem.info.

А свои знания и время привнести в работу другой команды и присоединился к проекту Андрея по модульной сборке.

Сборка?

Идея Андрея заключалась в том, чтобы сделать сборку проектов на БЭМ прозрачной, выделив её части в модули, которые можно использовать отдельно от существующих систем сборки, таких как enb или bem-tools. Я был довольно далек от внутренностей сборщиков, поэтому просто пытался понять, о чем говорят более сведущие в этом деле товарищи.

Ближе к вечеру первого дня мы разобрались с планом того, что требуется для сборки БЭМ проекта с использованием Gulp и приступили к работе. В течение хакатона мы сделали несколько модулей, а bem-walker стал гордостью Андрея.

Однако, оставалась важная часть — у нас не было модуля для построения правильного списка зависимостей, на который должен был опираться сборщик. Мы разбирались с реализацией модуля deps-resolver в сборщике enb, но он оказался довольно сложным, и просто переписать его не было времени. Поэтому мы постарались допилить его под наши нужды, чтобы по итогам хакатона представить хотя бы прототип сборки.

Командные результаты и впечатление от проекта

Закрытием хакатона стали презентации проектов, где менторы рассказывали о проделанной работе.

Андрей рассказал про готовые модули и о том, какую пользу они принесут, после чего объяснил, что с подобным подходом светлое будущее наступит гораздо быстрее и упомянул про почти рабочую сборку на gulp.

Больше спойлерить не буду. Впереди большой пост от Андрея и публикация результатов команды.

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

От себя добавлю — было здорово смотреть на результаты всех команд, где ребята работали два дня плечем к плечу. Это был отличный опыт и первое мероприятие подобного рода в БЭМ-сообществе!

Организаторы проделали огромную работу, позаботившись о нашем комфорте. У нас были удобные места для работы, вкусная еда и замечательная атмосфера.

Что вынес для себя я? Будучи разработчиком интерфейсов, который то и дело пишет какие-нибудь блоки, было интересно посмотреть на процесс работы товарищей, которые часто пишут под nodejs. Так, например, я понял, насколько удобным может быть написание модулей, если сначала писать тесты, а уже потом код :)

Ну и конечно подобные события - это не только написание кода, а еще и атмосфера!

Два дня в окружении единомышленников, которые завершаются совместным афтерпати - это та отдушина, которая позволяет тебе вздохнуть полной грудью и вернувшись домой очень долго работать в отличном настроении :)

Так что, дорогой читатель, знай — подобные мероприятия наносят пользу и причиняют позитив!

А все отзывы, которые оставляют участники после, делают события все лучше и лучше :)

Вот и все, пиши код и Stay BEMed!