Любое веб-приложение со временем морально устаревает. Известное дело — технологии развиваются и диктуют новые требования к программному продукту. Здесь все понятно. Однако это вовсе не значит, что с обновлением приложений следует тянуть до победного конца и ждать, когда текущая версия превратится в музейный экспонат.
В то же время мы прекрасно знаем, что далеко не все проекты можно назвать безупречными с точки зрения написания кода, качества, красоты, тестирования и т.д. Из-за этого ответственным разработчикам зачастую приходится долго и упорно исправлять творчество предыдущей команды. Именно на таких проектах процесс обновления представляет наибольшую сложность. Одновременно подобные приложения чаще всего испытывают острую необходимость в обновлении. Как говорится: пришла беда — отворяй ворота.
Мы хотим поделиться собственным опытом обновления Ruby on Rails приложения. Тема довольно широкая, поэтому мы разобьем ее на несколько частей. В этой статье речь пойдет о причинах необходимости обновлений.
Зачем это нужно?
Соображения безопасности
Не ждите, пока одна из неисправленных уязвимостей создаст вам серьезные проблемы. Не стоит надеяться на удачу. И знайте, чем более устаревшую версию вы используете, тем более уязвимо ваше приложение. Обновления предотвращают исполнение стороннего кода и инъекции со стороны злоумышленников или смягчают их последствия. На эту тему написана очень интересная статья. Она датирована 2013 годом, однако актуальна и сегодня.
Далее мы предлагаем вашему вниманию наглядный список последствий, к которым приводит пренебрежительное отношение к обновлениям безопасности:
- Репутационные потери. Отношение к сервису и вам, как разработчику, изменится в худшую сторону. Даже не сомневайтесь.
- Временные потери. Устранение возникших проблем может растянуться на несколько дней или даже недель.
- Утрата контроля над разработкой. Отсутствие обновлений зачастую приводит к тому, что злоумышленники получают доступ к исходному коду приложения и всех используемых им сервисов.
- Юридические осложнения. При потере личных данных ваших клиентов, возможен и такой вариант. В некоторых странах законодательство предусматривает весьма строгие наказания за подобные эксцессы.
- Потеря клиентов. Вы можете запросто лишиться целевой аудитории. Подумайте сами — нужны ли пользователям небезопасные сервисы?
Повышение производительности
Каждая новая версия Ruby работает все быстрее. То же самое можно сказать и о фреймворке Ruby on Rails. Всякий раз, погружаясь в раздумья о необходимости обновления, учитывайте: требования к времени отклика приложений возрастают с каждым годом. Устаревшие технологии просто не в состоянии им соответствовать. Возникает справедливый вопрос: стоит ли стоять на пути прогресса? Да еще и во вред самому себе.
Исправление багов
Любой продукт в мире содержит баги и язык программирования не является исключением. Утечки памяти, исправление работы сборщика мусора — эти и множество других проблем разработчики решают с выпуском новых версий. Такие исправления невероятно полезны. Они повышают стабильность вашего приложения.
Новые гемы
Если вы об этом не знаете, мы подскажем: одним из важнейших элементов экосистемы Ruby on Rails являются гемы. С каждым днем их становится все больше, а часть из них решает действительно фундаментальные проблемы. Разработчики гемов всегда стремятся быть в тренде и стараются поддерживать совместимость своего кода с новыми версиями фреймворка. Не совершив обновление Ruby on Rails приложения, вы создаете разработчикам дополнительные сложности. А именно (зачастую) — обрекаете их на поиски уже найденного решения проблемы. Зачем тратить время на манипуляции с кодом, если можно просто обновиться?
Приведенный список схематичен. Каждый из перечисленных пунктов можно разбить еще на несколько частей. Однако мы не станем этого делать, иначе придется написать новую статью, а то и не одну. Более подробную информацию можно получить здесь:
Следующая часть будет посвящена проблемам, которые могут возникнуть при обновлении Ruby on Rails приложения. Не переключайтесь!