Рефакторинг длиною в жизнь: как бороться с легаси в критичном для бизнеса проекте на PHP

Backend
Зал №4

Тезисы

Последние несколько лет я пилю биллинг для Skyeng: от этой системы зависят судьбы и настроение десятков тысяч клиентов, тысяч преподавателей и сотрудников. При этом первая версия проекта, которая досталась нам в наследство, была клоном CRM — и мы должны были что-то c этим сделать «на ходу», не останавливая всю экосистему. Какие ошибки мы совершили — и как вы можете минимально застраховаться от подобного, в моем докладе.

  • «Доктор, у меня Yii 1-й, синхронная работа, слишком много знаний о логике соседних систем, 90% ненужных файлов, тысячи неиспользуемых строк кода», — как с этим жить и с чего начинать изменения.
  • Можно ли обойтись малой кровью: подключить Doctrina, сделать свой DI костыль и обертку над Yii, подтянуть New Relic (спойлер — расскажу, как мы случайно положили весь биллинг в процессе).
  • Какие сложности бывают, если вы пришли к тому, что старый код не поддерживаем и стали делать новую систему рядом: например, как год синхронизировать данные, которые все не сходятся, с помощью проксирующих слоев, эмуляторов и других костылей.
  • Про интересные ошибки (например, «ошибку 29 декабря») и решение случаев «вы знаете, мы вспомнили, что год назад...»
  • Почему мы остались на PHP (Symfony) и MySQL, не бежим на Docker (пока видим минусы, но со временем перейдем), сделали все с Rabbit и отдельными сервисами, отвечающими каждый за свою часть, и как проектируем версию системы 3.0.

Аудитория и уровень

Разработчики уровня мидл и выше, тимлиды. Язык и предпочитаемые фреймворки не важны.

Skyeng

Андрей Рыбников

Работаю удаленно их Хабаровска более 5 лет. Опыт работы 14 лет. Был программистом в ретейлинговой компании, затем работал банке программистом, экспертом аналитиком, затем писал интеграции с платежными системами и SDK в ABBYY LS, сейчас совершенствую биллинг Skyeng. К 50 мечтаю выйти на пенсию, сидеть на берегу теплого моря и писать бесплатно код для еще какого-нибудь хорошего проекта.

Работаю удаленно их Хабаровска более 5 лет. Опыт работы 14 лет. Был программистом в ретейлинговой компании, затем работал банке программистом, экспертом аналитиком, затем писал интеграции с платежными системами и SDK в ABBYY LS, сейчас совершенствую биллинг Skyeng. К 50 мечтаю выйти на пенсию, сидеть на берегу теплого моря и писать бесплатно код для еще какого-нибудь хорошего проекта.

Другие спикеры секции Backend: