Upgrade to Pro — share decks privately, control downloads, hide ads and more …

We Don't Know Who's Using Our App

We Don't Know Who's Using Our App

Kir Dergachev, Mos.Ru @ React Moscow Meetup 5
Dec 11, 2019, Gazprombank

Как переписать приложение, которые используется сотней команд, не поломав совместимость – как подготовиться к такому проекту и как не наступить на грабли, на которые наступили в Mos.Ru? Кир также поделится интересными решениями и расскажет, почему тестировщик – лучший друг программиста.

React Moscow

December 11, 2019
Tweet

More Decks by React Moscow

Other Decks in Programming

Transcript

  1. Кто мы и что делаем – Что такое mos.ru и

    из чего состоит? – Десятки команд: внешних и внутренних – Сотни проектов: старых и новых 2
  2. В чем трудность? – Затруднена коммуникация – Очень много людей

    – Медленные изменения – Один общий компонент – Невозможность статического рендера 3
  3. Не просто шапка и подвал – Аналитика и трекинг –

    Поиск – Чат – API самой навигации – Режимы и оформление – Авторизация и профиль 4
  4. Наследство – Порталу более 20 лет – Новый этап 5

    лет назад – MVP-фреймворк – Прибитая гвоздями интеграция 5
  5. Хочется взять и переписать – Дизайн 2.0 – Новая команда

    и амбиции – Желание затащить то, что умеешь – React – Redux, Reselect, Immutable, SC, etc 6
  6. Первый подход 2017 год идет, а мы: – Приносим весь

    свой опыт – Наваливаемся толпой – Выясняем ??? способов приготовить Redux – Применяем bruteforce-разработку – Благодарим терпеливых тестировщиков 7
  7. Последствия – Получаем технический долг – Пишем в разном стиле

    – Централизуем состояние – Генерируем высокий порог входа – Тратим время на борьбу со сложностью – Задумываемся 8
  8. Подход номер два 2019 год в котором: – Дизайнеры вручают

    дизайн 3.0 – Мы – самодостаточная команда – Фейсбук дарит миру свежий React и хуки – Острое желание сделать работу, а не код 9
  9. Думаем – А что если связанность состояния надумана? – Быть

    может не нужна централизация? – Почему локальное состояние это обязательно плохо? 10
  10. – Простой код для простого приложения – Быстрое вхождение новых

    людей в проект – Время для того чтобы заняться действительно важными вещами Получаем 13
  11. – Рендеринг навигации статически – Устранение дефектов совместимости – Доступность

    – Быстрый редизайн – Спокойствие – Новые проекты Действительно важные вещи 14
  12. – Кропотливый сбор требований – Анализ логов – Заглушки –

    Заботливые тестировщики Как решали проблемы с поддержкой API 16
  13. – Может просто @babel/polyfill? – Почему нет? – Поиск по

    логам – Загрузчик навигации Как решали проблемы с полифилами 17
  14. – Почему не свойство initial? IE – Почему не reset.css?

    – Антиресет.css – Бронебойные стили Как решали проблемы со стилями 18
  15. – Хочется быть круче – теряем свободу действий – Делать

    масштабные вещи – пропускаем их – Хочется золотой молоток, но мир меняется Долгая дорога к пониманию простых вещей 19
  16. – Освободить время для решения задач продукта – Для того,

    чтобы быть понятым – Было время точить инструмент и применять по назначению – Обрести спокойствие Для чего быть проще? 21