Всем привет, не так давно пробежался по документации к БЭМ технологии и мне она понравилась, вернее методология именования, но как только перешёл к другому разделу, то понял, что можно использовать сборку проекта и i-bem.js (вроде как фреймворк их), читал, читал, многое не уловил, особенно последовательность действий и принцип описания bemjson файлов, но это дело времени, пару раз перечитать, попрактиковаться и всё будет супер. Так вот, вопрос такой, стоит ли использовать все эти премудрости с разными папками, сборкой проекта и т.д. потому что читал, что это вроде как кроме Яндекса нигде не юзают, а используют только их методологию именования. Просто у меня сложился уже определенный каркас структуры проекта и он сильно разниться с их структурой. Так всё же, быть или не быть? Использовать или нет и принесет ли мне это какую-нибудь пользу?
Сам подход фулл стека мне очень нравится но реализация на тройку ИМХО. Пллюс документация оставляет желать лучшего. Я использую подход но на основе pug + набор тасков TARS.
И вообще мне кажется, что ребята с Яндекса немного подзабили на поддержку опенсорсного проекта. Та система сборки, которая представленна на bem.info хорошенько устарела.
Нет, на любителя. Просто одна из важных фичь Бема (по моему мнению) кроме методологии нейминга - это доопределение и переопределения кода на высших уровнях. Я здесь могу в чем-то ошибаться, потому что сам до конца не разобрался пока. Но с начала мы берем самую примитивную бем сущность например a.button и пишем очень общие стиле или проще говоря делаем ей ресет. Далее в блоке на уровень выше для кнопки которая в шапке сайта (здесь по фуллстеку обычно создают папку header и подпапку button), где мы доопределяем нашу сущность родительским селектором header__button, который задает внешнюю геометрию кнопки. Ну и наконец, в идеале мы создаем еще один или много (ето все зависит от желания и масштабов проекта ) независимых от блоков файлов стилей, где описываем дизайн наших сущностей через модификатор _theme_lolololo.
В конечном итоге у нас получается пуленепробиваемый батон :) в лучших традициях DRY, с минимальной вероятностью последующих багов, а также с максимальной поддерживаемостю. Такая же история и с JS блоков.
Pug, он же jade, справляется с этим на все 200%, а в TARS очень неплохо это все собирает в кучу и помогает поддерживать вложенность элементов.
Но опять же здесь нет единого правильного подхода. Многие делают гораздо проще. Для каждого блока есть папка с pug миксином, стилями, скриптами и прочим дале инклудамы все в index. Например здесь: https://github.com/zoxon/gulp-front