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