Эта статья нацелена на новичков. Для тех, кто хочет изучить Ruby on Rails в ближайшее время. И получать хорошую зарплату (программисты на Ruby on Rails имеют большие оклады). Профессионалы все это знают уже давно.
Я познакомился с фреймворком Ruby on Rails после Codeigniter, Laravel, Django. Все эти инструменты хороши и дают много чего полезного. Например если вы работаете в веб студии то PHP вам скорее всего нужен позарез. А если вы работаете в Дата Сайенс то нужен Python. Иначе говоря вам будет проще изучить фреймворк зная язык.
Тоже самое можно сказать про Javascript. Если вы работаете с ним то вам проще будет изучить фреймворк на Node js. Например специалисту про фронтенду который уже знает js проще изучить Next js или Express js чем изучать новый язык и фреймворк.
Мне приходится на работе иметь дело с PHP и JS. А математические вычисления для себя делаю в Python. Кто в курсе то на пайтон находить экстремумы функции намного проще, чем в других языках. Если, конечно же, не считать сугубо математические языки (программы) программирования. Вроде Mathematica, Maple.
Но при этом сложные сайты я все же люблю писать на Ruby on Rails! И не хочу переходить на другой фреймворк. По причинам которые укажу ниже.
Высокая скорость разработки
Самое важное преимущество Ruby on Rails это скорость разработки. Конечно же, все зависит от человека. От его вкусов. Но тем не менее многие говорят, что на этом фреймворке можно быстро писать сайты. Быстрее, чем на многих других. И это правда! В Ruby on Rails все сделано для быстрого кодинга.
Большая экосистема плагинов
Есть много разного рода плагинов на все случаи жизни. На Ruby плагины принято называть гемами. И их на Ruby очень много. Начиная от Devise для авторизации и заканчивая полноценными системами вроде Spree Commerce (движок для создания интернет магазинов) и Discourse (для создания форумов). Причем у Discourse почти сорок тысяч звезд на Github.com. А у Devise более двадцати тысяч.
Еще нужно отметить. Что форумы на Дискорсе встречаются очень часто. Например официальный форум Docker:
Те, кто долго работал с Дискорсом, могут на этом фото узнать фирменный дизайн его кнопок. Или тупо нажать на «просмотр кода».
Еще один пример официальный форум Cloudflare:
Или форум браузера Mozilla Firefox:
Минимальный код
В ВордПрессе написано — Code is Poetry! Тоже самое можно сказать и про Рейлс и про язык программирования Ruby на котором он написан. Здесь все минимально. Нет ничего лишнего. Например, код в контроллере может выглядеть вот так:
Как видно из примера здесь нет разного рода длинных неймспейсов, импортов и так далее. Которые есть в других фреймворках.
Читабельный код
На Ruby on Rails весь код читается очень легко. Это неплохо для новичков. Например User.all дает все данные пользователей. А User.new нужен для создания новой записи. Вот примерный код создания пользователя:
@girl = Girl.new
@girl.name = "Jane Anderson"
@girl.year = 19
@girl.save
В первой строке создали переменную на создание записи в таблице Girls. Во второй строке добавили имя, в третьей добавили возраст. А в четвертой строке сохранили эту запись в Базу Данных.
Даже если вы не программист. И никогда не кодили, то чисто логический сможете понять код. Это очень просто!
Или код If Else:
if @year >= 18
puts "Ты уже взрослый!"
else
puts "Еще пацан!"
end
Как видно, здесь все очень просто. Если знаете на базовом уровне английский, то вперед.
Красивый и мощный Ruby
Фреймворк Рейлс написан на языке Ruby. Он является высокоуровневым. То есть писать на нем можно очень быстро. Вы можете изучить язык Ruby за двадцать минут - https://www.ruby-lang.org/ru/documentation/quickstart/. Конечно же, не весь язык. Но начала уж точно.
Это очень лаконичный и понятный язык программирования, как пишут те, кто знаком с ним. Нацеленный на эстетику. Красоту.
Например, вот код для создания массива (списка) и его сортировки:
@list = [1, 4, 55, 23, 12, 7]
@list.sort
Теперь этот массив будет таков:
[1, 4, 7, 12, 23, 55]
Он отсортировал его по порядку! Легко, да?
Есть замечательные уроки по языку Ruby - https://www.tutorialspoint.com/ruby/index.htm
Также этот язык можно протестировать онлайн. Просто наберите в поиске Ruby Online.
Легкая установка
Обычно люди пишут код сайта у себя на компьютере. Где есть специальное окружение. Где установлены нужные программы и языки программирования. А потом его закачивают на хостинг.
Есть языки программирования, которые требуют особых условии для установки: знания консоли, определенных требований по ресурсам хостинга. Это сама по себе отдельная профессия.
Установка же фреймворка Ruby on Rails примерно такая же, как установка обычной CMS:
На хостинг панели Plesk нужно закачать файлы на хостинг. Потом нажать на «Установку комплекта» (для установки гемов):
И все! Сайт будет работать.
Конечно же еще есть настройка Базы Данных (по умолчанию в Ruby on Rails стоит База Данных SQLlite, которая не требует установки) вроде MySQL или PostgreSQL. Она подключается также как на обычной CMS. Вписываете в файл имя базы, имя пользователя и пароль.
Причем все это делается на обычных Shared хостингах. То есть на самых дешёвых тарифах. Есть еще другая очень популярная панель хостинга. Тоже очень старая. Это cPanel. Там установка такая же.
Есть еще специализированные хостинги. Где есть установка в один клик. Которые помогут начинающим. Особо хочу в этом плане отметить гиганта Digital Ocean (и конечно же https://www.heroku.com/). Они не только предоставляют услуги хостинга. Но также публикуют много полезных статей по IT — https://www.digitalocean.com/community/tutorials
Что делать если нет ноутбука?
Иногда бывает что человек находится в другом городе. Или у него просто нет денег на покупку ноутбука или компьютера. А писать код хочется. Может и просто хочется заработать денег. Для этого есть онлайн платформы где можно писать код.
Здесь хочу порекомендовать сервис — https://replit.com/. Где можно за пару кликов установить фреймворк Ruby on Rails и попробовать его в деле. Там же можно и писать код. Думаю, если вы студент и у вас нет своего компьютера, то данный сервис поможет вам. С его помощью можно писать сайты хоть в интернет кафе.
Большое количество обучающих ресурсов
Есть очень большое количество обучающих курсов и сайтов. Хочу отдельно отметить вот этот - https://www.tutorialspoint.com/ruby-on-rails/index.htm. Здесь все по пальцам расписали. Если вы новичок, то сможете за пару дней изучить весь материал. Он не большой, но содержит все самое нужное для старта: обзор структуры фреймворка, его папки, что и где находится, где писать код, как добавлять гемы и так далее. Новичок сразу сможет прокачать свои скилы.
Есть еще старый - http://railscasts.com/. А также есть и много видео на Ютубе. Кроме этого есть - https://gorails.com/.
И конечно же легендарная книга от Michael Hartl - https://www.learnenough.com/ruby-on-rails-7th-edition! Которую хвалят многие.
Ruby on Rails мертв?
Есть такая больная тема, называется «кто‑то мертв»! Есть те, которые говорят, что Go убил Java. Или дни WordPress сочтены. Что Laravel такой беспонтовый. Что PHP уже умер. И конечно же, есть и те, которые говорят Ruby is Dead!
Но как говорится, собака лает, а караван идет! Есть очень большое количество хейтеров, которые сливают свой негатив на тот или иной язык а также фреймворк. Не нравится PHP — пиши на другом языке. Зачем его хаять? У каждого инструмента своя ниша. Своя специфика.
Например, в мире CMS язык программирования PHP король и королева. Никто в этой нише даже и близко к ней не подступился. И есть очень много как вакансии так и заказов на фрилансе. Чем хаять, лучше изучи и получай деньги!
А Java очень популярна среди банковского и финансового сектора. Есть очень большое количество вакансии среди таких фирм.
Мы должны быть благодарны тем, кто делает что-то новое. Ведь создание и поддержание языка программирования и фреймворка дело сложное. А люди делают это бесплатно! Причем создают такие специалисты, которые могли бы вместо этого работать в компаниях размера с Майкрософт и получать миллионы в месяц. Не рублей конечно же.
Вон есть те, кто даже за деньги не делают ничего. Что вообще-то должны делать. Принимали присягу. Клялись. Показывали, какие они пушистые. А потом, получив что нужно, начали говорить что они думают. И оказалось это таким дебилизмом.
По поводу востребованности: самым главным параметром обычно является зарплата. Если платят хорошо, значит, ценят. Ну так по крайней мере обстоит дело у руководителей. Никто не будет платить много тем специалистам, которые не умеют делать что-то ценное (если конечно же, человека не взяли по блату или по другим причинам).
В этом плане Ruby on Rails «впереди планеты». Вы можете в этом убедиться, посмотрев на разные сайты по поиску работы. Например, как здесь:
А еще есть масса стартапов. Масса разного рода сайтов где рубисты найдут себе работу.
Ruby on Rails идеальное средство для стартапов
Разработка стартапа дело очень сложное. Порой приходится менять все на лету и по много раз. Это как угодить капризному клиенту. Который сперва говорит мне желтую кнопку. Ок, вот желтая. Такая? Да нет, другой желтый! Какой? Вот такой (показывает на оранжевый).
Сделали оранжевым. А он говорит, а давайте попробуем красный! И так до окончания фильма (бюджета). Иногда без хеппи энда.
И в таких вот сложных системах хорошо было бы иметь достаточно гибкий. Достаточно функциональный инструмент для быстрого внесения поправок.
Ruby on Rails здесь царь и король! Потому что многое он делает за вас. Например самое скучное дело в сложных сайтах это CRUD. Конечно же можно было бы использовать готовые админки. Например тот же Active Admin на Ruby. Но просто иногда нужно еще и доп функционал. Например после добавления статьи чтобы отправлялось письмо на почту. Или чтобы была сделана проверка автора по специальным способом.
Здесь очень часто приходит на помощь скаффолд, который есть в этом фреймворке из коробки. Просто в консоли пишем примерно вот такую команду:
rails g scaffold article title:string text:text author:number
И у вас сразу же создается таблица Articles, а также интерфейс для внесения туда данных. Причем код который для этого генерируется получается очень простым. И изменяемым.
Если бюджет не большой или времени по зарез по скаффолд вам поможет сделать все быстро.
Ruby on Rails выдерживает 5000 уников в сутки на VPS за 5$
Есть много разговор про то, что этот фреймворк достаточно прожорлив. И расходы на хостинг будут космическими! Что такой же сайт на другом языке будет съедать ресурсы хостинга в разы меньше.
Ну это такой субъективный взгляд. В реальности же обычные доски объявления или подобные сайты могут выдержать много тысяч уников в день даже на обычных хостингах. Например, мой математический сайт для школьников - https://tendey.kz/ расположен на обычном Shared хостинге. И спокойно выдерживает несколько тысяч уников в день.
Есть еще много разных сайтов, которые я сделал на заказ. И почти все они спокойно работают даже на обычных хостингах. Может иногда и требуется VPS, который стоит примерно от 5$ в месяц в том же Digital Ocean.
Это ведь не много! Конечно же, есть сайты с большой посещаемостью. Но и здесь все ок. Тот же Github.com или Shopify.com имеют миллиардные посещения в месяц:
,И ничего, не умерли. Оба сделаны на Ruby on Rails. Вообще, основным звеном, который съедает ресурсы хостинга, является База Данных. Вот если бы кто-то сделал ее более быстрой, было бы больше толка.
На этом хотел бы остановиться. Главное молодым — это начать кодить и побыстрей находить свой инструмент. Нишу. Не ходить и щелкать клювом. А стараться и учиться. Слушать старших по стажу и ловить все на лету.
Прощу прощения за грамматические ошибки и сложные для восприятия предложения (я в основном разговариваю и пишу на казахском).