littleguga
@littleguga
Не стыдно не знать, а стыдно не интересоваться.

В чем суть БЭМ от Яндекса?

По смыслу же это - jquery/gulp/jade - от яндекса?
Я читаю документацию, но никак не могу понять, в чем преимущество использования данной технологии. Какой с этого профит?
  • Вопрос задан
  • 598 просмотров
Решения вопроса 3
IonDen
@IonDen
JavaScript developer. IonDen.com
По сути все сборщики там это всё вторично. Главное сам принцип именования и использования классов в HTML и CSS. Этот подход позволяет сохранять единообразный подход к разработке даже в самой большой команде. Кроме того позволяет обмениваться модулями (html+css+js) между командами. Например одна команда написала скажем sidebar. Другая команда теперь может легко и просто вставить его в свой проект, не беспокоясь о конфликте CSS стилей или имен классов.
Ответ написан
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
По смыслу же это - jquery/gulp/jade - от яндекса?

это bem-tools, сама методология BEM чуть отличается все же.

блок - базовые стили маленького блока, какой-то конкретной составляющей UI
элемент - стили отвечающие за позиционирование вложенных блоков или просто элементов
модификаторы - стили, меняющие оформление блока или его элементов.

По сути BEM это крайность, основная соль которой - декомпозиция UI, разделение всего и вся на независимые блоки с целью повторного использования... Это очень даже хорошо работает в рамках большого количества однотипных в плане UI приложений. Для яндекса это подходит очень хорошо. Для мелких проектов - возможно не так хорошо, но от этого идеи не становятся плохими. Можно слепо следовать правилам и жить не тужить, а можно думать что ты делаешь и какие подходы используешь, оптимизировать все под себя и т.д.

https://www.youtube.com/watch?v=RM55tkWfHDc - рекомендую к просмотру доклад Вадима Макеева на эту тему. Думаю так будет проще.
Ответ написан
un1t
@un1t
Нужно различать технологии БЭМ и стандарт кодирования БЭМ. Правда стандарт кодирования они почему-то называют методологией, вероятно, чтобы придать больше важности и избежать конкретики, потому что стандарт кодирования это вещь простая и конкретная, а методология очень абстрактная.
Вобщем идея именования классов для выделения связанной логики в блоки довольно хороша и удобна для разработки и поддержки. А вот с технологиями тут все довольно печально, лучше испольовать общепринятые gulp/jquery/angular и прочее, по ним и информации больше и плагинов и комьюнити и работают они лучше.

Например одна команда написала скажем sidebar. Другая команда теперь может легко и просто вставить его в свой проект, не беспокоясь о конфликте CSS стилей или имен классов.


В теории это наверно так, по крайней мере об этом все говорят. Конфликтов стилей действительно не будет, это плюс. Но переиспользовать получается только уж совсем элементарные блоки типа логотипа и иногда попапа. А вот какой-нибудь слайдер уже не получается, хоть ты тресни. У одного проекта одни требования к слайдеру, у дргого другие. Решения получаются слишком часные, а если делать общее решение на все случаи жизни, то оно получиться очень громоздким и слишком абстрактным для того чтобы его можно было использовать. Если бы заявленное было правдой, то после выхода компонентов в стиле островов у Яндекса бы все сайты почти автоматически переоформились под новый стиль и все. А по факту это переписывание фронтэнда заново.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы