6 уроков, извлеченные из модернизации приложения на Rails.

6 уроков, извлеченные из модернизации приложения на Rails.

Coding


Недавно мне было поручено обновить наше приложение на Ruby on Rails: моя цель состояла в том, чтобы переместить две основные версии вверх со средним шагом на минорную версию (и обновление ОС сервера, которое даже не планировалось!).

Это был невероятный опыт, и я многому у него научился. Вот некоторые выводы, которыми я могу поделиться:


Пишите тесты

В этом проекте есть надежный набор для тестирования. Он не имеет полного покрытия - даже близко нет! - но вся основная функциональность имеет тесты.

Это оказалось очень полезным во время процесса обновления: очень часто я переводил свое приложение в «запущенное» состояние, а позже узнавал, что несколько тестов были сломаны.

Без тестов эти проблемы были бы обнаружены только во время контроля качества или, что еще хуже, при производстве. Ой!


Держите ваши gems в актуальном состоянии

Это много работы, я знаю. Любое приложение на Ruby on Rails будет иметь довольно длинный Gemfile.

Но поверьте мне, это очень хорошая идея периодически проверять наличие обновлений в ваших текущих gems: это очень помогает, когда необходимо обновить фреймворк. Это один урок, который я буду реализовывать отныне.


Прочтите примечания к обновлению

Когда выйдет новая версия, ознакомьтесь с примечаниями к обновлению, даже если у вас нет планов немедленного обновления.

Это будет держать вас в курсе того, что нового и что уходит. Вы можете планировать заранее и начинать решать мелкие подготовительные задачи перед обновлением.


Удалить устаревшие предупреждения

В связи с предыдущими пунктами активная проверка предупреждений об устаревании и рефакторинг кода перед полным обновлением окупятся в долгосрочной перспективе. Предупреждения об устаревании - это предварительный просмотр того, что будет происходить в следующей версии, и с ними гораздо лучше работать отдельно от самого обновления.


Частое обновление

Там не так много всего. Просто обновляйтесь часто. Не ждите, пока фреймворк сам обновиться, чтобы поработать над ним.

Обратите внимание: Я понимаю, что модернизация проекта связана со многими ограничениями, и я также понимаю, почему проект на работе так сильно отстает. Тем не менее, насколько это возможно, не откладывайте обновление!


Сделайте полный регрессионный тест

После крупных обновлений, подобных тем, которые я только что описал, убедитесь, что ваша кодовая база пройдет полный регрессионный тест.

Опять же, это сложно, и организация, в которой вы работаете, может не располагать ресурсами (например, выделенным отделом контроля качества) или временем для его полной проверки, но, насколько это возможно, не забудьте подчеркнуть важность и бороться за полное регрессионный тест перед отправкой новой версии в производство.


Заключение

Выделите время, чтобы разобраться с техническим долгом. Это так же важно, как разработка новых функций. И я даже не касался угроз безопасности, связанных с запуском устаревшего приложения! Если времени и ресурсов мало, по крайней мере работайте над зависимостями проекта. Просто не откладывайте.


Источник

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

Report Page