Пробовали писать тесты используя селекторы классов, по которым никак нельзя понять нужны ли они в тестах или нет (это вариант, который вы используете). Это очень часто приводило к тому, что при любом изменении кода компонента, который затрагивал его структуру элементов и/или названия классов, тест просто ломался. Проблема в этом подходе в том, что пока не будут запущены тесты, разработчик никак не может предугадать, внесет ли он какие-то существенные изменения в код, от которого зависят тесты. Поэтому мы решили явно добавлять тестовые классы/атрибуты. Если мне не изменяет память, тестировщики, которые также занимались написанием тестов, справлялись с задачей самостоятельно добавить тестовый класс/атрибут в нужное им место в коде => они никак не были ограничены. Если же вернуться к мысли о том, что тестировщик лучше всего тестирует тогда, когда не знает внутренней структуры кода и смотрит на всё как пользователь, то стоит тогда завязываться на роли и тексты, а не на классы или атрибуты.
Как направление для решения проблемы тестирования можно добавить разную генерацию классов, условно в dev убираем хеш, это должно решить часть проблем, по моему. Спасибо за интересный доклад, люблю, пока что не от чистого сердца, CSS-Modules и теперь знаю что нужно сделать чтобы полюбить его от чистого сердца. И хотел бы поделиться своим своим способом использования. Я использую bind встроенный в classnames, и тогда стили можно сократить с `styles.class` до `'class'`, так же удобно работать с пропсами прокидывая вместо {class: props} -> {props} или так же цеплять классы [red]. А стоит сие решение 2 строчками кода в файле и автоподстановкой (ищу решение как это можно исправить). Если вдруг решите, прошу поделиться)
Классный доклад. Я раньше не прикосался к css модулям, но за глаза не любил. И в начале доклада убедился что они мне не нравятся, но дальше понял что довольно интересная штука
Еще один из плюсов css модулей - в продакшене в качестве классов можно использовать вообще только укороченный хэш (например, 5 или 8 последних символов), что значительно сокращает размер бандла стилей.
На самом деле нет, так как зиповый размер на большом проекте будет ~ таким же. А на супер больших просто БЭМ классы и зип выиграет хэши, так как хэши вносят слишком много энтропии.
@@amangin С чего же это хэши вносят много энтропии? Они не будут меняться, где бы вы их не использовали повторно, при этом само название класса получается короче. А чем огромнее проект, тем больше вероятность наличия неповторяющихся классов, что уменьшает профит гзипа.
Спасибо за доклад. Я на моменте, когда прогнали дракона, был очень возмущен. Хотел выключить видео) Но продолжил и понял, что все не так уж плохо)) Не обижайте драконов, ведь чудовищ, как правило, взращивают сами жители городков.
что касается привязки по классам без хэшей, в случае коллизий всегда можно делать запрос не на весь документ, а внутри специфичного элемента, чтобы обойти эту коллизию Up: я про использование в тестах
Помнится мне у авто ру была какая то лажа с ивентами на кнопках переключения фото машин. У меня не с первого раза они накидывались приходилось перезагружать.
Зачем такое усложнение простых вещей? Что выигрывает команда которая использует CSS Modules на проекте? * просто когда докладчик постоянно извеняеться, за то, что кажеться диким, то тут явно что-то не то...
Спасибо вам! Доклад хорошо структурирован, наполнен понятными примерами и поэтому получился очень интересным)
Очень доступно и интересно объяснено. Спасибо за доклад!
Пробовали писать тесты используя селекторы классов, по которым никак нельзя понять нужны ли они в тестах или нет (это вариант, который вы используете). Это очень часто приводило к тому, что при любом изменении кода компонента, который затрагивал его структуру элементов и/или названия классов, тест просто ломался. Проблема в этом подходе в том, что пока не будут запущены тесты, разработчик никак не может предугадать, внесет ли он какие-то существенные изменения в код, от которого зависят тесты. Поэтому мы решили явно добавлять тестовые классы/атрибуты. Если мне не изменяет память, тестировщики, которые также занимались написанием тестов, справлялись с задачей самостоятельно добавить тестовый класс/атрибут в нужное им место в коде => они никак не были ограничены.
Если же вернуться к мысли о том, что тестировщик лучше всего тестирует тогда, когда не знает внутренней структуры кода и смотрит на всё как пользователь, то стоит тогда завязываться на роли и тексты, а не на классы или атрибуты.
Как направление для решения проблемы тестирования можно добавить разную генерацию классов, условно в dev убираем хеш, это должно решить часть проблем, по моему.
Спасибо за интересный доклад, люблю, пока что не от чистого сердца, CSS-Modules и теперь знаю что нужно сделать чтобы полюбить его от чистого сердца.
И хотел бы поделиться своим своим способом использования. Я использую bind встроенный в classnames, и тогда стили можно сократить с `styles.class` до `'class'`, так же удобно работать с пропсами прокидывая вместо {class: props} -> {props} или так же цеплять классы [red]. А стоит сие решение 2 строчками кода в файле и автоподстановкой (ищу решение как это можно исправить).
Если вдруг решите, прошу поделиться)
Классный доклад. Я раньше не прикосался к css модулям, но за глаза не любил. И в начале доклада убедился что они мне не нравятся, но дальше понял что довольно интересная штука
Спасибо, Алина! Доклад очень полезный!
Спасибо, очень хороший доклад!
Еще один из плюсов css модулей - в продакшене в качестве классов можно использовать вообще только укороченный хэш (например, 5 или 8 последних символов), что значительно сокращает размер бандла стилей.
На самом деле нет, так как зиповый размер на большом проекте будет ~ таким же. А на супер больших просто БЭМ классы и зип выиграет хэши, так как хэши вносят слишком много энтропии.
@@amangin С чего же это хэши вносят много энтропии? Они не будут меняться, где бы вы их не использовали повторно, при этом само название класса получается короче. А чем огромнее проект, тем больше вероятность наличия неповторяющихся классов, что уменьшает профит гзипа.
Хороша Маша))) Один минус - от сути доклада отвлекает)))
Спасибо за доклад.
Я на моменте, когда прогнали дракона, был очень возмущен. Хотел выключить видео) Но продолжил и понял, что все не так уж плохо))
Не обижайте драконов, ведь чудовищ, как правило, взращивают сами жители городков.
Как установить фреймворк БЭМ?
С торрента скачать
🤣🤣🤣
что касается привязки по классам без хэшей, в случае коллизий всегда можно делать запрос не на весь документ, а внутри специфичного элемента, чтобы обойти эту коллизию
Up: я про использование в тестах
И на пустом месте раздуть и усложнить css
@@youtubehhhh да, сорян, я имел в виду применительно к тестам. И только там, где лезут проблемы.
Обязательно сделайте тёмную тему!
Спасибо
Помнится мне у авто ру была какая то лажа с ивентами на кнопках переключения фото машин. У меня не с первого раза они накидывались приходилось перезагружать.
Как Яндекс учился использовать css модули, но так и не смог...
так вот кто интерфейсы на яндексе делает!😁
Зачем такое усложнение простых вещей? Что выигрывает команда которая использует CSS Modules на проекте? * просто когда докладчик постоянно извеняеться, за то, что кажеться диким, то тут явно что-то не то...
Какое усложнение? Вы доклад целиком прослушали? Это наоборот упрощение. И забыл спросить, что вы предлагаете вместо них?
Чёт так уже к ним привык,что даже не представляю,как без них-то? На последних работах только они и были)