Существуют приватные (служебные) блоки, которые помогают написать сложный элемент. А как их различать?
Как понять, что данный блок - приватный (служебный)? И что сделан не для того, чтобы использовать его отдельно в другом месте сайта. А для упрощения написания сложного элемента?
Про служебные блоки вот здесь я нашел:
https: //ru.bem.info/forum/149/
и вот здесь:
https: //github.com/bem-site/bem-forum-content-ru/issues/158
"Исключением может быть ситуация, когда у такого элемента оказывается слишком богатый внутренний мир и возникает желание сделать его собственные элементы. Тогда это можно представить как служебный «приватный» блок."
> Как понять, что данный блок - приватный (служебный)?
Вы написали это в его документации/комментарии к блоку/имени блока и т.п.
БЭМу всё равно.
С другой стороны, если блок сам по себе подходит к какой-то другой ситуации, значит это вполне себе самостоятельный блок и почему бы его и не использовать в другом месте…
Это УПРОЩЕННЫЙ пример. Представим, что img и description лучше сделать блоками, а не элементами (внутри них тоже есть элементы, например).
Тут же не понятно, что img и description - приватные блоки, используемые для написания блока article. А одно из особенностей БЭМ - самодокументируемый код и понятные наименования. В данном примере этого нет. Как мне быть?