Pull to refresh
6
0
Виталий Харисов @vithar

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

Send message

Мы пробовали. Очень сложно привести код к такому состоянию, особенно если используются библиотеки.

общий процесс разработки от проектирования до тестов

Это было.

аналитики на реальных пользователях

Вам это часто пригождается в вашей работе разработчиком интерфейсов?

паттерны интерфейсов, гайдлайны

Это шире, чем разработка, это проектирование. В ШРИ мы ставим целью научить, как эффективно именно вести разработку, как взаимодействовать в команде.

То, о чём вы пишете у нас есть в Мобилизации, она была в 2016 летом в Москве и будет в 2017.
А чему по вашему нужно учить разработчиков интерфейсов в Школе Разработки Интерфейсов?
button--positive, button--negative и button--neutral
В данном случае использовать булевы модификаторы плохо, потому что это даёт возможность добавить блоку все три эти модификатора одновременно.

Тут лучше использовать модификатор ключ-значение, потому что фактически может быть только один из этих модификаторов у конкретной кнопки, т.е. кнопка может быть или positive, или negative, или neutral.

Рассматривайте это как аналог атрибута type у input. Значение конкретного типа определяет каким именно будет этот input. Тут логика точно такая же.
Да: https://ru.bem.info/method/key-concepts/#Микс

И в FAQ поиск по «микс»: https://ru.bem.info/faq/
Вёрстку делает один человек, а HTML потом в ходе жизни проекта меняет другой. А тот, кто делал вёрстку, делает уже другой проект и привлекать его к подправлению того, что сломалось — долго.

БЭМ родился исходя именно из этих условий, из промышленного производства сервисов, когда нет ни возможности, ни необходимости подправлять что-то в стилях при изменении разметки. А так же из необходимости делать компоненты, которые потом используются в произвольных местах, иногда самым неожиданным образом.
Простите, но это вы мне пишете «Так ещё круче», а не я вам.

Я вам оппонирую, что мы уже все возможные варианты рассмотрели и даже использовали это в продакшене. Потом отказались от «извращений» в пользу простых классов и простой схемы именования.
Вложите между .menu и .item что-то ещё и оно сразу перестанет работать:

http://habrahabr.ru/post/270075/#comment_8641681
«Просто всё уже было»:
https://ru.bem.info/forum/-68/
БЭМ проще, непробиваемее, не только по css.

rscss это упрощённый вариант БЭМ, в котором введены дополнительные искусственные ограничения. Автору так нравится больше, вай бы и нот?
Например если есть .fancy-button, у которого внутри .fancy-button__label — не надо делать штуки типа ".my_panel .fancy-button__label { color: red }". Надо идти в fancy-button.css, и делать там модификатор fancy-button--important.
Лучше использовать миксы (https://ru.bem.info/method/definitions/#Микс), чем плодить модификаторы. В данном случае лучше сделать ".my-panel__button-label {color: red}" и использовать как «class='my-panel__button-label fancy-button__label'.»
А вот
".block .element {}" и ".other-block .element {}" хотя и имеют совпадающий класс element, но они разные и стили не пересекаются.
http://habrahabr.ru/post/270075/#comment_8641817

а в случае BEM было бы что-то вроде block__element--color-red и block__element--color-blue,
В случае БЭМ это было бы

    <div class="block">
        <div class="block__element">Красный цвет</div>
    </div>
    <div class="other-block">
        <div class="other-block__element">Синий цвет</div>
    </div>

.block__.element { color: red; }
.other-block__element { color: blue; }
banzalik правильно пишет, малейшее изменение разметки — и стили перестают работать, и надо опять переделывать.

Так работает всегда:

.main-menu__item_active { color: #007FFF; font-weight: bold; }
.dropdown-menu__item_active { color: #FF9000;  font-style: italic; }
С поправкой на то, что это именование классов для отладки, а по факту именование классов можно сделать любым, какой-нибудь другой фреймворк будет выдавать в сборке продакшна
«Какой-нибудь другой фреймворк» и БЭМ-классы может выдавать в таком же минимальном виде, разницы нет.
Судя по написанному — ровно тот же.
Мне важна не скорость, а пуленепробиваемость кода, чтобы он не ломался при изменениях на странице в неподходящий момент в неподходящем месте.

А как вы переверстаете? Как положено?
http://habrahabr.ru/post/270075/#comment_8640905
«Это все придумал Черчилль в восемнадцатом году»
CSS классы с общими именами (без конкретики) допустимы только на последнем уровне вложенности
Вот есть у вас компонента menu, а ней логично есть item. А рядом есть navigation, а в нм логично тоже есть item.

И есть CSS:

.menu .item {}
.nevigation .item {}

И всё прекрасно работает, пока в какой-то из дней (обычно в пятницу перед сдачей проекта заказчику) меню не понадобится вложить в navigation. И вот тут начинается самое интересное.
Нет, menu-list__link не должно становиться .menu-list__full-article-link.

В этом примере menu-list__link это ссылка внутри блока menu-list и она смешивается с full-article-link. Блок menu-list это какое-то меню, которое ничего не знает, что в него вкладывают, его семантика — быть меню и показывать всё, что в него положат.

Ну и secondary лучше задавать для full-article-link: .full-article-link_secondary (хотя предполагаю, что абстрактное меню может иметь в себе ссылки разных размеров (оставим за скобками зачем это нужно) и _size_small указывает как раз на это, что может быть ещё normal).

Information

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