Ruby on Rails поможет вам сэкономить кучу времени при написании кода. Пишите меньше, достигая тех же целей, которых достигли бы при помощи других языков.
От Java к Ruby
Программирование на Ruby действительно экономит мне очень много времени! Я могу уделять больше времени внедрению различных методов и классов, а не писать десятки строчек кода, при этом достигая такого же результата. Раньше я думал, что Java изменила всё, но перейдя на Ruby, я был очень впечатлен.
В течение года я программировал на Java, в качестве back-end разработчика, и думаю, что все, кто пользовался Java поймут, о чем я говорю.
Скажем, вы хотите создать конечную точку, которая возвращает zip-файл. Алгоритм, который будет архивировать данные в zip-файл может легко занять сотни строчек кода… но мы знаем, что придется написать ещё больше.
А что, если я скажу вам, что вы сможете сделать то же самое всего лишь несколькими десятками строчек кода?
О Ruby
Ruby — это объектно-ориентированный, интерпретируемый и динамический язык. На нём написано множество приложений, таких как Github и Twitter.
Давайте поговорим о достоинствах Ruby!
Ruby требует меньше кода
В Ruby есть множество различных методов, позволяющих вам писать гораздо меньше кода в более читабельном виде (по крайней мере, мне так кажется).
Например, у вас есть массив, вы хотите увеличить все его элементы на два, а затем вернуть их в обратном порядке. В Java код бы выглядел примерно вот так (с использованием List interface):
А в Ruby код выглядел бы вот так:
array = Array.new(5,2)
array.map { |x| x + 2 }.reverse
Как видно, кода тут гораздо меньше, и вам не нужно вводить никаких классов в начале файла!
Динамическая типизация
После того, как вы увидели разницу в коде, который нужно писать в Java и Ruby, возможно, у вас появился вопрос: почему я не устанавливал тип переменной в примере для Ruby. Ещё одним достоинством Ruby является то, что тип всех переменных задается динамически!
Если вы пишете алгоритм, содержащий два параметра, вам не нужно задавать их тип, и вы вместо этого можете сосредоточиться на логике. В результате, вы не перегружаете алгоритмы (на самом деле, вы и не сможете этого сделать, даже если попытаетесь). Это делает алгоритмы более четкими, и, опять же, чем меньше кода, тем он яснее.
Также в Ruby уже есть множество “родных” алгоритмов, которые позволяют ускорить процесс программирования. Я очень часто пользуюсь конвертированием Hash в Array, а затем в JSON. В Ruby оно проводится всего в одну строчку!
О Rails
Rails — это самый популярный фреймворк для Ruby. Он предоставляет такой же набор функций, как и Spring для Java. Хотел бы поделиться некоторыми его фишками, которые мне больше всего понравились.
Все Rest Points в одном месте
Одной из таких фишек является то, что в Rails есть файл, в котором могу объявить все конечные точки. Я всегда могу написать$ rake routes, чтобы их увидеть. Это особенно полезно в крупных приложениях, когда вам нужно увидеть все REST-сервисы.
Также польза нахождения всех REST-точек в одном месте в том, что вы можете разделить свои конечные точки на группы! Если у вас есть модель пользователя, вы можете установить каждому из них путевое имя, и каждая конечная точка будет автоматически брать их id в качестве параметра.
Вам не придется устанавливать одинаковые конечные точки и разными параметрами или как-то конкретно их задавать. В Rails, по умолчанию, вы можете передавать конечной точке любые параметры, а затем выбирать те, что вы хотите использовать в управлении.
def user_params
params.require(:user).permit(:name, :surname, :birth_date, :avatar)
end
Установка базы данных при помощи Rails
Все миграции записываются внутри приложения, поэтому установка вашей базы данных на разные устройства — дело всего ОДНОЙ команды:$ bundle rake db:setup. Это означает, что для установки и использования базы данных вам не нужен никакой внешний клиент.
Вы можете подумать, что даже если вы создадите и перенесёте базу данных на другие устройства, она будет пуста. Но Rails и для этого предлагает решение.
В вашем приложении на Rails есть файл под названием seeds.rb, где вы можете указать все способы входа для разных моделей. Для каждой модели понадобится всего несколько строчек кода.
Команда $ bundle rake db:setupсовершает три действия:
- Создаёт базу данных, если её нет.
- Учитывает миграции.
- Заполняет базу данными из seed-файла.
Чистый код — только логика в сущностных классах
Чистый код в классе Active Record состоит только из алгоритмов, которые вы хотите применить, а не из атрибутов (для них у вас есть схема).
В фреймворке Hibernate для Java вам придется прописать все атрибуты с аннотациями к ним, потом вам нужно прописать метод записи для атрибутов, которые хотите изменить. И уже это займёт у вас много строчек кода.
В Rails вам не придется писать ни одной строчки! Вся ваша схема базы данных хранится в файле schema.rb, который генерируется автоматически при миграции. В классе, который представляет вашу программную сущность, вам не нужно прописывать никаких сеттеров и атрибутов. Когда вам нужно создать атрибут, вам просто стоит написать Model.attribute, и всё!
С самого начала вы сможете больше сосредоточиться на программировании и применении алгоритмов.
Очень лёгкое исправление ошибок
На рисунке выше показана одна из крутейших фишек Rails — исправление ошибок. Byebug — очень популярный gem в Rails, для его использования вам нужно добавить всего одну строчку в ваш gemfile. После этого вы в любой момент можете написатьbyebug, и исполнение кода остановится на строчке, где эта команда вызвана (как при точке прерывания).
Терминал с вашим сервером или тестами остановит работу на этом моменте, и вы сможете обратиться ко всем методам, которые доступны в этой части кода. Чтобы обратиться к ним, нужно просто написать его имя, и вы сможете увидеть, какое значение он возвращает.
Действительно интересно то, что вы можете обращаться к методам объектов из вашей базы данных и видеть их состояние.
Конечно же, это ускоряет процесс исправления ошибок! Вы можете просто использовать переменные, как обычно это делаете! А ещё мне очень нравится, что Byebug можно использовать при тестировании кода.
Вывод
С Ruby on Rails вы можете больше сосредоточиться на применении алгоритмов и логик, вместо написания сотен строк повторяющегося кода. Также он предоставляет такие инструменты, как динамическая типизация и лёгкое исправление ошибок, которые очень ускоряют процесс разработки.
Если вы хотите разрабатывать веб-приложения, вам обязательно стоит написать небольшое приложение на Rails, чтобы понять, как это работает. Даже если вы всё ещё предпочитаете использовать старые технологии, никогда не помешает расширить свои знания!
Читайте нас в телеграмме и vk
Перевод статьи Krzysztof Kopydłowski: Ruby on Rails = Gamechanger