Фреймворк Ruby on Rails
Ruby on Rails (RoR) — фреймворк, написанный на языке программирования Ruby, позволяющий разрабатывать надёжные и сопровождаемые веб‑приложения под высокие требования к скорости работы и устойчивости к нагрузкам.
Фреймворк Ruby on Rails использовался при создании таких популярных сайтов и приложений, как inSales, Shopify, Lenta.ru, Netflix, Basecamp, GitHub, Zendesk, Twitter, SoundCloud, Airbnb, Diaspora, Groupon, Dribbble, Bloomberg, Hulu, Kickstarter, Yellow Pages, Change.org, SlideShare, Upwork, 500px, Couchsurfing и многих других. Все эти проекты весьма известны и посещаемы, наверняка в этом списке вы встретили знакомые названия.
Rails — это многоуровневый веб‑фреймворк, основанный на концепции MVC и использующий лучшие практики в разработке:
- DRY — максимальное повторное использование кода, позволяющих минимизировать дублирование. Благодаря следованию этому принципу код становится значительно проще сопровождать и внесение изменений ускоряется.
- Convention over configuration — по умолчанию используются соглашения по конфигурации, явная спецификация требуется только в нестандартных случаях. Это позволяет быстрее и проще реализовывать стандартную функциональность, но при этом не блокируется возможность реализации и чего‑то необычного.
- Ориентация на автоматизированное тестирование. Фреймворк не только поощряет автоматизацию тестирования, но и имеет набор встроенных инструментов для этого. Наличие тестов и их автоматическое выполнение сокращает число ошибок в разрабатываемом ПО, а также значительно сокращает время, необходимое для внесения изменений в кодовую базу проекта.
Ruby on Rails написан на языке программирования Ruby, то есть ко фреймворку также применим набор принципов Ruby Way:
- Программирование, ориентированное на человека, а не на компьютер. Ruby создан для написания программ в первую очередь понятных человеку, а лишь затем — компьютеру. Любая работа с компьютером выполняется людьми и для людей, поэтому необходимо заботиться в первую очередь о затрачиваемых усилиях людей, а не об экономии нескольких байт памяти или тактов процессора. В современном мире вычислительные ресурсы значительно дешевле времени разработчиков, поэтому с точки зрения бизнеса этот подход тоже оправдан.
- «Принцип наименьшего удивления» — в эргономике этот принцип означает, что если назначение какого‑то элемента неясно, то его поведение должно быть наиболее ожидаемым со стороны пользователя. В переложении на программирование этот принцип звучит так: «Программа должна вести себя так, как ожидает программист». Ruby и Ruby on Rails следуют этому паттерну проектирования, что существенно экономит время и нервы разработчиков.
- «Просто, но не слишком просто» — краткость приветствуется, но не в ущерб понятности; то есть и избыточность допустима, если она оказывается удобной (например, логика программы может быть более понятной благодаря большей многословности).
- Простые строгие правила, выполнение которых не доходит до педантизма. Правила и соглашения очень полезны в разработке, так как написанный по правилам код проще и быстрее понимается другими людьми. При этом, в некоторых контекстах следование строгим универсальным правилам вполне может быть абсурдным. Язык Ruby и фреймворк Ruby on Rails содержат в себе много правил и соглашений, но при этом дают разработчикам возможность их нарушить, если разработчик сочтёт это оправданным.
Сейчас в веб‑разработке используется достаточно много фреймворков, но мы в качестве основного выбрали именно Ruby on Rails.
Этот выбор вполне осознанный и он основан на опыте работы с несколькими платформами. В частности, мы начинали с фреймворков Yii и Symfony, затем достаточно много работали с Laravel и Django — всё это хорошие фреймворки, но в наших кейсах Ruby on Rails оказался более оптимальным решением как по скорости и качеству разработки, так и по уровню дальнейшей сопровождаемости.