Oops... your message was not sent

Your message has been successfully sent

тематические истории, основанные на опыте компании JetRuby
Rails, Ruby

Обновление Ruby on Rails приложений. Часть 1: зачем это нужно

Любое веб-приложение со временем морально устаревает. Известное дело — технологии развиваются и диктуют новые требования к программному продукту. Здесь все понятно. Однако это вовсе не значит, что с обновлением приложений следует тянуть до победного конца и ждать, когда текущая версия превратится в музейный экспонат.

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

Мы хотим поделиться собственным опытом обновления Ruby on Rails приложения. Тема довольно широкая, поэтому мы разобьем ее на несколько частей. В этой статье речь пойдет о причинах необходимости обновлений.

Зачем это нужно?

Соображения безопасности

Не ждите, пока одна из неисправленных уязвимостей создаст вам серьезные проблемы. Не стоит надеяться на удачу. И знайте, чем более устаревшую версию вы используете, тем более уязвимо ваше приложение. Обновления предотвращают исполнение стороннего кода и инъекции со стороны злоумышленников или смягчают их последствия. На эту тему написана очень интересная статья. Она датирована 2013 годом, однако актуальна и сегодня.

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

  • Репутационные потери. Отношение к сервису и вам, как разработчику, изменится в худшую сторону. Даже не сомневайтесь.
  • Временные потери. Устранение возникших проблем может растянуться на несколько дней или даже недель.
  • Утрата контроля над разработкой. Отсутствие обновлений зачастую приводит к тому, что злоумышленники получают доступ к исходному коду приложения и всех используемых им сервисов.
  • Юридические осложнения. При потере личных данных ваших клиентов, возможен и такой вариант. В некоторых странах законодательство предусматривает весьма строгие наказания за подобные эксцессы.
  • Потеря клиентов. Вы можете запросто лишиться целевой аудитории. Подумайте сами — нужны ли пользователям небезопасные сервисы?

Повышение производительности

Каждая новая версия Ruby работает все быстрее. То же самое можно сказать и о фреймворке Ruby on Rails. Всякий раз, погружаясь в раздумья о необходимости обновления, учитывайте: требования к времени отклика приложений возрастают с каждым годом. Устаревшие технологии просто не в состоянии им соответствовать. Возникает справедливый вопрос: стоит ли стоять на пути прогресса? Да еще и во вред самому себе.

Исправление багов

Любой продукт в мире содержит баги и язык программирования не является исключением. Утечки памяти, исправление работы сборщика мусора — эти и множество других проблем разработчики решают с выпуском новых версий. Такие исправления невероятно полезны. Они повышают стабильность вашего приложения.

Новые гемы

Если вы об этом не знаете, мы подскажем: одним из важнейших элементов экосистемы Ruby on Rails являются гемы. С каждым днем их становится все больше, а часть из них решает действительно фундаментальные проблемы. Разработчики гемов всегда стремятся быть в тренде и стараются поддерживать совместимость своего кода с новыми версиями фреймворка. Не совершив обновление Ruby on Rails приложения, вы создаете разработчикам дополнительные сложности. А именно (зачастую) — обрекаете их на поиски уже найденного решения проблемы. Зачем тратить время на манипуляции с кодом, если можно просто обновиться?

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

Следующая часть будет посвящена проблемам, которые могут возникнуть при обновлении Ruby on Rails приложения. Не переключайтесь!

department
Статью подготовил
Отдел веб-разработки
Профессиональная разработка сайтов и приложений на стороне сервера и клиента. Проектирование дизайна, верстка страниц и техническое обслуживание реализованных проектов.
New Articles