Иногда заказчикам бывает интересно, что там будет — «под капотом» их сайта, и они спрашивают нас: «А на какой системе вы разрабатываете сайты?». И тогда нам приходится несколько минут рассказывать о том, что наши программисты используют Ruby on Rails (RoR), что это фреймворк, чем он отличается от CMS и почему отлично подходит для интернет-проектов.
Повторите эту процедуру десять раз и вам тоже захочется написать статью, чтобы на очередной вопрос просто дать ссылку.
Итак,
Ruby — динамический язык программирования с упором на простоту и продуктивность. Он обладает удобным синтаксисом, который приятно читать и легко писать. За это его и любят программисты.
Ruby on Rails — фреймворк, написанный на языке программирования Ruby, то есть программное обеспечение, облегчающее разработку и объединение разных компонентов проекта (например, авторизация пользователей или каталог статей в этом блоге).
Фреймворк, в отличие от CMS (системы управления контентом), которую может развернуть и настроить даже не-программист, требует проектирования и разработки квалифицированными специалистами. Но зато на нём проще и быстрее создавать проекты, которые отличаются своим функционалом от полностью типового сайта. А в студии и агентства редко приходят за полностью типовыми сайтами — для этого есть студенты и дешевые фрилансеры.
Преимущества
Основным преимуществом языка программирования Ruby и фреймворка Ruby on Rails является скорость разработки. На практике скорость разработки проектов на RoR выше на 30-40 процентов по отношению к любому другому языку программирования или фреймворку. Такой прирост скорости разработки объясняется обширным набором готовых к работе штатных инструментов RoR, возможностью использовать готовые решения других разработчиков, ну и, конечно, удобством программирования на Ruby.
Кроме того, в отличие от других фреймворков, в составе RoR есть отличные средства автоматизированного тестирования, что ускоряет переход проекта от стадии «программа написана» к стадии «программа работает без ошибок». И поверьте на слово, зачастую именно этот переход отнимает больше всего времени при реализации практически любого проекта.
Так же следует отметить, что Ruby on Rails обеспечивает лучшую безопасность проекта. При использовании инструментов RoR исключены SQL-инъекции и XSS-атаки, все входные параметры экранируется по умолчанию, выводимые переменные в шаблонах также экранируются. У разработчика просто нет шансов допустить ошибку безопасности (только если он не намеренно сам «выстрелил себе в ногу»).
Ограничения
Разработчиков на Ruby on Rails меньше, чем разработчиков на PHP и его фреймворках, так как выше порог входа и обычно программист приходит к Ruby уже после нескольких лет PHP. Но при этом стоит помнить, что хороших разработчиков одинаково мало во всех технологиях.
В Ruby on Rails мало дешевых разработчиков из-за отсутствия низкоквалифицированных программистов, которые бы использовали эту технологию. Новички тренируются на чем-то попроще. Хотя я не думаю, что вы хотели бы, чтобы ваш проект стал для кого-то «тренировочным».
Заблуждения и мифы о RoR
Некоторые разработчики недостаточно хорошо знакомые с Ruby on Rails почему-то считают, что интернет-проекты, написанные на нем, плохо масштабируются. В пример чаще всего приводят всем известный Twitter, который в свое время отказался от RoR по каким-то своим внутренним причинам.
Но посмотрите на Kickstarter, Groupon или Basecamp — все эти проекты написаны на Rails и у них нет никаких проблем с масштабированием. В любом случае, проблемы производительности любого проекта, — это не проблемы неверного выбора платформы или языка программирования. Чаще всего, это проблемы вызваны выбором ошибочной архитектуры проекта, кешированием данных или оптимизацией БД.
Для каких проектов Ruby on Rails подходит лучше всего
Так что если вам требуется разработка или поддержка и развитие интернет-проекта на Ruby on Rails, то это к нам. А благодаря порядку и структурированности кода на RoR мы так же легко можем взяться за техническую поддержку и решение срочных технических проблем вашего проекта на Ruby on Rails, даже если он был разработан не в нашем агентстве.