42
Что делать, когда костыли уже не помогают? Грунтович Роман Туту.ру

Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

  • Upload
    ontico

  • View
    199

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Что делать, когда костыли уже не помогают?Грунтович РоманТуту.ру

Page 2: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

230 сотрудников

13.5 млн посетителей в месяц

2003год основания

600 тыспосетителей в день

О Туту.ру

8 млн строк кода

Page 3: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Предпосылки• Постоянно меняющиеся внешние факторы• Рост количества сотрудников

Page 4: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Проблемы• Дорогая поддержка системы• Снижение темпов развития

Page 5: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Летний поездОжидания бизнеса Реальность

Page 6: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Наследие full-stack разработки

Page 7: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Метрика качества кода

Page 8: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Нужно что-то менять!

Page 9: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

1. Переписываем последовательно модуль за модулем2. …3. Profit!

Первый подход

Page 10: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Проблемы этого подхода• Нужно больше ресурсов, чем предполагалось• Нет фокуса на конечной цели

Page 11: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Второй подход: реинжиниринг1. Делаем новую систему с нуля2. …3. Profit!

Page 12: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Требования к новой системе• Получить платформу для быстрого развития• Выдавать результаты поэтапно• Не навредить работающему продукту• Не навредить позициям в поисковиках• Сохранить прибыльность

Page 13: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Принципы новой платформы• Используется компонентный подход• Бэкенд отделен от фронтенда

Page 14: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

ES6, модули, классыВозможные решения: • TypeScript• babel

Page 15: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Архитектура приложений

Компонент

Page 16: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Архитектура приложений

Модель Компонент

Page 17: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Архитектура приложений

Модель

АдаптерКомпонент

Page 18: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Архитектура приложенийМодель

Адаптер

Компонент

Контроллер

Page 19: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

На чем писать компоненты?Варианты решений:• Angular• ReactJS• Vue.js• Ractive.js• Mithril

Page 20: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Критерии выбора• Порог входа• Быстродействие• Поддержка браузеров (IE8+)

Page 21: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 22: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

У нас есть JSX, зачем шаблонизатор?!• Отделение верстки от логики компонентов• Низкий порог входа для верстальщиков

Page 23: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

React-templates

Page 24: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Что делать с legacy?

Переписать нельзя оставить

Page 25: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 26: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Как не навредить seo• Не делать индексируемых страниц• Научиться рендерить индексируемые на сервере

Page 27: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Варианты для SSR• twig + twigJS• NodeJS• php V8Js

Page 28: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 29: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Этапы разработки

Page 30: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 31: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 32: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 33: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Цикл разработки

Аналитика

Page 34: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)
Page 35: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Цикл разработки

Аналитика Разработка

Page 36: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Цикл разработки

Аналитика

РазработкаТестирование

Page 37: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Цикл разработкиАналитика

Разработка

Тестирование

А/Б тестировани

е

Page 38: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Команда• 1 ПО• 2 бэкендера• 2 фронтендера• 1 тестировщик

• 1 ПО• 3 бэкендера• 4 фронтендера• 3 тестировщика

Page 39: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

ИтогиПолучили платформу для быстрого развитияРезультаты получаем поэтапноНе навредили работающему продуктуНе навредили позициям в поисковикахСохранили прибыльность

Page 40: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Схемы вагоновСталоБыло

дизайнер верстальщик разработчик дизайнер

Человеко-неделя 4 человеко-часа

25 схем 56 схем

Page 41: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Нам помогли:• Компонентный подход• Итеративность• Прагматичность• Стремление к цели

У нас была тактика и мы ее придерживались

Page 42: Что делать, когда костыли уже не помогают. Опыт tutu.ru / Роман Грунтович (tutu.ru)

Грунтович Роман[email protected]