Upload
ontico
View
199
Download
2
Embed Size (px)
Citation preview
Что делать, когда костыли уже не помогают?Грунтович РоманТуту.ру
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 схем
Нам помогли:• Компонентный подход• Итеративность• Прагматичность• Стремление к цели
У нас была тактика и мы ее придерживались
Грунтович Роман[email protected]