Рефакторим и...получаем удовольствие

20
Рефакторим и… получаем удовольствие! Наталья Чиликина руководитель отдела php/bitrix-разработки ADV / web-engineering co.

Upload: advweb-engineering

Post on 15-Jun-2015

246 views

Category:

Technology


0 download

DESCRIPTION

Доклад Наташи Чиликиной, руководителя разработки php/Bitrix на конференции CMS Conference. Подробности о рефакторинге очень большого интернет-магазина.

TRANSCRIPT

Page 1: Рефакторим и...получаем удовольствие

Рефакторим и…получаем удовольствие!

Наталья Чиликинаруководитель отдела php/bitrix-разработки

ADV / web-engineering co.

Page 2: Рефакторим и...получаем удовольствие

ADV?

Одна из крупнейших отечественных компаний на рынке разработки и развития интернет-решений с 1997 года

Платформы:1С-BitrixMS SharePoint

Page 3: Рефакторим и...получаем удовольствие

Счастье

Page 4: Рефакторим и...получаем удовольствие
Page 5: Рефакторим и...получаем удовольствие

• Рефакторинг – работа программиста в режиме «ВСЕ ПЛОХО!!!»

Page 6: Рефакторим и...получаем удовольствие

Как надо?

Page 7: Рефакторим и...получаем удовольствие

Как было?

Page 8: Рефакторим и...получаем удовольствие

Что на БД?

Page 9: Рефакторим и...получаем удовольствие

Сравним?

Page 10: Рефакторим и...получаем удовольствие

• Измененное ядро CMS 1C-Битрикс

Беспорядочный код – наследство целого ряда подрядчиков со своими подходами

Отсутствие регулярных обновлений и патчей

Некорректная настройка сервера

Устаревшая архитектура проекта, рассчитанная на гораздо меньшую нагрузку

Почему?

Page 11: Рефакторим и...получаем удовольствие

Обновляем 1С-Битрикс

Оптимизируем серверные мощности

Анализируем код на предмет узких мест

Удаляем устаревшие файлы, данные, приводим код к единому формату

Модифицируем архитектуру, так чтобы можно было наращивать нагрузку

Как исправляем?

Page 12: Рефакторим и...получаем удовольствие

• Через 6 месяцев…

Page 13: Рефакторим и...получаем удовольствие

Loadimpact.com

Page 14: Рефакторим и...получаем удовольствие

Еще кое-какие тесты

244 800 пользователей в час / 40 секунд

280 000 пользователей в час / 2 секунды

Page 15: Рефакторим и...получаем удовольствие

Еще кое-какие тесты 2

244 800 пользователей в час / 28 секунд

280 000 пользователей в час / 1,6 секунды

Page 16: Рефакторим и...получаем удовольствие

16

Что мы сделали?

• Прокэшировали все, что можно

• Убрали дубли кода

• Ввели проверки входных данных

• Ввели дополнительные индексы в БД

• Убрали лишние индексы из БД

• Удалили неиспользуемую информацию и ее

обработку

• Денормализовали БД

16

Page 17: Рефакторим и...получаем удовольствие

17

Что получили?

• Сократили количество запросов к БД без кэша

с 3500 до 150

• Сократили количество запросов к БД с кэшом с

350 до 15

• Увеличили читабельность кода

• Сократили время обработки кода

• Дали запас проекту для наращивания нагрузки

17

Page 18: Рефакторим и...получаем удовольствие

18

Зачем это нужно?

• Чтобы все получили удовольствие!

• Клиент• Посетители• Разработчики

18

Page 19: Рефакторим и...получаем удовольствие

19

Итоги

• 1С-Битрикс - система, идеальная для сайтов с

высокой нагрузкой (и 280 000/час - не предел)

• Рефакторинг - процесс, необходимый в

жизненном цикле проекта

• Come to the dark side (we have cookies)

19

Page 20: Рефакторим и...получаем удовольствие

20

Спасибо!

Вопросы?

Контактная информация:Чиликина Натальяруководитель отдела php/bitrix-программирования

ADV/web-engineering. co

[email protected]