2.3Kпросмотров
47.9%от подписчиков
5 марта 2026 г.
📷 ФотоScore: 2.5K
⚪️ Как мы упростили компонент из 272 миллионов комбинаций в дизайн-системе Яндекс 360 Привет! С вами Дима Мандельштам, мобильный разработчик core-команды Яндекс 360, и Лёша Карпенко, руководитель команды дизайн-системы. 🟰 В Яндекс 360 мы создаём 13 продуктов для личных дел, учёбы и работы. Поддерживать их консистентность помогает наша собственная дизайн-система «Орбита». Сегодня расскажем, как переосмыслили один из ключевых её компонентов — List-item. Раньше он был главной рабочей лошадкой: 12 параметров, 7 вариантов startSlot, более 272 миллионов теоретических комбинаций. Один паттерн применялся, чтобы оформлять списки для выбора значений, структурировать данные или создавать интерактивные элементы для навигации. Это приводило к путанице. Семантические роли смешались, интерфейсы стали менее консистентными. Мы выяснили: 80% реальных сценариев укладываются всего в 3–4 устойчивых паттерна. А разработанная нами метрика сложности API подтвердила перегруженность компонента. 🚺 Чтобы измерить сложность, создали два инструмента: 🟠 AST-анализатор. Он просканировал код продуктов и собрал статистику реального использования List-item 🟠 Метрику сложности API. Она рекурсивно оценила вес параметров с учётом типа, обязательности и вложенности Мы провели декомпозицию. Выделили ядро с общей логикой и создали набор специализированных компонентов-адаптеров: List-item-avatar, List-item-file, List-item-menu и других. В итоге средняя сложность снизилась в 3 раза. 🎲 В полной статье на Хабре разбираем: 🟠 Как метрика сложности API помогла объективно оценить нагрузку 🟠 Какие паттерны использования List-item оказались самыми частыми и как мы превратили их в отдельные компоненты
🟠 Что изменилось в нашем процессе проектирования в Figma Подписывайтесь: 💬 @Yandex4Mobile
📹 @YandexforMobile