6 уроков, извлеченные из модернизации приложения на Rails.
Coding
Недавно мне было поручено обновить наше приложение на Ruby on Rails: моя цель состояла в том, чтобы переместить две основные версии вверх со средним шагом на минорную версию (и обновление ОС сервера, которое даже не планировалось!).
Это был невероятный опыт, и я многому у него научился. Вот некоторые выводы, которыми я могу поделиться:
Пишите тесты
В этом проекте есть надежный набор для тестирования. Он не имеет полного покрытия - даже близко нет! - но вся основная функциональность имеет тесты.
Это оказалось очень полезным во время процесса обновления: очень часто я переводил свое приложение в «запущенное» состояние, а позже узнавал, что несколько тестов были сломаны.
Без тестов эти проблемы были бы обнаружены только во время контроля качества или, что еще хуже, при производстве. Ой!
Держите ваши gems в актуальном состоянии
Это много работы, я знаю. Любое приложение на Ruby on Rails будет иметь довольно длинный Gemfile.
Но поверьте мне, это очень хорошая идея периодически проверять наличие обновлений в ваших текущих gems: это очень помогает, когда необходимо обновить фреймворк. Это один урок, который я буду реализовывать отныне.
Прочтите примечания к обновлению
Когда выйдет новая версия, ознакомьтесь с примечаниями к обновлению, даже если у вас нет планов немедленного обновления.
Это будет держать вас в курсе того, что нового и что уходит. Вы можете планировать заранее и начинать решать мелкие подготовительные задачи перед обновлением.
Удалить устаревшие предупреждения
В связи с предыдущими пунктами активная проверка предупреждений об устаревании и рефакторинг кода перед полным обновлением окупятся в долгосрочной перспективе. Предупреждения об устаревании - это предварительный просмотр того, что будет происходить в следующей версии, и с ними гораздо лучше работать отдельно от самого обновления.
Частое обновление
Там не так много всего. Просто обновляйтесь часто. Не ждите, пока фреймворк сам обновиться, чтобы поработать над ним.
Обратите внимание: Я понимаю, что модернизация проекта связана со многими ограничениями, и я также понимаю, почему проект на работе так сильно отстает. Тем не менее, насколько это возможно, не откладывайте обновление!
Сделайте полный регрессионный тест
После крупных обновлений, подобных тем, которые я только что описал, убедитесь, что ваша кодовая база пройдет полный регрессионный тест.
Опять же, это сложно, и организация, в которой вы работаете, может не располагать ресурсами (например, выделенным отделом контроля качества) или временем для его полной проверки, но, насколько это возможно, не забудьте подчеркнуть важность и бороться за полное регрессионный тест перед отправкой новой версии в производство.
Заключение
Выделите время, чтобы разобраться с техническим долгом. Это так же важно, как разработка новых функций. И я даже не касался угроз безопасности, связанных с запуском устаревшего приложения! Если времени и ресурсов мало, по крайней мере работайте над зависимостями проекта. Просто не откладывайте.

Понравилась статья? Тогда поделитесь ссылкой с друзьями! Также не забывайте подписаться на наш канал и посетить наш чат