Регистрация

Ruby on Rails. Лыжи не едут? Вставай на рельсы

155
0
11 958 0
Аудио Текст
23 октября 2013

Веб-разработка — одна из самых динамично развивающихся отраслей интернет-бизнеса. Недавно мы говорили о том, что «каскадная» модель уступает место идеологии Scrum. Теперь мы доберёмся до фундамента сайтостроительства — языков программирования. В нашей студии сооснователь и гендиректор компании Evrone Олег Балбеков.

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

Сергей Иванов: Всем привет! В эфире программа «Бизнес online» и я, Сергей Иванов. В сегодняшней нашей программе мы попытаемся докопаться до самого фундамента сайтостроительства. Я говорю о языках программирования. А поможет нам в этом сооснователь и генеральный директор компании Evrone Олег Балбеков. Олег, привет!
Олег Балбеков: Здравствуйте!

Олег Балбеков, сооснователь и гендиректор Evrone.
Родился в 1983 году в городе Рассказово Тамбовской области.
В 2007 году окончил факультет САПР Тамбовского государственного технического университета.
С 2005 по 2007 год работал в различных организациях PHP-разработчиком.
С 2007 по 2009 год работал Ruby-разработчиком в компаниях Undev.ru и LinkFeed.ru.
В 2009 году основал компанию Evrone и стал ее техническим директором. В дальнейшем передал эту должность преемнику, оставшись управляющим партнером компании.

С. И.: Олег, насколько я знаю, ваша компания достаточно многопрофильная, но что-то говорит мне, что основным ее профилем являются именно интернет-решения, правильно?
О. Б.: Совершенно верно.
С. И.: Вы занимаетесь не только разработкой сайтов, но и мобильными приложениями, даже играми, и везде указано, что в своих разработках вы используете язык программирования Ruby и фреймворк Ruby on Rails. Почему?
О. Б.: Совершенно верно. Во-первых, так исторически сложилось. Мы в какой-то момент, при создании компании даже, выбрали этот инструмент как основной, стали узкоспециализированными в разработке веб-сервисов, веб-приложений, веб-игр с использованием RoR. Во-вторых, просто хотелось полностью сконцентрироваться именно на этих технологиях и не отвлекаться на все остальное. Особенно во всем, что касается Веба, мы используем RoR.
С. И.: Вы с самого начала делали ставку на RoR?
О. Б.: Да, я работал RoR-разработчиком и в какой-то момент понял, что этот инструмент очень хорош. И мы создали компанию, которая создает проекты на RoR.
С. И.: Получается, личный фактор сыграл: вы просто хорошо знаете этот язык программирования, верите в него, владеете им?
О. Б.: Да, в первую очередь.
С. И.: А в чем преимущество технологии? Я так понимаю, помимо личного пристрастия есть какая-то аргументация. Вы видите преимущества технологии RoR, какие они?
О. Б.: Вы знаете, прежде чем говорить о преимуществах, нужно в первую очередь сказать о специализации технологий, о которых мы говорим. На RoR не пишут сайты-визитки или промосайты. Для этого есть PHP, куча всевозможных CMS и прочих вещей, с помощью которых написать промосайт проще и удобнее. Мы не говорим о том, что на RoR пишут какие-то архисупервысоконагруженные решения, для этого тоже есть другие технологии. А мы говорим о небольшом узком сегменте — сегменте стартапов, необычных сложных веб-сервисов и сложных платформ сайтов, которые нельзя вогнать в рамки стандартных CMS. Вот именно для этого сегмента был создан и сейчас активно используется RoR. Поэтому мы создали компанию, которая делает именно стартапы, именно сложные решения, именно нестандартные проекты, и другой технологии, кроме RoR, мы даже не рассматривали.
С. И.: Был у меня вопрос, но вы его предвосхитили. Использование языка RoR требует достаточно зрелых, подготовленных программистов с соответствующими зарплатными ожиданиями. Это такой сложный порог, как финансовый, так и кадровый. Но если мы говорим о том, что это сложное решение, думаю, иного и быть не может? Особый язык — особый контингент программистов, правильно?
О. Б.: Здесь очень глубокий холивар. Все говорят, что есть некие кадровые проблемы, и разработчиков нет, они дорогие. Это все действительно правда, но есть очень понятные причины.

В основном в RoR разработчики попадают после нескольких лет PHP. Я лично работал PHP-программистом, сделал свой фреймворк, потом увидел Ruby, понял, что там все намного интереснее и все мои идеи, которые я «закатывал» в свой фреймворк, там уже реализованы и развиваются. Причем развиваются не просто каким-то одним человеком, а многотысячным сообществом. И я плавно перешел на RoR. И таким же образом очень много разработчиков поступает.

Это взрослые люди, которые поняли, что в PHP они не могут разработать все то, что хотят. Они не готовы больше мириться с некоторыми недостатками, допустим, PHP и хотят более быстро и качественно работать, поэтому они переходят на Ruby. И отсюда понятно, что уровень разработчиков выше, возраст больше, опыта больше. И в среднем мы готовы говорить о том, что разработчики на Ruby более опытные, там совсем мало неопытных и начинающих ребят. Разумеется, сейчас технологии немного «попсеют». Если два года назад это была технология избранных, то сейчас, разумеется, ребята молодые подтягиваются, уже есть книжки «Ruby on Rails для чайников» и прочее, прочее.
С. И.: Кадрового голода сейчас не наблюдается?
О. Б.: Знаете, он наблюдается, но по одной простой причине: очень плохих разработчиков на RoR практически нет. Сразу планка выше среднего идет, сразу хорошие зарплаты, сразу хорошие требования, но и лучший результат. Поэтому есть кадровый голод.
С. И.: Количество проектов, в которых требуются программисты на RoR, превышает число качественных специалистов, владеющих этим языком программирования?
О. Б.: Это касается любых технологий сейчас, да. Хороших программистов мало, и они одинаково дороги на всех технологиях. Если мы говорим о том, что нам нужна суперкоманда, состоящая из тех ребят, которые могут сделать что-то, то они будут стоить дорого, и их мало.
С. И.: В любом случае?
О. Б.: В любом случае, в любой технологии.
С. И.: Тем не менее само знание того, что человек владеет RoR, — это определенный знак качества программиста. Все-таки в любом случае это не молодой, начинающий кодер, который быстренько «PHP для чайников» освоил.
О. Б.: Да.
С. И.: В любом случае это уже какая-то планка, да?
О. Б.: Да, вы правы.
С. И.: А откуда вы берете специалистов? Или у вас уже сложившаяся команда и вы просто не сталкиваетесь с такой проблемой? Вы обучаете у себя или уже берете готовых?
О. Б.: Знаете, за несколько лет нашего существования ситуация на рынке изменилась. Начали мы, разумеется, с того, что обучали, то есть брали хороших ребят из параллельных технологий, из того же PHP или Java, показывали RoR, «прокачивали» и выращивали сотрудников. Все эти ребята до сих пор с нами, это нас очень радует. Сейчас уже, разумеется, на рынке появились достаточно грамотные, квалифицированные специалисты, которые поработали в этих технологиях и могут к нам присоединиться. Плюс мы тоже подросли, мы уже понимаем, что хотим, у нас достаточно денег, чтобы нанять профессионалов. И с учетом того, что уровень проектов сильно вырос, уровень клиентов и их ожидания тоже выросли, мы больше не можем себе позволить брать новичков и их обучать, их просто некуда подключить. Мы не имеем права продавать нашим VIP-клиентам обучение молодого специалиста и обучать его за счет наших клиентов. Поэтому ситуация поменялась. Плюс, возможно, один из следующих ваших вопросов будет про нашу конференцию и про нашу социальную миссию, которую мы несем. Мы делаем конференции и за счет этого тоже знакомы с огромным количеством хороших специалистов, которые к нам периодически присоединяются.
С. И.: Многие говорят о красоте и логичности кода RoR, о том, что он используется в сложных проектах но, тем не менее у него же должны быть какие-то недостатки?
О. Б.: Давайте говорить, опять же, о том, что технология молодая и активно развивается. Несколько лет назад, когда эта технология только развивалась, одним из недостатков считалась невысокая скорость работы.
С. И.: Да.
О. Б.: Точнее, это был такой миф, за который многие цеплялись. Сейчас это абсолютно не так. Современная версия языка Ruby абсолютно не уступает ничему.
С. И.: И говорят, что эта невысокая скорость работы была из-за неправильной связки с базами данных.
О. Б.: Нет, на самом деле в основном из-за того, что язык просто разрабатывался, и в него вкладывались все новые и новые идеи. Юкихиро Мацумото в какой-то момент понял, что его не устраивают недостатки остальных языков, и в конце 1995 года он сделал свой, который эти недостатки закрыл. Поэтому, собственно говоря, язык кажется принципиально новым и более современным.

И как раз одним из недостатков [Ruby] несколько лет назад была его медлительность. Сейчас этого нет, но люди по привычке хотят одним из недостатков назвать медлительность. Плюс есть пара исторических моментов. Twitter изначально был написан на RoR, потом его переписали на Scala. Но, ребята, Twitter испытывает такие колоссальные нагрузки, что можно было с таким же успехом переписать все на C или на каких-то более низкоуровневых языках. И это не говорит о том, что RoR плохой именно в своей специфике, в своей области применения.

Мы говорили с вами о том, что RoR применяется именно для стартапов, для быстрого старта, для того чтобы очень быстро сделать прототип или готовое решение и спокойно принимать нагрузки до какого-нибудь, условно говоря, миллиона уникальных посетителей в сутки. Потом, если нагрузки стали супербольшие, можно искать какие-то иные решения. Но в 98% случаев вам этого будет достаточно. Если ваш стартап действительно взлетел ракетой так высоко, что вы стали испытывать миллионные нагрузки, тогда да, тогда думайте о чем-то другом. Но на старте, для того чтобы понять, что ваш стартап тот самый, за который люди готовы платить деньги, и в той самой конфигурации, в которой вы его видите, можно спокойно использовать RoR. В настоящее время говорить о том, что у Ruby есть какие-то существенные недостатки в той области применения, о которой мы говорим, я не вижу никаких причин. Ruby — красивый язык. Считается — не смейтесь, — что программу на RoR можно петь. Это чистый английский язык, вы разговариваете с компьютером на чистом английском языке. Никаких скобок, кавычек, каких-то пунктуационных, синтаксических, сумасшедших правил, которые нам предоставляют другие языки. Просто поете в унисон с компьютером.
С. И.: А если говорить обо всем остальном мире, с каких языков проще переходить на RoR? Есть какие-то психологические трудности? Вот мы сейчас говорили о различиях в синтаксисе, например. Кому проще, кому тяжелее сломать себя?
О. Б.: Вы знаете, очень хороший вопрос. Мне кажется, каких-то таких особенностей нет. Разумеется, проще тем, кто делает веб-сайты, веб-проекты. Сложнее тем, кто делает какие-то решения, даже мобильные решения, еще что-то. В основном, если ты занимаешься Вебом, ты делаешь свои сайты, перейти на новый язык не составит труда.
С. И.: Одним из преимуществ использования RoR называют высокую скорость разработки. В вашем портфолио среднее время разработки типовых проектов — три-шесть месяцев. Здесь какое-то противоречие?
О. Б.: Типовых проектов?
С. И.: Да.
О. Б.: У нас очень мало типовых проектов
С. И.: А, эти проекты нетиповые?
О. Б.: Нетиповые. Типовые проекты — это интернет-магазин, который ты делаешь на каком-нибудь скрипте и в какой-нибудь студии. Мы делаем что-то более сложное. К нам всегда приходят и говорят: «Нам нужен проект, не похожий на другие». И конечно, есть некие три месяца, которые тратятся на разработку проекта, но это в основном создание некоего кастомного уникального решения под конкретного клиента и его «хотелки». Они всегда непрогнозируемо сложные или простые. Три месяца, которые мы в среднем делаем сервис, «сферический сервис в вакууме», тратятся. Но это очень быстро. Я думаю, на любых других языках это значение могло бы увеличиться в полтора-два раза.
С. И.: А верно ли, что на RoR очень хорошо, удобно делать прототипы и именно поэтому его стоит рекомендовать стартаперам для быстрого построения прототипов, работающих прототипов и демонстрации их?
О. Б.: Совершенно верно, да. Есть несколько тому подтверждений. Сейчас очень много стартапов во всем мире стартует на RoR. Существует огромное сообщество, которое развивает этот язык, этот фреймворк; сообщество, которое делает огромное количество OpenSource-решений и компонентов для фреймворка. Если раньше я писал, грубо говоря, руками систему авторизации или какую-то другую, то сейчас фреймворк как конструктор: повключал все это дело, добавил систему авторизации, авторизацию через социальные сети, все это компонуется в общий проект, — вот у тебя прототип. Прототип на каком-то простом уровне действительно можно сделать на порядок быстрее, потому что огромное количество готовых решений уже присутствует на рынке. Есть рейтинги этих решений, можно выбрать действительно лучшее, не ошибиться. А сообщество очень-очень активное: на любой твой вопрос придет миллион советов и отзывов, и тебе обязательно помогут.
С. И.: А как вы оцениваете долю проектов на RoR в Рунете? Много ли клиентов приходит к вам с пониманием, что то, что они сейчас собираются делать, будет на RoR? Или знание это им, в общем-то, никак не пригодится, главное — решение задачи?
О. Б.: Все-таки считается, что RoR — это такой мейнстрим, то есть мы на пике волны технологий. Если немножко отойти от вашего вопроса, разработчики RoR — это достаточно прогрессивные люди, которые идут на один шаг впереди прогресса. Сделали они что-то, и весь мир начал использовать эту фишку во всем сайтостроении.

Пример: все начали стили и JavaScript сжимать в один файл, это ускоряет работу проекта и загрузку сайта. В RoR в какой-то момент это сделали просто из «коробки», у вас не получится даже по-другому сделать. Это просто устанавливается в RoR, и, если ты используешь свежую версию RoR, ты точно используешь все самые современные технологии разработки веб-проектов.

С. И.: Клиенты это понимают?
О. Б.: Клиенты как раз это понимают. Они понимают, что в случае, когда ты заказываешь проект на RoR, за тебя думают 30 майнтейнеров, основных контрибьюторов RoR, и половина мирового сообщества RoR. И они знают, как тебе лучше сделать, на каких технологиях, и они уже заложены в «коробку», просто используешь — и все. И это обеспечивает то, что твой проект сразу реализуется на топовых технологиях. Это одна из причин, по которым клиенты выбирают эту технологию.
А дальше, собственно говоря, все те же проблемы: с одной стороны, нет разработчиков, с другой — те, что есть, хорошие. Если ты их себе нашел, скорее всего, тебя они устроят надолго, все будет хорошо. Плюс есть некое понимание, что RoR — это конструктор, в котором все конструируют по определенным правилам. Там можно сделать по-своему, можно сделать все, что угодно. Если ты соблюдаешь «библию RoR», ты сделаешь проект именно по таким-то правилам, в таких-то рамках. Это означает, что любой другой команде RoR этот проект может быть передан без проблем, без времени на вхождение, не будет истории «нам опять надо все переписать».
С. И.: Да, типичная PHP-история.
О. Б.: Да, типичная PHP-история: я зашел, я ничего не понял, мне нужно все переписать. Нет, в RoR, конечно, не без исключений, но в основном подключающийся к проекту разработчик делает полезные правки в первый же день работы, потому что он как минимум полностью знает, как что устроено в RoR. Вот те немногочисленные причины, по которым выбирается эта платформа.
С. И.: А что со стоимостью проекта на RoR для конечного клиента?
О. Б.: Клиенты, которым мы называем цену, говорят: «А у нас есть в два раза дороже, в три раза дороже и вообще „за еду“».
С. И.: Да.
О. Б.: Люди готовы работать «за еду». И если честно, человек действительно может найти себе команду, ну, не в Индии даже, а в какой-нибудь Белоруссии, — по-моему, там сейчас самые дешевые разработчики, — и они там просто будут работать «за еду». Потом часто приходят к нам обратно и говорят: «Ребята, вот мы тут „за еду“ делали, давайте теперь правильно». Мы говорим: «Хорошо, стоит дорого», — все уже это понимают. Наверное, нельзя говорить о стоимости разработки на RoR на нашем примере, потому что у нас очень ограниченная команда хороших специалистов, мы можем дать гарантию, мы можем сделать гарантированно хорошо, и за это мы хотим больше среднего по стоимости.
С. И.: И здесь не язык решает, а именно команда.
О. Б.: Да. Просто команда, которую мы воспитываем который год, мы все вместе работаем, уже знаем, кто на что способен. Я могу прийти к клиенту и сказать, что мы точно сделаем или точно не сделаем, я знаю это на 100%, потому что я знаю своих ребят. Другие команды на RoR пока еще растут, им нужны свежие проекты, они будут делать дешево. Поэтому говорить о стоимости именно в разрезе RoR сложно, это зависит от опыта разработчиков. Причем это одинаково на всех технологиях. Я уверен, что очень хорошие PHP-разработчики тоже будут дорого делать свои проекты.
С. И.: Как вы считаете, это язык будущего? Насколько он перспективен? Насколько он способен все большую и большую долю занимать на рынке? И какая методология к нему лучше применима, каскадная или Scrum?
О. Б.: По-моему, вы задали два разных вопроса. Давайте сначала про будущее.
С. И.: Да.
О. Б.: Безусловно, RoR — это язык будущего. Разумеется, не стоит забывать, что есть специализация и в рамках этой специализации он незаменим. Стартапы часто пишут гибкими методологиями, то есть Scrum-, Agile-методики. И честно говоря, добровольно-принудительно разработку на RoR ведут, именно используя гибкие методики разработки. Плюс в самом RoR есть много инструментов, которые позволяют это сделать. Доступно автоматическое тестирование «из коробки», с помощью которого можно сначала покрывать тестами проект, потом писать под эти тесты код. То есть сначала формировать требования, потом покрывать эти требования кодом и т. д. RoR полностью подходит к ведению разработки, используя Agile-методологии. Но разумеется, мы и таким способом пользуемся.
Есть проекты, которые приходят и говорят: «Мы не знаем точно, что нам надо. Давайте работать». Мы говорим: «Хорошо, давайте работать. Вот вам команда, работаем». А бывает, ребята приходят, приносят толстенное ТЗ и говорят: «Нам нужно вот от сих до сих, точно», — и тут получается каскадная технология, все это просчитывается, продумывается, и вперед. Разумеется, где-то посередине этого ТЗ и посередине разработки люди понимают, что написали не то и нужно разворачиваться и уходить дальше. Здесь RoR выступает во всей своей красе, потому что развернуться и поехать в другую сторону на RoR проще всего. Вам практически не придется что-то переписывать или хвататься за голову и говорить: «Ой-ой-ой, что же нам делать!» Нет, пожалуйста, разворачивайся и иди. Поэтому для стартапов, для проектов, которые только начинают, которые могут быть на данном этапе не до конца быть уверены в том, что им хочется, и поймет ли рынок, и поймут ли пользователи, технология RoR незаменима.
С. И.: Я знаю, Олег, вы являетесь организатором конференции RailsClub, в сентябре она проходит в 12-й раз. Можете рассказать нам, что это за конференция, каковы ее цели?
О. Б.: Да, конечно! Мы задумали ее в 2009 году. Тогда мы решали простые проблемы: не было разработчиков, нужно было где-то кого-то искать. Соответственно, нам нужна была тусовка, ее нужно было делать. Ничего подобного в Москве еще не было, никто не собирался. И все это началось с «баркампа» на 15 человек, а сейчас это конференция, которая проходит в Digital October, собирает под 300 разработчиков со всей России, и очень много иностранных спикеров к нам приезжает. Если честно, я горд тем, что в этот раз мы позвали Оби Фернандеса. Это человек, по книгам которого я лично изучал RoR. К нам приезжали очень многие именитые разработчики и контрибьюторы «рельс» — люди, которые непосредственно сами RoR и создают. И у всех сегодня есть возможность с этими ребятами пообщаться. Плюс сейчас это, конечно же, наша социальная миссия. Это абсолютно некоммерческое мероприятие, которое мы делаем для людей, для развития технологии в России, исключительно по собственному желанию и потому, что нам это небезразлично.
С. И.: А между первым и двенадцатым разом что изменилось? Насколько изменился состав участников конференции и круг вопросов, которые обсуждаются? Прогресс наблюдается?
О. Б.: Изменилось все. Изменился формат. Начиналось все с того, чтобы собраться поговорить и выпить пива. Затем мы выросли из бара, нас перевели в большую комнату. Потом мы выросли из большой. Нам начали помогать всевозможные компании, которые тоже ведут разработку на RoR, мы переехали к ним в офисы. Сейчас это международная площадка Digital October, которая тоже нам помогает и предоставляет эту площадку на прекрасных условиях, практически бесплатно. Они тоже ведут разработку своих проектов на RoR, поэтому мы совместно делаем эту конференцию. И вы знаете, если раньше я выступал и говорил: «Ага, я половину зала знаю», то сейчас выходишь на сцену и видишь огромное количество новых лиц, ты никого не знаешь. И именно по наличию этих новых лиц я могу судить о развитии технологии в России.

По моим ощущениям, судя по нашим конференциям, объем аудитории, объем сообщества RoR растет примерно на 30-50% в год.

С. И.: Прекрасно! На весенней конференции «Российские интернет-технологии» вы делали доклад о геймификации процессов веб-разработки. Можете рассказать о нем подробнее, в чем смысл этого процесса? Вы даже сделали сервис, насколько я знаю, под названием Leaderboard.pro.
О. Б.: Да. Знаете, в принципе, развитие этого нашего направления пошло неожиданно интересно. Разумеется, когда мы сделали Leaderboard.pro, мы вообще не знали, что это геймификация.
С. И.: А! Теория пошла вослед практике.
О. Б.: Мы делали инструмент для себя, мы решали свои проблемы: у нас команда, ей нужен какой-то учет. Оказалось, что мы сделали геймификационный сервис, который впоследствии «дотюнили». Получился полноценный сервис, который позволяет геймифицировать процесс разработки. Но самое интересное, что потом мы познакомились с ребятами, которые занимаются геймификацией в России, это компания GameTrek, объединили с ними усилия, создали совместную компанию, которая сейчас называется Work&Play. Сейчас мы ведем разработку бизнес-игр для геймификации бизнес-процессов, не обосабливаясь именно на геймификацию разработки ПО.
К выходу готовится вторая игра, которая будет называться Track2Win, чуть позже мы ее продемонстрируем публике, сейчас отлаживаем и готовим к продакшену. Через какое-то время будет создано и показано широкой аудитории несколько бизнес-игр, которые помогут геймифицировать все бизнес-процессы любой, в принципе, компании. Если говорить о процессах разработки, здесь есть Leaderboard.pro. Это кастомизированное решение именно под команды разработки. Там привязывается система контроля версий, GitHub тот же, привязываются таск-менеджеры: Redmine, Jira и все, к чему мы так привыкли. На основе информации о деятельности человека, через его завершенные задачи и сделанные коммиты делаются какие-то выводы, ему даются какие-то награды. Плюс поощряется его «внеклассная» деятельность: прочитал доклад на конференции — вот тебе награда. В нашей истории все это превращается в какие-то денежные бонусы, в истории других компаний, которые пользуются нашим сервисом, все по-разному. Здесь тоже есть элемент кастомизации.
Пока сервис Leaderboard.pro без нашего участия и без нашей помощи во внедрении не может существовать отдельно, мы еще над этим работаем. Какое-то время нам потребуется, чтобы «дотюнить» сервис и позволить абсолютно всем без нашего участия полностью разобраться, запустить и поехать.
С. И.: Красивая картина для программистов получается: с одной стороны — красивый прогрессивный язык RoR, который может фактически петь с компьютером, с другой стороны — процесс геймификации. Я думаю, в таком ключе большие изменения произойдут среди программистов и во всей веб-разработке. Большое спасибо, Олег, за интересный рассказ!
О. Б.: Спасибо!
С. И.: Я прощаюсь на этом, уважаемые телезрители! Смотрите наш телеканал, задавайте вопросы, предлагайте темы. Всего вам доброго, пока!

Развернуть текстовую версию
Комментарии
Похожие видео
Еще видео