Несколько интересных ссылок на БЭМ-тему в большом интернете.
Возможно, кому-то я сэкономлю время.
1. http://www.herda.me/blog/my_brain_on_bem/
Очень милый рассказ про использование БЭМ и нотацию.
2. http://viget.com/extend/bem-sass-modifiers
Большая статья, интересен параграф "BEM to BEVM?" в самом конце. Характерный в том смысле, что в иностранном сообществе БЭМ-нотация с урезанными модификаторами получила большее распространение, чем классическая, и возможно в этом причина восприятия там БЭМ в основном как схемы именования CSS-правил, а не как методологии.
3. БЭМ все чаще встречается в зарубежных вакансиях, примеры:
http://www.dice.com/job/result/ceiam/JMJO032170
http://www.seek.com.au/job/26106319
http://www.seek.com.au/job/26033969
http://www.seek.com.au/job/26105150
http://www.seek.com.au/job/25963941
4. Про БЭМ знают и много пишут в Японии. Не только переводят популярные статьи – Галлахера и Робертса, но и делятся свои опытом. Очень интересно узнать детали и стилистику написанного, но даже с автоматическим переводом понятно, что БЭМ активно обсуждается и внедряется.
Избранное:
https://github.com/juno/bem-methodology-ja – перевод bem.info
http://zerokaraweb.com/note/bem-startguide/ – большая статья про методологию, c отсылками к bem.info и оригинальными иллюстрациями.
http://tsmd.hateblo.jp/entry/2013/12/12/004059 – об использовании БЭМ в CSS и просто размышления. В конце проскакивает фраза "признаки БЭМ-эпидемии"
Есть даже целая серия статей про bem-tools!
http://geckotang.tumblr.com/post/68662389684/bem
http://geckotang.tumblr.c
http://geckotang.tumblr.c
http://geckotang.tumblr.c
Эти и другие материалы можно найти здесь:
http://www.adventar.org/calendars/61 – целый БЭМ-календарь
http://b.hatena.ne.jp/ta2_o2p/bem/ – закладки по тегу БЭМ
Лайф-хак: авто-переводчик с японского переводит на английский лучше, чем на русский.
люди сперва думают а потом используют
"
яндекс не пора ли использовать нормальный стиль наименования ? я про " -- "
Каждый дрочит как хочет, мне вот удобнее использовать классическую нотацию, а урезанная кажется малоинформативной.
про урезанное это вы про что ?
я про разделители в наименовании. "яндекс" в свое время побоялся использовать двойной минус "--" и пошел непревычным путем используя двойное подчеркивание. ну и само собой теперь продвигает его как рассово верным. За бугром этот стиль явно не нравиться и люди эксперементируют.
вот я и задаю вопрос не пора ли начать использовать "--" и разговаривать на одном языке
Я вас понял
Я отталкивался от слов под вторым пунктом:
Ну и вы немного путаете. "--" — это упрощенное указание модификатора. В БЭМе для этого принято использовать одинарное подчеркивание и именование вида ключ_значение. Упрощение допускается для модификаторов вида .button_link_true, который можно сократить до .button_link. А можно и не сокращать
Т.е. .button--large эквивалетно .button_size_large.
Позиция команды БЭМ (а не всего Яндекса, внутри Яндекса достаточно всяких параллельных течений вроде BEViS) в этом вопросе ясна и понятна, классический синтаксис более строгий и логичный, с одного взгляда на название класса становится ясно, за что отвечает конкретный модификатор.
Да, видел, большой респект!
что такое "--" я в курсе, иначе бы не стал откапывать труп , который когдато тут в клубе был зарыт (http://clubs.ya.ru/bem/re plies.xml?parent_id=44&it em_no=43) .
и он к "упрощенное" никакого отношения не имеет, если я правильно понял про что вы.
Такой синтаксис умеет выражать только блоки и «булевые модификаторы» блоков. Но проблема в том, что он не подходит для выражения всех остальных случаев, а именно:
- модификаторы блоков вида «ключ-значение» (block_modKey_modValue) ;
- элементы (block__elem) ;
- модификаторы элементов вида «ключ-значение» (block__elem_modKey_modValue) ;
- булевые модификаторы элементов (block__elem_mod).
Тьфу блин. Извиняюсь, это я вас изначально неправильно понял, мы говорили о разных вещах
Похоже вы мыслите своим правилами, и не видите что все значительно проше.
В обычную, всеми известную и дренем как говно мамонта структу [.родитель-потом] добовляется понятие модификатора [.родитель-потом .родитель-потом--модификатор] . И получаем ничто иное как тот самый БЕМ .
имяБлока--modKey-modValue
имяБлока-имяЭлемента
имяБлока-имяЭлемента--modKey-modValue
имяБлока-имяЭлемента--mod
стоит заметить что тут (http://clubs.ya.ru/bem/replies.xml?item_no=43) двойной минус использовался как разделитель между блоком и элементом, в дальнейшем отказались и стали использовать двойное подчеркивание. Но в данном примере "
А есть еще какие-то причины, почему так «нормальнее»?
стилистика написания класса более класическая. Обычно исторически пишут так bla-bla-bla-bla , в БЕМ чаше выглядит так bla_bla_bla_bla , суть думаю понятна. Чисто психологически приятнее использовать то к чему ты привык. и думаю это самое важное причина.
наименование больше похоже на стилистику принятую в языках программировании.
к примеру в js часто переменные называю темже именем что и сам блок, и это удобно. в БЭМ так не получиться, потому как в имени блока допускается знак минус (пример "какойто-блок") . Тоже самое относиться к элементам блока.
ну и да в редакторах выделение текста больше заточено под языки программирования.
а что касается «более классической» схемы именования классов, то я считаю, что она у нас сохраняется: классики (кто бы они ни были) в разделение с помощью «-» закладывали семантику разделения нескольких слов (при этом в HTML обычно не используется camelCase, кстати) и мы делаем точно так же, а задачи кроме просто разных слов разделять еще элементы и модификаторы, причем так, чтобы не перепутать одно с другим, у классиков просто не было.
camelCase не используется в стандартах xml, html, css итд. Но там и нет сложных иерархий в именах (префикс, блок, элемент, модификатор, ключ-значение). Замечу что и нижнее подчеркивание не используется также.
http://www.seek.com.au/job/26016001 тут про БЭМ не нашла
Зато еще вот такие ссылки нашлись, будет круто, если ты их в пост включишь
http://www.seek.com.au/job/26106319
http://www.seek.com.au/job/26033969
http://www.seek.com.au/job/26105150
добавил