169 похожих чатов

Кто-Нибудь может кинуть репозиторий с хорошей реализацией БЭМ в связке

с Vue? просто почитать. А то я плохой код, где БЭМ вызывал кучу прблем и не решал ни одной видел, а вот хорошую реализацию ни разу.

30 ответов

10 просмотров

а зачем вообще бэм в фреймворках с компонентным подходом?)

Artyom Tuchkov
а зачем вообще бэм в фреймворках с компонентным по...

Некоторым не нравится делать компонент на каждый микроблок, в котором один див с классом блока

Grigorii K. Shartsev
Некоторым не нравится делать компонент на каждый м...

ну да, возможно, но лично мне кажется, что разделение на компоненты гораздо лучше, чем замена их на бэм)

Artyom Tuchkov
ну да, возможно, но лично мне кажется, что разделе...

Ещё приходится renderStubDefaultSlot в тестах включать)

Ivan-Osamu Автор вопроса
Artyom Tuchkov
а зачем вообще бэм в фреймворках с компонентным по...

мне вот тоже это интересно, что ждёт работодатель, когда пишет про БЭМ в вакансии

Ivan Osamu
мне вот тоже это интересно, что ждёт работодатель,...

мне кажется, что бэм тянется просто как богатое наследие с давних времен, но в современной разработке ему уже практически нет места, потому что от него проблем в 5 раз больше, чем пользы

Ivan Osamu
мне вот тоже это интересно, что ждёт работодатель,...

а так, наверное, ждут, что ты просто хотя бы знаешь, что это такое

Ivan-Osamu Автор вопроса
Artyom Tuchkov
а так, наверное, ждут, что ты просто хотя бы знаеш...

просто одна компания вообще после общения с HR'ом выдаёт ссылку на сайт с вопросами и там типо сверстай плеер по БЭМ, опиши свой опыт по создание фреймворков, напиши реализацию MVC и так далее

Ivan Osamu
просто одна компания вообще после общения с HR'ом ...

ну верстка по бэм, возможно, актуальна, если ты планируешь заниматься версткой вне фреймворков, но это выглядит как что-то странное почти в 2022 году а так похоже на какие-то старые бородатые задания, которые придуманы N лет назад

Artyom Tuchkov
мне кажется, что бэм тянется просто как богатое на...

А какие проблемы, кроме "длинных именования"?

Grigorii K. Shartsev
А какие проблемы, кроме "длинных именования"?

их на самом деле много, на мой взгляд, но часть из них все-таки субъективна: - абсолютно стремный и дурацкий нейминг с кучей визуального мусора в виде —__ - грязный шаблон из-за раздутых названий, который сложнее читать, часто из-за этих длинных названий нужно переносить атрибуты на новую строку - шанс на опечатку выше среднего - section-button__search и section-button___search на глаз едва ли отличаются, а вот сколько там черточек - не скажу - абсолютно отвратительная идея с конкатенацией названий через &, которая напрочь ломает поиск по стилям, поощряет глубокую вложенность и делает чтение стилей головной болью, а без конкатенции мы получаем кучу копипасты производных классов - в современных фреймворках есть свои способы изоляции стилей между компонентами, куда более удобные, реализованные на уровне софта, а не на ментальном уровне - если говорить про Vue, то гарантия изолированности ровно на том же уровне, что и при scoped без бэм - стили с рутовых нод протекут, если воображение разных разработчиков вдруг совпало по какой-то причине

Ivan-Osamu Автор вопроса
Grigorii K. Shartsev
А какие проблемы, кроме "длинных именования"?

на первой работе был проект, в котором все стили сделали глобальными и писали по БЭМ. Как результат: менеджер видит, что на одной странице съехал один инпут. Ставит задачу его поставить на место. Его сдвигают. Менеджер все проверяет. Этот инпут на месте, но другой инпут на другой странице съехал на столько же в другую сторону. И такая хрень продолжалась несколько дней, пока не поставили задачу всё отрефакторить. Когда эту задачу кинули мне, я был уже четвёртый исполнитель. Что делали первые 2, хз. Но третий день промучался, психанул и уволился. Надо было последовать его примеру)

Ivan Osamu
на первой работе был проект, в котором все стили с...

Это не проблема наличия БЭМ, а обычные проблемы, возможно, с его же использованием. Если бы вместо блока был компонент при такой вёрстке, была бы та же самая проблема

Ivan-Osamu Автор вопроса
Grigorii K. Shartsev
Это не проблема наличия БЭМ, а обычные проблемы, в...

там проблема в глобальных стилях, без которых БЭК не имеет смысла. и разделение на независимые компоненты с изолированными стилями решило проблему

Ivan Osamu
там проблема в глобальных стилях, без которых БЭК ...

При правильном описании стилей по БЭМ стили блока не должны влиять на его расположение. Если он съезжает, там что-то лишнее, что не относится к блоку, а относится к использованию блока в конкретном месте. При замене блока на компонент с такими же стилями, но короткими классами, осталась ты та же самая проблема. БЭМ вообще не про изолирование в первую очередь. И не про именование

Ivan-Osamu Автор вопроса
Grigorii K. Shartsev
При правильном описании стилей по БЭМ стили блока ...

ок. покажи пример хорошей реализации БЭВ в связке со Vue

Artyom Tuchkov
их на самом деле много, на мой взгляд, но часть из...

С именованием - понятно. Использование & - вообще не часть БЭМ, лишь возможный инструмент в реализации. Описание бэм во введении их доки: БЭМ (Блок, Элемент, Модификатор) — компонентный подход к веб-разработке. В его основе лежит принцип разделения интерфейса на независимые блоки. Он позволяет легко и быстро разрабатывать интерфейсы любой сложности и повторно использовать существующий код, избегая «Copy-Paste». Ни слова про изоляцию. Изоляция - это побочный эффект, основная задача - это компонентный подход. UI компонент может делаться блоком, может компонентом. То, что для изоляции есть scoped стили или css-модули не делает проблемой использования блоков.

Grigorii K. Shartsev
С именованием - понятно. Использование & - вообще...

80% проблем людей в том, что они смешивают блоки и позиционирование.

Grigorii K. Shartsev
С именованием - понятно. Использование & - вообще...

Да, можно всё-всё сделать Vue компонентами. Тогда, конечно, БЭМ не нужен, так как задачу компонентного подхода целиком и полностью берёт на себя Vue. Это же заставляет делать супер глупые компоненты уровне <div class="container"><slot /></div> Я не говорю, что так делать нельзя, но я понимаю тех, кому не нравится иметь десятки таких компонент, где от Vue только возможность упаковать шаблон с классом "в новый тег".

Grigorii K. Shartsev
Да, можно всё-всё сделать Vue компонентами. Тогда,...

а мне наоборот так больше понравилось делать, чем глобальные утилитарные классы заводить

Grigorii K. Shartsev
Ну утилитные классы тоже не про бэм

в данном случае container можно назвать как утилитарным классом, так и бэм-блоком, суть не поменяется

Anton Permyakov
а мне наоборот так больше понравилось делать, чем ...

Мне тоже больше нравится делать компонентами все виды блоков, я просто понимаю тех, кому не нравится заводить отдельный модуль с Vue компоненто ради статичного дива с классом

Ivan-Osamu Автор вопроса
Grigorii K. Shartsev
С именованием - понятно. Использование & - вообще...

вот ты сам сказал, что "основная задача - это компонентный подход". А что тогда по твоему Vue делает?

Ivan-Osamu Автор вопроса
Grigorii K. Shartsev
А где противоречие?

если 2 вещи решают одну и ту же задачу, от одной надо избавиться

Grigorii K. Shartsev
С именованием - понятно. Использование & - вообще...

По поводу & - это действительно не часть бэм, но это есть почти в каждом проекте, где используется бэм, поэтому я упомянул про это в любом случае, если не использовать конкатенацию, то мы получаем копипасту производных именований, что тоже затрудняет чтение, хоть и в меньшей степени уже >Изоляция - это побочный эффект, основная задача - это компонентный подход. мне кажется, что в реальности используют бэм исключительно ради изоляции и избежания коллизий но если опираться на описание, то мне кажется логичным, что “компонентный подход на коленке из 2005-ых” не нужен в фреймворке с настоящим компонентным подходом >То, что для изоляции есть scoped стили или css-модули не делает проблемой использования блоков. а для чего может понадобиться, например, использовать бэм вместе с css-модулями?) назначение бэм и его цели, безусловно, понятны, но непонятно, зачем он нужен в современной разработке

Grigorii K. Shartsev
Да, можно всё-всё сделать Vue компонентами. Тогда,...

ответ на свой последний вопрос я увидел в твоем сообщении, так что он уже не актуален)

Anton Permyakov
а мне наоборот так больше понравилось делать, чем ...

поддержу, да и такой подход легче читается и воспринимается, что ли, все равно мыслим в рамках компонентного подхода

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
в JclConsole объявлено так: function CtrlHandler(CtrlType: DWORD): BOOL; stdcall; - где ваше объявление с stdcall? у вас на картинке нет stdcall
Karagy
8
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Карта сайта