andrei500, я сам пришёл к БЭМ-стеку после pug — стала бесить невозможность полноценно писать «умные» компоненты (с проверками, валидацией, значениями по умолчанию): хотелось просто написать «хочу такой-то блок с такими параметрами», а не думать о его структуре, тегах, атрибутах и прочем (они должны быть или предустановленными, или меняться в зависимости от тех самых параметров), а БЭМ-блоки (или React/Angular/Vue/<здесь мог быть ваш фреймфорк>-компоненты) именно так и делают — «наружу» торчат только управляющие конструкции, а bemjson — как раз формат описания этих входящих данных, понятный абсолютному большинству разработчиков, ибо JSON (хотя никто не запрещает использовать любую другую структуру — хоть YAML, хоть CSV). К тому же сборка БЭМ-проекта раз в 60-200 быстрее за счёт enb.
Правда, они вынуждены довольствоваться кастрированной «облегчённой» версией БЭМ без модификаторов вида «ключ-значение» («спасибо» ниасилившимуофф. документацию Гарри Робертсу, который популяризировал в англоязычных кругах только булевы модификаторы, сведя на «нет» важную часть преимуществ методологии).
alex-1917, глупость. PageSpeed не учитывает количество и длину классов (привет, gzip), только «лишние» стили для неиспользованных классов, а БЭМ-стек как раз и способен собирать страницу только с теми стилями, которые фактически присутствуют на странице.
alex-1917, Всё так, кроме виллы — там ещё в Вордпрессе надо кнопочки подвигать. В остальном верно.
P. S. не знаю, как там дела у Java-кодеров, но БЭМ-разработчики эти классы, естественно, руками не пишут — они генерируются автоматически.
Если это не противоречит требованиям, то да, кажется, этого будет достаточно. Есть, правда, bem-react, где разделение по платформам (и вообще по уровням переопределения) осуществляется с помощью dependency injection на webpack, но вряд ли от вас ожидают на столько высококлассное решение на этапе стажировки (большинство адептов БЭМ даже не знают, что это такое).
sergski, avr1972, тогда уж `sait__text_position_left` и `sait__text_position_right` (даже `sait__text_position_start` и `sait__text_position_end`, если учитываете rtl-языки), потому что без неймспейса есть вероятность, что оба эти модификатора могут быть на одном ДОМ-узле:
modxyou, да также абсолютно. Из описание не совсем понятно, какую задачу пытаетесь решить. Если полей несколько и их количество определено, заносите каждое в этот список:
andreyWayne, пример очень специфичный и используется самими авторами БЭМ в `bem-components` — выпадающее меню `select`'а в момент раскрытия переносится в конец страницы, чтобы исключить конфликты `z-index`-перекрытий другими попапами. Но это скорее исключение (лишний раз доказывающее правило) и происходит уже с помощью JS, сама разметка при этом соответсвует требованию «элемент не может существовать вне блока».
Ростислав, запись планируется. А вот с практикой переноса вёрстки в шаблонизатор MODX всё не так просто. Я считаю (т. е. это исключительно моё мнение, не «best practice»), что этот процесс вообще лишний, если есть возможность использовать БЭМ-стек и Node.JS на сервере — MODX в этом случае будет выступать как RESTFul API-сервер, а БЭМ-стек возьмёт на себя всё, что в классическом MVC-паттерне отвечает за View, так что менять внешний вид можно вообще «безболезненно». А по моим предположениям ещё и быстрее, чем родной шаблонизатор MODX.
Ох… Тут одним комментарием, увы, не ограничиться, потому что есть много разных «если». Скоро MODXpo, кстати, где мы как раз планируем обсуждать и эти вопросы деплоя и скафолдинга: статичные файлы, Gitify.
Про PHPStorm вообще ничего не подскажу — не использую, т. к. БЭМ предлагает бо́лее удобную архитектуру файлов (на мой взгляд), исключающую необходимость «скакать» по вызовам.
По поводу «полный БЭМ-стек vs. БЭМ как именование» — eto kak ispol'zovat' translit i dumat', chto znaesh anglijskiy yazik — все преимущества БЭМ раскрываются в инструментах: там вообще не надо думать об изоляции, инкапсуляции, модульности и других проблемах, которые пытаются решить с помощью CSS-модулей, CSS-in-JS, JSX и прощих Vue. А уровни переопределения — как вишенка на торте: реиспользуемость во всей её красе на 120%.