Фреймворк ruby on rails что это

Обновлено: 28.06.2024

Многие мои друзья-разработчики лестно отзываются о Rails, но я не мог понять почему. Что такое Rails, и чем он отличается, собственно, от Ruby on Rails? Насколько он сложный в изучении? Это вообще язык программирования? Что мне нужно знать, перед тем как учить Ruby on Rails?

Вы готовы? Поехали!

13 фактов о Ruby on Rails – Что вам нужно знать?

1. Что такое Rails?

Rails это фреймворк (каркас) веб-приложений, который создан для написания кода на языке Ruby. Звучит запутанно, правда?

Давайте попробуем еще раз. Существует язык программирования Ruby. Писать на нем одно удовольствие. Кстати, человек, который создал его, говорил, что его главной целью было создание языка, который бы делал жизнь программистов лучше. Разве это не прекрасно?

Позвольте привести пример.

Если я захочу вывести текст на экран на PHP, мне нужно написать

С другой стороны, если мне нужно проделать то же самое на Ruby, мне нужно будет написать следующее:

puts “Hello World”

Никакой точки с запятой, и хотя «puts» может выглядеть немного «по-подростковому», мне эта команда кажется более логичной, чем «echo». Когда вы часами пишете код, такие мелкие детали играют БОЛЬШУЮ роль.

Единственной проблемой Ruby было то, что он не предназначен для создания веб-приложений. То есть, на нем у вас не получится, к примеру, создать сайт. Так было до появления Rails. Я не уверен, был ли Rails первым веб-фреймворком для Ruby, но он ОПРЕДЕЛЕННО стал самым популярным.

Задача Rails заключается в предоставлении платформы и возможностей, которые бы позволили создавать на Ruby приложения, в частности сайт. Пока что это звучит довольно размыто, поэтому попробую объяснить вот так. Если бы я написал

puts “Hello World”

то в HTML-документе, вы бы увидели весь текст целиком. Но я же хочу, чтобы вы видели ТОЛЬКО вот это:

Проще говоря, Rails позволяет это сделать. Но это далеко не все.

2. Что такое Ruby on Rails?

Ruby on Rails – это ПОЛНОЕ официальное название фреймворка Rails. Но в разговоре разработчики обычно не говорят первую часть, и просто называют его Rails. Поэтому, если вы хотите быть «в теме» и казаться технически подкованным, вы определенно должны называть его Rails, но при этом ПОМНИТЬ о том, что означает эта первая часть – «Ruby on».

3. Я слышал, что Rails отлично подходит новичкам. Почему?

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

Почему Rails настолько приятен в работе для новичков? Просто он очень стабильный и делает за вас ОГРОМНЫЙ пласт работы.

Для меня работать на Rails сродни вождению на грузовой фуре. Он невероятно мощный, вы только поглядите – вы ведете грузовик. Однако, хорошо ли вы знаете, как работает автомобиль, который вы ведете?

То, что Rails отвечает за такое больше количество задач, делая их за вас, позволит вам сразу же довольствоваться большим количеством классных преимуществ. Впрочем, иногда это может играть и против вас, если иногда вы будете обгонять самого себя и до конца не выучите основ, которые вы просто обязаны знать.

По этой причине очень важно изучать Ruby on Rails с нуля. И самое главное – вы должны убедиться в том, что вам действительно удобно работать с Ruby. Иначе вы просто на полпути выйдете из этой фуры и скажете себе: «Погодите, неужели я ехал на этой штуковине?».

4. Чем отличается Rails- от Ruby-разработчика?

Формально отличие заключается в том, что чисто «Ruby-разработчик» будет создавать приложения на Ruby, но не на Rails. Хотя такого, как правило, не бывает. Создавать веб-приложения на Ruby, используя другие фреймворки типа Sinatra, конечно, возможно, но я готов поспорить, что в 99% случаев вас вряд ли будут нанимать как программиста, знающего только Ruby. Поэтому нужно в любом случае изучать и Rails.

5. Насколько хорошо я должен знать Ruby? Что мне следует выучить, перед тем как начать обучение?

На этот счет существуют различные мнения, но, придерживаясь примера с большим грузовиком, я считаю, что вы должны чувствовать себя уверенно при работе с Ruby, чтобы углубиться в изучение Rails. Так же как, скажем, лучше сначала научиться ездить на велосипеде, перед тем как пересесть на легковой автомобиль, а потом уже думать о том, чтобы ездить на грузовике.

И вот еще что. Много времени при работе на Rails будет уходить на написание кода на Ruby. По этой причине нужно очень хорошо знать этот язык, особенно его основы: типы данных, методы, объектную ориентацию, отладку и многое другое. И необязательно быть при этом сверхопытным Ruby-программистом – просто вы должны чувствовать себя при работе с ним уверенно, как рыба в воде.

6. Зачем мне изучать Rails? Что делает его особенным?

Он изысканный и просто потрясающий. Что еще вам нужно знать? Когда Rails только появился, он стал реальным открытием и достижением дизайнерского искусства. С наилучшим практиками, которые были учтены при его создании, Rails практически направляет вас на путь к написанию превосходного кода, даже если вы этого не хотите (или не знаете, как это сделать).

7. Что можно создавать с помощью Rails?

А что вы хотите создать? Rails подходит для любых веб-приложений. Для наглядности ознакомьтесь с вот этими отличными примерами сайтов, созданных на Rails: Hulu, Airbnb и Basecamp.

8. Могу ли я создавать мобильные приложения на Rails?

И да, и нет. На Rails не получится создавать мобильные приложения, но на Rails вы определенно сможете создать веб-приложение и использовать его в качестве back-end для мобильного приложения.

Также есть инструмент RubyMotion, который позволяет очень просто создавать нативные приложения для iOS и Android на Ruby (но не Rails). То есть, вы не будете КОНКРЕТНО использовать Rails для создания мобильного приложения для App Store, но Rails определенно может стать важной составляющей вашего мобильного проекта. Надеюсь, теперь картина стала более понятной.

Rails – это один из самых востребованных навыков в настоящее время, поэтому выбор компаний, с которыми можно работать, довольно большой. Особенно Rails любят стартапы, например, такие как Zearn. Это начинающая неприбыльная образовательная ИТ-компания. Также можно выбрать более крупную компанию вроде Bloomberg и принимать участие в разработке сайтов и приложений, которыми пользуются миллионы пользователей. Фриланс тоже неплохой вариант для Rails-разработчиков. Будучи независимым, вы сможете сами выбирать, в каких проектах вы хотите поучаствовать: в небольших и короткосрочных или серьезных и долгосрочных.

10. Я попробовал другой язык программирования, но мне он не понравился. Стоит ли мне пробовать Rails?

Я снова хочу подчеркнуть – Rails это, собственно, не язык программирования, а фреймворк. Если вы задумывались над тем, есть ли вообще какой-то смысл для вас пытаться полюбить какой-либо язык программирования, я могу сказать лишь одно – Ruby это самый почитаемый и любимый среди пользователей язык программирования в мире. Поэтому я бы не стал списывать со счетов программирование до тех пор, пока вы не попробовали Ruby.

11. Может мне вместе Rails выучить JavaScript?

Вместо – нет. Дополнительно – НЕСОМНЕННО.

Rails-разработчику придется изучать JavaScript (Тут один из самых лучших курсов по JavaScript). Это не требование для изучения Rails, но это тот навык, который вам будет необходим по мере обучения.

Скажу честно, постепенно погружаясь в сферу технологий, вы начнете понимать, что вам придется обладать достаточно большим количеством навыков (по сути, это значит, что всем нужно стремиться к тому, чтобы быть Full-Stack-разработчиком). К счастью, по мере приобретения опыта вам будет проще изучать как новые языки, так и новые фреймворки.

Что касается того, что выбрать – JavaScript или Rails, – прямо скажу, что вы в любом случае не ошибетесь. Мне кажется, что Ruby гораздо проще учить, чем JavaScript. К тому же я знаю многих, кому JavaScript давался проще, после того как они сначала изучили Ruby. Но, как я уже сказал выше, вы точно не прогадаете, если изучите и то, и другое.

12. Сколько времени займет обучение?

Сколько времени в день вам придется потратить на обучение? Мне кажется, для хорошего понимания Rails нужно несколько месяцев специального обучения. Но, как и с любым другим навыком, чтобы стать профи в Rails, вам понадобятся десятки тысяч часов, поэтому лучше всего не терять времени и начать прямо сейчас.

На скорость обучения большое влияние будет оказывать ваш уровень знаний в области программирования в целом. Но если вы полный новичок, стоит попробовать начать с Ruby и Rails.

Рекомендую начать с самого лучшего курса по Ruby on Rails на сeгодняший день. Если вы не писали ни строчки кода в своей жизни, первым делом вам стоит пройти курс «HTML и CSS». К счастью, найти курсы по HTML и CSS довольно просто. После этого вам нужно будет изучить Ruby, Git и командную строку.

В рамках программы обучения вас, как правило, будут постепенно подводить к Rails, рассказывая о том, как работать с Sinatra и ActiveRecord. Это пока что вам ни о чем не говорит, но суть в том, что перед тем как везти ту «фуру», о которой я упоминал раньше, вам предстоит начать с простых курсов вождения на Rails.

Самое лучшее, что можно сделать при изучении, это создавать собственный проект, работать над чем-то и развиваться, понимать, что вы двигаетесь в правильном направлении, а также иметь хорошую поддержку! В процессе обучения у вас будут возникать миллионы мелких вопросов, и для достижения наилучшего результата важно, чтобы у вас был кто-то, кто мог бы помочь вам разобраться и что-то подсказать при возникновении сложностей.




В 1995 году, вышла версия Ruby 0.95 от Yukihiro Matsumoto, Ruby позиционирует себя, как чистый, объектно-ориентированный (OO), язык программирования общего назначения:

Я был фанатом языков и OO 15 лет, я всегда хотел работать с подлинным объектно-ориентированным, легким в использовании, скриптовым языком. Я долго искал, но так и не смог найти. Так что я решил создать свой собственный. — Y. Matsumoto

Затем в 2004, David Heinemeier Hansson выпустил первую версию Ruby on Rails фреймворка для создания веб-приложений, который он использовал, чтобы запустить приложение Basecamp, для организации работы своей команды. Затем, в 2005 году, было решено сделать Ruby on Rails доступным для всех желающих и распространять его, как фреймворк с открытым исходным кодом, после чего Apple выпустил его вместе с OS X Leopard в 2007.

Для краткости в этом туториале я буду называть Ruby on Rails - Rails; некоторые люди также зовут его RoR.

Rails используется многими веб-приложениями, с которыми вы скорее всего уже знакомы: GitHub, Shopify, Airbnb, Twitch, SoundCloud, Hulu, Zendesk, Square и Highrise. Однако, фреймворк критикуют за ограниченную масштабируемость, особенно заметно в случае с Twitter, которому пришлось перенести большинство своих сервисов на другие платформы. Связанно это с тем, что Twitter обладает высоким потоком трафика и в следствии чего испытывает сложности с масштабируемостью.

What is Ruby on Rails Sample Rails Apps with Juggler for fun
What is Ruby on Rails Sample Rails Apps with Juggler for fun
What is Ruby on Rails Sample Rails Apps with Juggler for fun

В этом туториале я отвечу на вопрос "Что такое Ruby on Rails?" и познакомлю вас с основами программирования используя данный фреймворк, чтобы помочь вам начать экспериментировать на нём.

Прежде чем начать, пожалуйста помните, что я принимаю участие в общении в комментариях ниже. Если у вас возник вопрос или тема, которую вы хотели бы предложить, не стесняйтесь написать комментарий или можете связаться со мной на Twitter @reifman.

Что такое Ruby on Rails?

Ruby on Rails популярный, объектно-ориентированный, фреймворк для веб-разработки, с отрытым исходным кодом используемый множеством программистов для создания приложений. Также он основан на принципах модель-представление-контроллер (model view controller MVC).

Модели связаны с базой данных и взаимодействуют с объектами приложения, к примеру объект пользователя. Rails предоставляет стандартизированное соглашение о именовании для файлов и директорий, что в свою очередь упрощает процесс программирования, а также даёт нам автоматизированное решения для построения функционала, называется это - скаффолдинг (scaffolding). Помимо этого в распоряжении разработчика имеется привычная среда способствующая продуктивной работе в команде.

Оптимизация для приятного программирования с соглашениями вместо конфигурации, так мы работаем.

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

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

Rails соглашение призывает разработчиков следовать принципам RESTful роутинга. Экшены контроллера как правило new, create, update, destroy, show, index и так далее. Позволяет пользователям и системе взаимодействовать с различным функционалом.

В соответствии, функции MVC Rails, называют Action Pack, то есть ActionController, ActionView и ActiveRecord предназначенные для взаимодействия с базой данных.

What is Ruby on Rails The Action Pack View Controller Record
What is Ruby on Rails The Action Pack View Controller Record
What is Ruby on Rails The Action Pack View Controller Record

Создатель Rails, Hanson составил набор принципов на которых основывается фреймворк, под названием доктрина Ruby on Rails.

What is Ruby on Rails The Rails Doctrine
What is Ruby on Rails The Rails Doctrine
What is Ruby on Rails The Rails Doctrine

Доктрина Ruby on Rails

Доктрина Rails состоит из восьми постулатов:

  1. Оптимизация для приятного программирования: когда это возможно, Ruby пытается потакать желаниям программиста.
  2. Соглашения вместо конфигурации: выбирая стандартизацию, соглашения во всех моментах данной платформы, позволяет программистам быстро начать работу над проектом.
  3. Меню - Омакасе: команда создавшая Ruby on Rails выбрала лучшие инструменты и методы и каждый должен быть счастлив, используя их.
  4. Ничья парадигма: в конце концов Rails включает гибкие решения на все случаи.
  5. Возвышение красивого кода: главный фокус на эстетику и простоту.
  6. Ценить интегрированные системы: ориентирование при полной информированности и единение, все необходимые инструменты необходимые для создания приложения.
  7. Прогресс вместо стабильности: готовность рисковать для улучшения платформы.
  8. Поставить большую палатку: приветствуются новые участники сообщества и ценятся их голоса, для лучшего виденья.
Главным достижением Rails было объединение и взращивание сильного племени, также как и набор еретических мыслей о природе программирования и программистах. — David Heinemeier Hansson

Ниже основные участники внёсшие значительный вклад в Rails (основатель Hansson в верхнем левом углу):

What is Ruby on Rails The Core Team
What is Ruby on Rails The Core Team
What is Ruby on Rails The Core Team

И они являются представителями уютного, приветливого сообщества:

Вероятно вы хотите узнать больше, вот как вам стоит начать.

Начинаем изучение Ruby on Rails

Rails обладает набором потрясающей документации. Вот как выглядит глава с введением:

What is Ruby on Rails Getting Started
What is Ruby on Rails Getting Started
What is Ruby on Rails Getting Started

Этот туториал познакомит вас с общими сведениями, процессом установки и первыми шагами программирования с Rails фреймворком.

Устанавливаем Ruby on Rails

На Mac Ruby уже установлен. Пользователям Windows стоит ознакомиться с RailsInstaller. Для полноценной установки Rails на OS X, туториал рекомендует Tokaido. В качестве альтернативы, Daniel Kehoe предлагает избегать установщиков в один клик и предоставляет детальную инструкцию по установки для Mac OS X El Captain.

Опытные Rails разработчики также сообщают, что это делает разработку веб-приложений более интересной. — Rails туториал

Однако, я давно не запускал Rails, и повторная установка на моей последней модели Mac с El Captain оказалось довольно времязатратным занятием.

Проверяем установленный Ruby

На OS X, Ruby уже установлен:

Устанавливаем фреймворк Rails

Установка Rails для меня заняла примерно 10 - 15 минут (будьте терпеливы):

Создание вашего приложения и экземпляра фреймворка

Затем я создал новое приложение под названием blog:

Вам стоит исследовать директорию веб-фреймворка Rails, чтобы ознакомиться со структурой приложения:

Вот изображение из вводной главы туториала, показывающие как Rails полагается на принципы соглашений вместо конфигураций:

What is Ruby on Rails Directory Structure Convention
What is Ruby on Rails Directory Structure Convention
What is Ruby on Rails Directory Structure Convention

Запускаем сервер

Наконец, вы можете запустить сервер с помощью командной строки:

Открываем наше приложение

What is Ruby on Rails Welcome Page of New Application
What is Ruby on Rails Welcome Page of New Application
What is Ruby on Rails Welcome Page of New Application

Должен признаться, хотелось бы, чтобы это было немного понятнее. Тем не менее, существуют отличные источники информации созданные участниками сообщества, призванные вам помочь.

Погружаемся глубже

Вот пример бесплатного GoRails скринкаста, освящающий основные моменты архитектуры приложения, директорию, которую мы упоминали ранее:


И Rails Guide ознакомит вас, шаг за шагом, с вопросами для новичков:

What is Ruby on Rails The Getting Started Guide Table of Contents
What is Ruby on Rails The Getting Started Guide Table of Contents
What is Ruby on Rails The Getting Started Guide Table of Contents

Помимо прочего, вы можете найти разнообразные текстовые туториалы и скринкасты, которые помогут вам разобраться.

В заключение

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

Не так давно меня заинтересовал проект с открытым исходным кодом от Apple - Swift, объектно-ориентированный язык программирования, похожий на Ruby с таким же потенциалом, который есть у Rails.

Я с радостью вспоминаю то время когда я работал с Rails, но также я испытывал некоторые турдности, особенно касательно хостинга и расширения базового функционала — хостинг для Rails приложений более дорогой. Мне нравится Yii, вы можете прочитать статью об этом Envato Tuts+ Yii2 Programming Series. И с появлением PHP 7, будущее PHP фреймворков кажется быстрым и ярким.

Если у вас есть вопросы, пожалуйста напишите их ниже. Или свяжитесь со мной на Twitter @reifman. Пожалуйста ознакомьтесь с моей страницей инструктора на Envato Tuts+, где вы найдёте другие туториалы, написанные мной, к примеру использование социальных сетей, чтобы найти свидетеля, посвященный API Instagram и Twitter.

1 июня стартует новый поток обучения на факультете разработки на языке программирования Ruby. Мы попросили автора курса, тимлида «Баланс-Платформы» Игоря Симдянова рассказать о том, что из себя представляет язык Ruby и почему его популярность стремительно растёт.

История появления языка Ruby и фреймворка Ruby on Rails

Ruby был создан японским разработчиком Юкихиро Мацумото в 1995 году. В тот период IT-индустрия подошла к созданию сложных долгоиграющих программ: операционных систем, баз данных, офисных пакетов, игр… Одновременно задумались о создании программного обеспечения, ориентированного на людей и интуитивно понятного им, вместо прежнего, позволяющего только говорить с компьютером на его языке и о его проблемах.

При помощи старых языков программирования разработка программ шла долго и дорого, поэтому по мере роста вычислительных мощностей и числа запросов на ПО появилось много новых, молодых языков, которые позволили работать быстрее и создавать код с меньшим количеством ошибок.

В тот период начался бум создания языков программирования — Python, Java, PHP… Юкихиро Мацумото поставил своей целью сделать язык программирования не только удобным, но и приятным — и Ruby до сих пор остается одним из самых красивых языков программирования. Поначалу Ruby не встретил большой популярности: хотя его документация была переведена на английский ещё в 1997 году, он долгое время оставался малоизвестным японским языком программирования. Всё изменилось в 2006 году, с появлением фреймворка Ruby on Rails.

Фреймворк — это набор библиотек и утилит, по сути заготовка, которая позволяет писать проект не с нуля, а с уже заложенного фундамента, что, конечно, проще и быстрее. Ruby on Rails — это фреймворк, написанный на Ruby для веб-разработки, для создания сайтов.

Не мне рассказывать вам о роли интернета в нашей жизни — если в начале 2000-х годов им пользовалось 5% нашей страны, то сейчас — уже 75%. За пару десятков лет из клуба по интересам интернет вырос в новую планетарную инфраструктуру связи. Сам по себе он довольно сложно устроен, но из-за постоянно растущего числа пользователей с этой сложностью нужно было как-то бороться. Одним из способов стала разработка отдельных специализированных языков программирования — того же PHP. В ранних системах, однако, были существенные недостатки: проблемы с информационной безопасностью, разрозненность сообществ и, как следствие, несовместимость систем друг с другом.

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

В чем секрет успеха Ruby и Ruby on Rails? Чем они привлекают разработчиков?

Сам я в коммерческой веб-разработке уже больше 15 лет, при этом около 10 лет я писал на PHP. Я хорошо помню момент перехода на Ruby on Rails — мне показалось, что у меня просто выросли крылья и открылось неограниченное поле возможностей.

Во-первых, Ruby on Rails — это просто инструментально-библиотечный рай. Выверенный и красивый Ruby привлекает много талантливых разработчиков, которые создают качественные и тщательно проработанные заготовки кода.

Во-вторых, в Ruby on Rails отличная развитая инфраструктура: системы тестирования, линтеры, доставки компонентов, взаимодействие с базами данных и пр.

В-третьих, работая на PHP, вы имеете дело с разными его фреймворками — Symfony, Laravel, Yii, — компоненты которых несовместимы друг с другом. В результате относительно большие сообщества вынуждены создавать, поддерживать и переписывать несколько версий одной и той же библиотеки для разных фреймворков. В Ruby on Rails разработчики уже десять лет находятся в единой экосистеме компонентов (гемов). Приходя в Ruby on Rails, вы просто попадаете в будущее. До этого будущего многим экосистемам (PHP, JavaScript) еще очень далеко, а некоторые экосистемы (Python, Java) пришли к нему лишь недавно.

Чем Ruby отличается от других популярных языков программирования?

Ruby и Python — это интерпретируемые языки программирования, в которых программу шаг за шагом выполняет интерпретатор. Для запуска программы нужно устанавливать исполняемую среду на компьютер, при этом этап компиляции отсутствует, поэтому саму программу можно отладить даже в полевых условиях.

Ruby и Python по своей философии и концепции очень похожи, отличаются детали реализации — например, преобразование объектов к логическому значению или механизм перегрузки операторов.

На данный момент Python, безусловно, более известен — во многом благодаря тому, что научное сообщество облюбовало его в качестве языка проверки гипотез, разработки математического программного обеспечения, нетребовательного к ресурсам. Поздняя популярность Ruby привела к тому, что многие основополагающие книги, которые должен прочитать каждый рубист, были изданы очень маленьким тиражом или не переводились на русский язык вообще. Информацию найти сложно, поэтому Ruby-сообщество сейчас составляют очень мотивированные сотрудники, которые изучали язык, несмотря на дефицит обучающих материалов. В связи с этим, Ruby-коллективы обычно очень сильные — и разработчик в них быстро растет.

Какие известные проекты были написаны на Ruby или Ruby on Rails?

Вообще Ruby on Rails — популярный инструмент для запуска и быстрой атаки рынка. Им не пренебрегают даже компании-гиганты, когда хотят проверить гипотезы или экспериментировать — например, проекты Сбера ДомКлик и СберМаркет обслуживаются Ruby on Rails. А ещё многие онлайн-школы, в том числе и сам GeekBrains, тоже написаны на Ruby on Rails.

Как и где работают Ruby-программисты? Достаточно ли Ruby-разработчиков на рынке?

Если не считать Японии, где Ruby — это почти национальный язык программирования, на котором программируют роботов, линии сборки автомобилей и встроенное ПО, во всем остальном мире Ruby — это в первую очередь веб-разработка. Причем веб-разработка на фреймворке Ruby on Rails.

Ещё в Ruby-экосистеме имеется неплохие инструменты для автоматического тестирования, однако автотестеров, использующих Python, всё-таки больше.

Также, из-за последствий пандемии активно стали развиваться службы доставки, школы удаленного обучения, телемедицина, в которых тоже нужны разработчики. Это относится не только к России — многие из наших соотечественников стали работать на зарубежные компании по удаленке, что только усилило кадровый голод. Для компаний это вызывает трудности, зато для кандидатов без опыта это отличный шанс сразу же устроиться на хорошую позицию.

Обычно это работа в небольшом коллективе, от двух до десяти человек. Иногда Ruby-разработчики работают и поодиночке, но, на мой взгляд, лучше иметь коллегу-партнёра, с которым можно обсудить решения и который может провести код-ревью.

Чем отличаются обязанности начинающего и уже опытного сетевого специалиста по Ruby? Как быстро проходит карьерный рост? Сколько в среднем получают специалисты junior-, middle- и senior-уровня?

Единой жёсткой градации по уровням нет, всё зависит от компании — где-то раз в полгода проводят аттестации, где-то повышают в должности после завершения больших проектов, а кому-то дают звание senior-специалиста за выслугу лет.

На мой взгляд, junior-специалист — это тот, под кого нужно подбирать задачу, чтобы разработчик победил задачу, а не она его. При этом у него обычно есть ментор, который может и должен расписать задачу по пунктам и проверить правильность выполнения в контрольных точках. В Москве junior-специалист может получать 90–120 тысяч рублей, в регионах — от 40 тысяч.

Middle-специалист — это инженер, который может решать задачи самостоятельно, при необходимости разбивая их на более простые. Зарплаты миддлов — где-то от 120 до 180 тысяч рублей в Москве, около 65–90 тысяч в регионах.

Наконец, senior-специалист может решать архитектурные задачи, проявляет инициативу по улучшению работы всей системы и проводит исследования новых технологий, поиска узких мест, устранения хитрых багов. При этом ожидается, что, когда сениору забрасывается проблема, то в следующий раз вы от него получите готовое решение. Senior-разработчик в Москве получает от 180 до 300 тысяч, при работе на западные компании ценник — от 3 до 4 тысяч долларов.

Рост от junior до middle-специалиста обычно занимает год — за этот срок разработчик должен перейти от решения детально расписанных задач к самостоятельным инженерным решениям. Рост от middle до senior-специалиста может занимать от 2 до 10 лет — всё зависит от задач, коллектива, и, конечно, от самого специалиста.

Чем этот курс по Ruby отличается от других?

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

На нашем курсе мы в течение трех месяцев изучаем сам Ruby и добиваемся устойчивого понимания языка. Параллельно готовимся к штурму Ruby on Rails — изучаем Git, Linux, базы данных, вёрстку и лишь затем, уже полностью вооружившись нужными технологиями, переходим к изучению Ruby on Rails. Такой подход очень экономит время учеников и обеспечивает их конкурентным преимуществом, позволяющим не слепо верить фреймворку или гему, а при необходимости заглянуть внутрь и проанализировать любой Ruby-код.

Нужны ли какие-то базовые знания для того, чтобы поступить на курс по Ruby? Подойдет ли он для новичков в программировании?

Не нужно практически ничего, кроме владения компьютером и знания арифметики. Ruby очень дружелюбен к новичкам — о назначении методов иногда можно просто догадаться самому, даже не заглядывая в документацию.

Как будет проходить обучение на факультете Ruby on Rails?

Занятия будут проходить два раза в неделю в формате вебинаров длительностью 1,5–2 часа. При этом я как преподаватель очень рассчитываю на обратную связь от студентов, постараюсь найти к каждому индивидуальный подход и давать не только обязательные материалы, но и дополнительную информацию по интересам.

Я убежден, что пассивное потребление информации (лекции, книги, статьи, обучающие видео) должно по-хорошему составлять 10% обучения, а 90% времени должно уходить на выполнение заданий, совершенствование программ и отладку кода. Хороший разработчик — это человек с большим опытом практического программирования и создания пусть и не самых красивых и изящных, но реальных решений задач. К каждому уроку будут домашние задания — как базовые, так и дополнительные, необязательные, чуть забегающие на следующие темы и помогающие воспринимать дальнейший материал, то есть слушать теорию, уже вспоминая свой практический опыт.

Также для перехода к следующему курсу нужно будет сдать две итоговые работы по предыдущему блоку. Это будут различные консольные утилиты: календарь, поиск по словарю, подсчет строк кода в Ruby-проектах, анализ графических файлов. После перехода к Ruby on Rails мы начнем разрабатывать веб-сайты, которыми студенты смогут пользоваться сами: ведение ToDo-списков, приложение для изучения английского языка и т. д.

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

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

О создателе курса

Программировать я начал в университете — изучал квантовую химию, а для этого нужно было много заниматься исследованиями и математическим моделированием. Приходилось адаптировать научный софт на FORTRAN, писать свои расчетные программы, визуализировать результаты расчетов. Параллельно освоил Visual Basic и Wolfram Mathematica, а на последних курсах увлекся веб-разработкой.

Я довольно долго программировал на PHP и знаю, что в нем много непоследовательных мест и ошибок в архитектуре, поэтому я перешел на Ruby — работаю с ним уже восемь лет и считаю, что это один из самых удобных и красивых языков программирования.

Ещё я являюсь автором одного из самых известных русскоязычных самоучителей по Ruby — написать я его решил в 2017 году, когда начал работать в GeekBrains преподавателем и столкнулся с тем, что студентам, не знающим английского языка, просто неоткуда брать дополнительную информацию.

По мере работы над курсами, переработки методических материалов, создания видео-курсов и общения со студентами у меня сложилось понимание, как следует преподавать Ruby с нуля. Поэтому я взял творческий отпуск и за полгода создал книгу, по которой многие уже не первый год самостоятельно изучают язык.

Ruby on Rails — фреймворк для быстрой веб-разработки на языке Ruby.

Веб-разработка — создание веб-приложений — сайтов, которыми вы пользуетесь через браузер. Яндекс.Почта, Вконтакте, Facebook, GMail, Twitter, Одноклассники. Тысячи их.

Для отображения информации в веб-приложениях используют язык разметки HTML и стили CSS, без них веб-приложение не получится (ок, без CSS можно обойтись при желании). Но это не языки программирования, это просто способ показать какую-то информацию.

Если на сайте только текст, картинки и видео, которые не меняются — это, скорее всего, статический сайт. Для статических сайтов хватает только HTML и CSS.

В 99% случаев на сайте есть какие-то динамические элементы (выпадающие меню, счетчики Яндекс.Метрики или Google Analytics), которые используют JavaScript.

Что такое фреймворк?

Когда пользователь, например, регистрируется на сайте, он вписывает свои email, пароль и имя в форму, жмет кнопку «Зарегистрироваться» и в этот момент на сервер уходит запрос с этими данными. Сервер их получает, сохраняет в базу данных, формирует ссылку, например, на личный кабинет пользователя и отправляет её браузеру.

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

Ruby, Python, PHP, Node.JS, Java, Elixir, Go — серверные языки программирования. На них можно писать серверную часть веб-приложений.

Браузер, Сервер, База данных

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

Для Ruby — фреймворк Ruby on Rails, для Python — Django, для PHP — Laravel, Symfony, Yii, для Elixir — Phoenix. Для Node.JS, Go и Java монолитных фреймворков пока нет, просто используются наборы библиотек.

Отличие фреймворка от набора библиотек можно описать так: Фреймворк — это скелет, на который мы наращиваем свой код. При работе с отдельными библиотеками скелетом является наш код. Фреймворк — набор библиотек, который позволяет реализовать весь необходимый базовый функционал. Плюс важна взаимная согласованность стиля и функциональности компонентов, сквозная документация.

Модель, Вид, Контроллер

Для закрепления: Ruby — язык программирования, Ruby on Rails — фреймворк, написанный на Ruby.

Когда используют Ruby on Rails

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

Сайт с простым функционалом на рельсах, если уметь, можно сделать за вечер. Вот видео, где автор в режиме спринта делает сайт со списком задач за 22 минуты (включая выкладывание на реальный сервер):

Какие компании используют Ruby on Rails?

Отдельные проекты на «рельсах» есть практически в любой крупной компании, например, в Google, Apple и Сбербанке.

Перспективно ли изучать Ruby on Rails

Да, если вам нравится веб-разработка.

Ruby входит в 20 самых популярных языков программировани, а число вакансий на Rails сравнимо с числом вакансий на Django и Laravel.

При этом под «разработкой» разные люди понимают разное. Например, PHP популярен благодаря распространенным CMS-кам типа Wordpress, Joomla или Drupal. Число вакансий на нем огромное, но по факту ищутся не разработчики, а веб-мастера для поддержки сайтов небольших компаний и допиливания плагин для вордпреса. Это скучная и не очень высокооплачиваемая работа.

Но большинство новичков, увидев число вакансий по PHP во время выбора, какой язык программирования изучать, выбирают его. В итоге разработчики на Ruby on Rails — всегда в дефиците, поэтому средняя зарплата Ruby-разработчика выше (как и Python-разработчиков).

Зарплаты в разных языках программирования в 2019-м году

Ruby — лучший язык для новичков

Руби — отличный выбор для первого языка программирования.

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

Меж тем, учить язык именно вам и количество вакансий не будет мотивировать вас учиться, если вам не нравится сам процесс разработки на выбранном языке. Будет играть роль, насколько вам понятен синтаксис, насколько вам нравится, как устроен язык, насколько он кажется вам логичым и эстетичным.

На руби писать в разы приятнее, чем на PHP. Вот пример короткой программы Ruby и на PHP:

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

Даже если потом придётся перейти на другой язык программирования — заложенная база на эталонных примерах поможет гораздо быстрее освоить более сложный и менее выразительный язык или фреймворк.

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

Подробнее про это — в этом видео:

Чем руби отличается от PHP, Python

Технически эти языки очень похожи — высокоуровневые, динамические, интерпретируемые. Но это только формальная сторона.

Python, как и руби — мощный современный язык. По сравнению с руби он, на наш вкус, немного сложнее для понимания продвинутых тем, не обладает таким изящным синтаксисом и такой дружелюбной к новичкам экосистемой, как Ruby.

Зато он популярен в областях, не связанных с web — машинное обучение, аналитика, научные вычисления. Python вам очень пригодится для машинного обучения. Или как универсальный язык, если вы уже владеете программированием.

PHP изначально не проектировался как полноценный язык программирования. Это отразилось и на надежности, и на безопасности, и на популярности языка.

Пик его развития давно прошел, и сейчас ни передовые компании (вроде гугла, эппла, амазона), ни передовые стартапы (те самые, в кремниевой долине) его практически не используют.

Ruby изначально проектировался как «лучший друг программиста». На нем легко и принято писать, можно создавать сложные приложения. Но так исторически сложилось, что он используется больше всего именно в веб-разработке.

С Ruby вы быстрее и легче всего дойдете с нуля до работающего веб-приложения и правильного понимания основ программирования.

Читайте также: