Pull to refresh
33
0
Павел Франков @twenty

Улучшаю Инфраструктуру фронтенда

Send message
Есть хорошее правило на Хабре: минусуешь — аргументируй.
Но я же про семантику! Любимый момент: b-popupa_theme_ffffff
<картинка c троллейбусом из хлеба/>
Даже этот ужасный «каскад» (как его называют БдсЭМщики) лучше читается, чем приведённый мною «корявый» БЭМ.
Да и у кого учиться БЭМу, как ни у его создателей?
В не поверите, но классы тоже не для этого. На них можно повесить стили с помощью CSS-селекторов, которые позволяют достаточно гибко выбрать элемент для применения правил. Но, так же, стили можно повесить на id или, скажем, на каждого второго члена списка. Вы вправе использовать любые селекторы для стилизации элементов, в том числе по id.

Я хочу сказать, что навязывание классов, как единственно-возможного способа задания стилей элементу, ущербно.
Да, но сомнительно, что для попапа будут семантичными классы b-popupa b-popupa__without-padding b-popupa_theme_ffffff b-popupa_direction_down b-popupa_is-bem_yes i-bem b-dropdowna__popup b-dropdowna__menu b-popupa_js_inited.

По БЭМ-именованию с исключеним множества вложенностей в именовании вполне себе можно понять что это за блок и даже какое иерархическое положение он имеет.

Для таких целей придумали SASS и LESS, в которых иерархия прослеживается табуляцией, что намного читабельнее.
И, ещё раз, как это согласуется с БЭМом? Вы лично не видите явной семантической пропасти в этой идеологии?
Конкретно этот пример — ничем не смущает.
Вы написали про поисковики:
Некоторые атрибуты тегов тоже туда относятся, но не id, class, или data-*

Я вам ответил, как это же выглядит в стандарте HTML5, а именно, что семантика — это совокупность тегов, атрибутов и их значений. И всё туда очень даже относится.
Поэтому, когда БЭМ лишает меня возможности писать нормальные, логичные классы, использующие каскад, когда он запрещает на идеологическом уровне мне использовать id — я нахожу в этом ухудшение семантики.
Ну, многие, например, говорят, что стили, записанные одной строчкой, много читабельнее, чем блочные.
Надеюсь, что только у нас двоих разное представление о читабельности.
Хоть я и нахожу стандарты исключительно рекомендательными, но раз уж мы о них заговорили — прошу любить и жаловать:
Elements, attributes, and attribute values in HTML are defined (by this specification) to have certain meanings (semantics).
http://www.w3.org/TR/html5/elements.html#semantics-0
Уверяю, если бы все эти 95% были разработаны _теми же людьми_ по БЭМу — вас бы вообще вывернуло наизнанку.
.main-menu > .main-menu__item > .main-menu__link,
.ico.ico_size_16.ico_map

Простите, насчёт читабельности не убедили. Смурфовские имена ещё никому читабельности не добавляли.

Семантика не ограничивается только тегами.
Главные принципы хорошей вёрстки — это её семантичность, последовательность и читабельность.
Использование БЭМа значительно понижает 2 принципа из трёх: семантичность и читабельность. И это относится не только к вашим примерам, где от БЭМа только классы, но и к полноценному БЭМу, который навязывает Яндекс.

От себя рекомендую посмотреть в сторону SASS + Compass и требовать вёрстку именно в них — это избавит вас от вышеописанных проблем, при этом не понижая семантику и значительно повышая последовательность с читабельностью.
Причины использования БЭМа Яндексом или Гуглом, в разработке собственных сервисов, предельно понятны и обоснованы.
Автор статьи же, как и верстальщики Яндекса, рекомендует применять БЭМ везде.
Вы сами в статье заметили, что от головняков это не спасает, а наоборот — создаёт новые на совершенно пустом месте (пример со ссылками).
Кроме того, существует мнение, что семантика — это не только название тега, но и совокупность его атрибутов, в том числе class и id, от которого вообще предлагают отказаться.
Я вижу только отвратительную читабельность, низкую скорость разработки и потенциальные проблемы при поддержке БдсЭМа.
Описанные вами преимущества с лихвой покрываются препроцессорами типа SASS и LESS.
Не чаще, чем для 4s.

Information

Rating
Does not participate
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity