All streams
Search
Write a publication
Pull to refresh
5
0
Виталий Харисов @vithar

Разработчик интерфейсов

Send message
Я не занимаюсь разработкой ЯПочты, поэтому не могу прокомментировать.
Что и требовалось доказать. Мы специально работали над этим.
Вот ранние описания, где есть про префиксы:
clubs.ya.ru/bem/posts.xml?mint=1235854800&maxt=1238529599
clubs.ya.ru/bem/posts.xml?mint=1238529600&maxt=1241121599

Мы от них в итоге отказались, но может кому-то они ещё полезны.
Не путай, пожалуйста, конкретную реализацию у конкретного автора с общей методологией.
clubs.ya.ru/bem/338

Погоняйте в своих браузерах приведённые в тексте тесты.
Где вы увидели каскад в классах .a__header и .b__header?
В том-то и дело, что БЭМ, добавляя каждому тегу много презентационных классов и усложняя их названия, не дает никаких преимуществ и независимости блоку.
Где вы увидели в БЭМ рекомендацию добавлять презентационные классы?

Имена сущностям надо подбирать так, чтобы они отражали суть, а не то, как оно выглядит.
Нет, её будет отдельный блок, который можно использовать где угодно.
Стоит почитать ещё историю развития БЭМ:
ru.bem.info/method/history/
Вот самое первое описание:
vitaly.harisov.name/independent-blocks.html

Вот про АНБ уже в клубе БЭМ:
clubs.ya.ru/bem/43
Зачем давать классы всем элементам:
clubs.ya.ru/bem/338
Полного отказа от каскада нельзя избежать. Каскад нужен, если задан модификатор у блока и нужно менять внешний вид/поведение у вложенных элементов, как в примере выше.

С другой стороны, надо понимать, что использование каскада влечёт за собой сложности при вкладывании блоков один в другой.

При такой структуре

block_theme_blue
another-block
block

по каскаду будут затронуты так же элементы внутреннего вложенного блока, что скорее всего не предполагалось при разработке.
b-link b-link_menu b-link_menu_active

это лучше писать как b-link b-menu__link b-menu__link_active_yes

Т.е. мы не расширяем блок b-link знанием про меню, а наоборот в рамках меню делаем элемент __link. Это более специфично получается.

Вообще про миксы стоит посмотреть доклад Кира:
tech.yandex.ru/events/yasubbotnik/msk-sep-2012/talks/327/
js- (JavaScript) префикс для выделения элементов для селекторов js
Так делать не нужно. По БЭМ js это одна из технологий блока и скрипты пишутся в рамках уже имеющихся блоков, а не плодятся другие.
«Группа блоков» в БЭМ методологии называется «уровень переопределения». В bem-tools это параметр -l
Ну так тогда и меня надо указывать, CSS Live Templates для IDEA были придуманы и реализованы в Яндексе раньше Zen Coding, но не были вынесены в Open Source.
В Яндексе CSS и JS собирается на лету в один файл (импорты заменяются на содержимое файлов с исключением дубликатов) с использованием fast-cgi решения под названием ycssjs.

Мигрируем с него постепенно на bem server, который используется для сборки всех зависимых ресурсов страницы (например, ещё шаблонов), а не только css и js.

Для сбоки в продакшен используется ycssjs, или borschik, или bem make,

Information

Rating
Does not participate
Location
Симферополь, Республика Крым, Россия
Works in
Date of birth
Registered
Activity

Specialization

Frontend Developer
Lead
HTML
CSS
BEM
SCSS
Adaptive layout
TypeScript
JavaScript
Crossbrowser layout
Web development
React