Size: a a a

2020 December 27

Prikolist Начрэл... in БЭМ
Вадим
ничего не пойму - зашел в @bem-react/classnames на gitHub - там версия 1.3.9
откуда у меня в package.json могла появится 1.4.9 и такие же проблемы с другими пакетами!!

похоже на то что у меня проект корраптнулся 😳

извините за кипиш (
Если выяснишь в чём была проблема, расскажи потом
источник

В

Вадим in БЭМ
Prikolist Начрэл
Если выяснишь в чём была проблема, расскажи потом
оказалось меня разыграли коллеги - знали что буду в выходные работать и в новую версию нашего пакета засунули postinstall в котором хаотично поменяли 3 на 4 у разных пакетов и полдня потратил на выяснение причин 😳
источник

Prikolist Начрэл... in БЭМ
Вадим
оказалось меня разыграли коллеги - знали что буду в выходные работать и в новую версию нашего пакета засунули postinstall в котором хаотично поменяли 3 на 4 у разных пакетов и полдня потратил на выяснение причин 😳
Понятно. Делаем вывод вместе, в таких ситуациях, первым делом нужно проверить git историю package.json файла. Если там нет необоснованных не прокомментированных коммитов с изменением версий, нужно посмотреть в репо зависимостей и только если там версии выше чем в NPM, имеет смысл бить тревогу и искать альтернативы npm реестру.

Значит можно продолжать быть на чилле
источник

В

Вадим in БЭМ
я же даже не мог предположить что кто-то умышленно может руками поменять версии зависимостей поэтому свято верил что версии реальные и не исследовал их
источник

Prikolist Начрэл... in БЭМ
Их можно изменить самому, случайно, в процессе рефакторинга, например.

Главное что мы составили план по поиску сути подобных проблем. Мб в будущем это сэкономит кому-то час жизни и хорошее настроение
источник
2020 December 29

В

Вадим in БЭМ
привет!

подскажите чем обусловлено разделение на 2 типа компонентов: десктоп и мобильные?
как и где определяется какую версию использовать?
если это касается только типов обработчиков нажатий и части css то почему нельзя было сделать универсальный компонент?
источник

Р

Роман in БЭМ
Вадим
привет!

подскажите чем обусловлено разделение на 2 типа компонентов: десктоп и мобильные?
как и где определяется какую версию использовать?
если это касается только типов обработчиков нажатий и части css то почему нельзя было сделать универсальный компонент?
Как минимум чтобы минимизировать бандл по платформам. В более-менее крупных продуктах разработку мобильной версии ведёт отдельная команда — универсальный компонент будет сложнее поддерживать.
источник

В

Вадим in БЭМ
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы?
не только типом обработчиков и css?
как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп?
где происходит выбор какой компонент использовать?
источник

Р

Роман in БЭМ
Вадим
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы?
не только типом обработчиков и css?
как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп?
где происходит выбор какой компонент использовать?
Неважно, на сколько они отличаются. Сегодня не отличаются, завтра — будут. Платформы — лишь частный случай уровней переопределения. А где происходит выбор, БЭМ не решает — где угодно, как удобно.
источник

В

Вадим in БЭМ
Пока не очень понятно - если делать компонент responsive - тогда мобила или десктоп - нет разницы
Не понятна на чем основываются границы между ними и почему только 2 вида а не 3?
источник

Р

Роман in БЭМ
Вадим
Пока не очень понятно - если делать компонент responsive - тогда мобила или десктоп - нет разницы
Не понятна на чем основываются границы между ними и почему только 2 вида а не 3?
А кто сказал, что только два вида? Типов и Уровней переопределения может быть сколько угодно.
источник

В

Вадим in БЭМ
Ага меня просто сбили с толку алиасы компонентов в примерах типа DesktopButton
Там по всей видимости подключался css для отображения на десктопах!?
источник

Р

Роман in БЭМ
Вадим
Ага меня просто сбили с толку алиасы компонентов в примерах типа DesktopButton
Там по всей видимости подключался css для отображения на десктопах!?
Да, в yandex-ui реализованы только уровни переопределения по платформам и только два, но ограничений нет.
источник

Prikolist Начрэл... in БЭМ
Вадим
т.е. функционально или внешне компоненты сильно отличаются в зависимости от платформы?
не только типом обработчиков и css?
как быть на гибридных платформах которые умеют и пальцами и указателем и размеры экранов еще не десктоп?
где происходит выбор какой компонент использовать?
Есть очень сильно отличающиеся по функционалу. Например Select. На мобилках он нативный.

Есть компоненты вообще не отличающиеся
источник

Prikolist Начрэл... in БЭМ
Определяет какую версию отдать, например, сервер, по юзер агенту. Или клиент по фича детекту. Как сказали выше, это может делать кто угодно, суть в том что есть возможность разделения, если она нужна. Если не нужна, везде можно сувать десктоп версию или какую-нибудь common, которая может быть в том числе просто алиасом desktop или чем угодно ещё
источник

Prikolist Начрэл... in БЭМ
А разделение мега удобно для уточнения. Выделяешь базовый компонент, а потом описываешь его частные случаи для конкретных платформ. Например, кнопка на десктопе должна иметь обводку при фокусе, потому что люди так привыкли при навигации с клавиатуры. На смартфоне это не нужно. Вот и уточняешь для десктоп версии такое CSS правило. Или как в случае с Select'ом, собираешь бандл с другими HOC'ами
источник

В

Вадим in БЭМ
Ага, прокрутив Сансары круг вернулись к исходным вопросам 😊

очевидно что ответ "используйте где угодно и как угодно варианты компонентов" - не ответ ибо либо в окончательный бандл войдут все компонент обоих переопределений либо вариант, что все компоненты будут по одиночке динамически грузится - что еще хуже.

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

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

В

Вадим in БЭМ
взять к примеру те же интерактивные доски в школах
источник

Prikolist Начрэл... in БЭМ
Собираются и отдаются разные бандлы, не один. По юзерагенту отдавать - нормальная практика. Так работает даже ютуб
источник

Р

Роман in БЭМ
Вадим
взять к примеру те же интерактивные доски в школах
А в чём проблема собрать отдельный бандл под эти самые интерактивные доски?
источник