Рефакторим и...получаем удовольствие
DESCRIPTION
Доклад Наташи Чиликиной, руководителя разработки php/Bitrix на конференции CMS Conference. Подробности о рефакторинге очень большого интернет-магазина.TRANSCRIPT
Рефакторим и…получаем удовольствие!
Наталья Чиликинаруководитель отдела php/bitrix-разработки
ADV / web-engineering co.
ADV?
Одна из крупнейших отечественных компаний на рынке разработки и развития интернет-решений с 1997 года
Платформы:1С-BitrixMS SharePoint
Счастье
…
• Рефакторинг – работа программиста в режиме «ВСЕ ПЛОХО!!!»
Как надо?
Как было?
Что на БД?
Сравним?
• Измененное ядро CMS 1C-Битрикс
Беспорядочный код – наследство целого ряда подрядчиков со своими подходами
Отсутствие регулярных обновлений и патчей
Некорректная настройка сервера
Устаревшая архитектура проекта, рассчитанная на гораздо меньшую нагрузку
Почему?
Обновляем 1С-Битрикс
Оптимизируем серверные мощности
Анализируем код на предмет узких мест
Удаляем устаревшие файлы, данные, приводим код к единому формату
Модифицируем архитектуру, так чтобы можно было наращивать нагрузку
Как исправляем?
• Через 6 месяцев…
Loadimpact.com
Еще кое-какие тесты
244 800 пользователей в час / 40 секунд
280 000 пользователей в час / 2 секунды
Еще кое-какие тесты 2
244 800 пользователей в час / 28 секунд
280 000 пользователей в час / 1,6 секунды
16
Что мы сделали?
• Прокэшировали все, что можно
• Убрали дубли кода
• Ввели проверки входных данных
• Ввели дополнительные индексы в БД
• Убрали лишние индексы из БД
• Удалили неиспользуемую информацию и ее
обработку
• Денормализовали БД
16
17
Что получили?
• Сократили количество запросов к БД без кэша
с 3500 до 150
• Сократили количество запросов к БД с кэшом с
350 до 15
• Увеличили читабельность кода
• Сократили время обработки кода
• Дали запас проекту для наращивания нагрузки
17
18
Зачем это нужно?
• Чтобы все получили удовольствие!
• Клиент• Посетители• Разработчики
18
19
Итоги
• 1С-Битрикс - система, идеальная для сайтов с
высокой нагрузкой (и 280 000/час - не предел)
• Рефакторинг - процесс, необходимый в
жизненном цикле проекта
• Come to the dark side (we have cookies)
19
20
Спасибо!
Вопросы?
Контактная информация:Чиликина Натальяруководитель отдела php/bitrix-программирования
ADV/web-engineering. co