Николай!

Это зависит от ваших целей и ситуации. Если все ваши друзья программируют на Питоне, учите Джанго: будет кому ревьюить ваш код, быстрее освоите. Если в компании вашей мечты используют Node.js, учите Node.js и Express.js: будет проще устроиться. Но если факторов, склоняющих вас в пользу других фреймворков, нет, я советую начинать с Руби‑на‑рельсах. И у меня на это пять причин.

Рельсы научат базовым вещам

У Руби‑на‑рельсах отличная официальная документация, которая за руку проводит по основным компонентам фреймворка. Разобравшись с нею, вы получите базовые знания об устройстве веб‑фреймворков: как устроен роутинг, как работает веб, зачем фреймворку база данных и как менять её устройство, как использовать шаблоны, как интернационализировать и локализовывать приложения. Если придётся сменить фреймворк, знания пригодятся: и в Рельсах, и в Джанго роутинг — та же функция для сопоставления запроса и кода, который его должен обработать.

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

Рельсы научат писать хороший код

В Руби и Рельсах есть всё, чтобы научиться писать аккуратный, поддерживаемый и последовательный код. Начните со стайлгайдов:

Чтобы научиться определять, какой код плох, почему и как это исправлять, изучите Ruby Science и POODR:

Правила, принципы и методы, описанные в этих книгах, фундаментальны. Разберётесь с ними в Руби и Рельсах, будете применять и в других языках программирования.

В Рельсах всё есть

Гем — архив с библиотекой, набором функций, из которых, как из кирпичиков, можно сложить то, что нужно

В Рельсах есть всё, что нужно, чтобы быстро собрать и запустить любое веб‑приложение: ОРМ, миграции, кеширование, отправка и получение почты, вебсокеты, интернационализация, отложенные задачи, АПИ для работы с облачными хранилищами. Если чего‑то нет, для этого есть гемы: нужна аутентификация через почту и соцсети с восстановлением пароля, берите Devise; нужен деплой и откат версий одной кнопкой, берите Capistrano; нужна админка, берите ActiveAdmin.

Гем — архив с библиотекой, набором функций, из которых, как из кирпичиков, можно сложить то, что нужно

Какую бы задачу вы не выбрали для первого проекта на Рельсах, вы быстро получите работающий прототип. Будет, что показать на собеседовании.

Современный фронтенд

См. Webpacker

Рельсы дружат с современной экосистемой фронтенда и поддерживают все модные фреймворки. Если решите заодно попробовать и фронтенд, берите React, Vue или Svelte — всё отлично работает в Рельсах. Не придётся держать фронтенд и бэкенд отдельно. А если решите переписать бэкенд на Го, без проблем извлечёте фронтенд из проекта.

См. Webpacker

Программистское счастье

Это самая субъективная причина начинать программировать на Руби и Рельсах.

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

Руби очень лаконичный и выразительный язык. Ясно выражать на нём собственные мысли мне проще, чем на других языках программирования. Например, чтобы вывести на экран 5 раз «Ура» в Яваскрипте придётся использовать цикл for или forEach:

for (var i = 0; i < 5; i++) {
  console.log('Ура')
}
​
[1, 2, 3, 4, 5].forEach(() => console.log('Ура'))

А в Руби — написать, как думаю, 5 times print «Ура»:

5.times { print "Ура" }

Когда я начинал изучать Руби и Рельсы, они настолько понравились мне, что я, как в детстве, не мог дождаться утра, чтобы поскорее запрограммировать на Рельсах что‑нибудь ещё. И до сих пор, просыпаясь по утрам, я счастлив, что сегодня попрограммирую на Руби.

Надеюсь, и вас Руби и Рельсы сделают счастливым.

P. S. Это был совет о веб‑разработке. Хотите знать всё о коде, тестах, фронтенд‑разработке, цеэсэсе, яваскрипте, рельсах и джейде? Присылайте вопросы.

Веб‑разработка
Отправить
Поделиться
Запинить

Рекомендуем другие советы