Некоторые приятные инструменты разработки Ruby on Rails

Тестирование:
Разработка любого проекта всегда подразумевает под самой некоторые вопросы. Кто и как будет проводить тестирование проекта? Не всегда есть желание и средства на создание целых огромных отделов тестирования, к тому же есть резон сделать это в автоматическом режиме. По сравнению с другими фреймворками в Ruby on Rails имеются отличные средства тестирования в автоматическом режиме. Другие фреймворки и языки программирования вообще без тестирования. Есть, конечно, некоторые сторонние разработки, которые позволяют организовать тестирование проекта на PHP в таком виде, но они не имеют возможности ставиться «из коробки», поэтому их использование сводится к нулю. В проекте на RoR код проекта пишется до того момента, пока под данный код не будут написаны тесты. Ruby on Rails идеология предполагает первоначальное использование совершенно уникальных методов Behavior Driven Development (BDD) или Test Driven Development (TDD).

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

Ruby on Rails в стандартной комплектации имеет стандартные средства кеширования данных. На начальном этапе предлагаются инструменты, которые позволяют реализовать кеширование на проекте. При помощи них вы сможете кешировать блоки кода или же целые страницы. Также сможете кешировать и результаты запросов модели ActiveRecord. Существует несколько возможностей кеширования, например, при помощи memcached. Для реализации на Ruby on Rails кеширования, в 95% случаев вам будет не нужно ничего кроме штатных и готовых решений.

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

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

Роутинг (ЧПУ или красивые урлы)
Довольно часто во многих проектах, написанных на PHP, вы можете наблюдать картину, в которой адрес конкретной страницы непонятен и огромен. В RoR существует возможность гибкой настройки роутинга, названия главных разделов, вид адресов. Вы без особого труда сможете изменить адреса в каком-либо одном месте, что позволит изменить адрес во всем проекте. Сообщество разработчиков на RoR часто использует идеологию под названием REST. Адреса страниц, разработанных на Ruby on Rails всегда красивы, понятные, просты и отлично понимаются поисковыми системами.

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

Миграции и работа с БД:
В большинстве случаев проблемой многих проектов, которые разрабатываются на PHP, является невозможность инструментами и средствами осуществлять контроль структуры БД. Зачастую в структуру  вносятся изменение ручным способом и напрямую в базу. В связи с этим нередки появления различных непонятных таблиц и полей, которые уже давно ушли на последний план. В RoR имеются штатные средства и инструменты работы с БД – «миграции». Структура БД хранится в коде веб-приложения и загружает конфигурацию прямо из проекта. Ваша структура всегда будет в репозитории, каждое изменения структуры будет отправляться в специальный документ и иметь привязку к конкретному коммиту в репозиторий.

Безопасность:
По умолчанию RoR-проекты достаточно заточены в плане безопасности. XSS атаки, а также SQL инъекции исключены при использовании средств и инструментов Ruby on Rails. Все параметры выводятся на экран по умолчанию. Если вы не укажите обратную опцию, то переменные, которые выводятся в шаблонах, также будут экранированы. У разработчиков просто не получится допустить ошибки, угрожающие безопасности проекта (разумеется, не без исключений).

Деплой:

В среде RoR имеется большое количество приятных и удобных инструментов. Одними из таких являются средства, применяющиеся в процессе деплоя. Например, при использовании Capistrano, выход новейшей версии проекта на сервер (или несколько серверов) может потребовать лишь одной команды, которую необходимо набрать в консоли: cap deploy.