Что делать, когда костыли уже не помогают. Опыт tutu.ru /...

Post on 16-Apr-2017

199 Views

Category:

Engineering

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

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

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

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

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

О Туту.ру

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Компонент

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

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

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

Модель

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

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

Адаптер

Компонент

Контроллер

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

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

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

React-templates

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

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

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

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

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

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

Аналитика

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

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

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

Аналитика

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

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

Разработка

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

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

е

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

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

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

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

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

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

25 схем 56 схем

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

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

Грунтович Романgruntovich@tutu.ru

top related