Ruby on Rails — всё по этой теме для программистов


Оглавление (нажмите, чтобы открыть):

4 главных аналога Ruby on Rails

Мы не будем говорить, почему Rails плох и в чем каждый из представленных фреймворков его превосходит. Объективно — Rails лучший инструмент для разработки на Ruby, что не отменяет его несовершенств, которые могут вызывать отторжение. А раз так, вы неизбежно посмотрите в сторону одного из этих фреймворков.

Sinatra

Краткое описание: Sinatra — не фреймворк, скорее мини-фреймворк. Если вы изначально примете это как истину, у вас будет возможность насладиться работой с ним. Он активно продвигает старую истину: «если хочешь что-то сделать хорошо — сделай это сам». В реальном проявлении это означает отсутствие модели MVC. Sinatra занимается преимущественно обработкой запросов на серверной стороне, а к большим подвигам категорически не склонен.

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

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

Оценка функциональности: 1 рельса из 5.

Grape

Краткое описание: еще один фреймворк, заточенный исключительно под разработку API. Поддерживает архитектуру REST, что делает его вполне пригодным для многих веб-продуктов. В частности, для этого используются структуры namespace, group, segment и т. д.

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

Чем может понравиться: простота и скорость.

Оценка функциональности: 2 рельсы из 5.

Hanami

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

На Hanami можно быстро создать веб-приложение (производитель обещает, что уложитесь в 5 минут), он потребляет на 60% меньше памяти, чем любой другой fullstack-фреймворк на Ruby, и при этом он обладает рядом интересных полезностей. Некоторые из них, вроде отдельного тестирования логики взаимодействия или работы с действиями контроллера как с отдельными классами, помогают в работе и повышают безопасность конечного продукта.

Чем может понравиться: компактностью и простотой fullstack-разработки.

Оценка функциональности: 4 рельсы из 5.

Padrino

Краткое описание: веб-фреймворк, основанный на Sinatra и серверном интерфейсе Rack, также является инструментом fullstack-разработки. Он несет те же самые ценности, что и его «голливудское» ядро, поэтому сравнивать его уместнее не столько с Rails, сколько с Hanami.

При знакомстве с Padrino вы «захватите» и Sinatra. Другие преимущества: легкость в использовании, скорость разработки и работы приложения, достаточно богатая экосистема. Пожалуй, это наиболее вероятный второй номер в мире фреймворков Ruby.

Чем может понравиться: легкость, компактность, скорость, а также одновременное изучение 3 популярных Ruby-инструментов за один заход.

Оценка функциональности: 4 рельсы из 5.

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

По приведенной подборке можно сделать вывод, что в мире Ruby есть Rails и все остальные. Это действительно так, но это не отменяет того, что попыток посягнуть на престол было и остается много. Вот еще несколько:

Merb — был когда-то такой славный конкурент у Rails, но потом разработчики решили, что не враги они друг другу, а коллеги. В итоге объединились с «рельсами» и создали Ruby 3.

Camping — микро-фреймворк, исходный код которого умещался на одном листе формата А4. Реализует интерфейс CGI, но функциональность при этом невероятно низкая.

NYNY — схожий с Sinatra веб-фреймворк, отвечающий за разработку ядра. Плюсом является возможность взаимодействия с Rails и все тем же Sinatra, использование Rack в качестве интерфейса.

Scorched — еще один невероятно легковесный фреймворк, работающий по принципу DRY. Не слишком популярен из-за практически полного дублирования Sinatra по функционалу.

Cuba — элегантная попытка создать фреймворк для разработки real-time приложений с чистым кодом и минимально возможным количеством задействованных файлов.

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

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

Мы не будем говорить, почему Rails плох и в чем каждый из представленных фреймворков его превосходит. Объективно — Rails лучший инструмент для разработки на Ruby, что не отменяет его несовершенств, которые могут вызывать отторжение. А раз так, вы неизбежно посмотрите в сторону одного из этих фреймворков.

Sinatra

Краткое описание: Sinatra — не фреймворк, скорее мини-фреймворк. Если вы изначально примете это как истину, у вас будет возможность насладиться работой с ним. Он активно продвигает старую истину: «если хочешь что-то сделать хорошо — сделай это сам». В реальном проявлении это означает отсутствие модели MVC. Sinatra занимается преимущественно обработкой запросов на серверной стороне, а к большим подвигам категорически не склонен.

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

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

Оценка функциональности: 1 рельса из 5.

Grape

Краткое описание: еще один фреймворк, заточенный исключительно под разработку API. Поддерживает архитектуру REST, что делает его вполне пригодным для многих веб-продуктов. В частности, для этого используются структуры namespace, group, segment и т. д.

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

Чем может понравиться: простота и скорость.

Оценка функциональности: 2 рельсы из 5.

Hanami

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

На Hanami можно быстро создать веб-приложение (производитель обещает, что уложитесь в 5 минут), он потребляет на 60% меньше памяти, чем любой другой fullstack-фреймворк на Ruby, и при этом он обладает рядом интересных полезностей. Некоторые из них, вроде отдельного тестирования логики взаимодействия или работы с действиями контроллера как с отдельными классами, помогают в работе и повышают безопасность конечного продукта.

Чем может понравиться: компактностью и простотой fullstack-разработки.

Оценка функциональности: 4 рельсы из 5.

Padrino

Краткое описание: веб-фреймворк, основанный на Sinatra и серверном интерфейсе Rack, также является инструментом fullstack-разработки. Он несет те же самые ценности, что и его «голливудское» ядро, поэтому сравнивать его уместнее не столько с Rails, сколько с Hanami.

При знакомстве с Padrino вы «захватите» и Sinatra. Другие преимущества: легкость в использовании, скорость разработки и работы приложения, достаточно богатая экосистема. Пожалуй, это наиболее вероятный второй номер в мире фреймворков Ruby.

Чем может понравиться: легкость, компактность, скорость, а также одновременное изучение 3 популярных Ruby-инструментов за один заход.

Оценка функциональности: 4 рельсы из 5.

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

По приведенной подборке можно сделать вывод, что в мире Ruby есть Rails и все остальные. Это действительно так, но это не отменяет того, что попыток посягнуть на престол было и остается много. Вот еще несколько:

Merb — был когда-то такой славный конкурент у Rails, но потом разработчики решили, что не враги они друг другу, а коллеги. В итоге объединились с «рельсами» и создали Ruby 3.

Camping — микро-фреймворк, исходный код которого умещался на одном листе формата А4. Реализует интерфейс CGI, но функциональность при этом невероятно низкая.

NYNY — схожий с Sinatra веб-фреймворк, отвечающий за разработку ядра. Плюсом является возможность взаимодействия с Rails и все тем же Sinatra, использование Rack в качестве интерфейса.

Scorched — еще один невероятно легковесный фреймворк, работающий по принципу DRY. Не слишком популярен из-за практически полного дублирования Sinatra по функционалу.

Cuba — элегантная попытка создать фреймворк для разработки real-time приложений с чистым кодом и минимально возможным количеством задействованных файлов.

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

Урок 1: «Рубин нужен не только для лазера»

Внимание! Уроки начинал писать еще в 2012 году, когда на RoR был хайп. Сейчас RoR не востребован от слова «совсем». Вакансий крайне мало в российском сегменте. За границей на него спрос еще остался, но он затухает. Язык довольно-таки интересный, но, спрос на него будет неуклонно падать.Так что имейте это в виду (октябрь 2020 года)

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

Естественно, что для того, чтобы создавать сайты на RoR, нужно уметь программировать на самом языке Ruby. К своему неудовольствию, я обнаружил, что литературы, посвященной этому языку крайне мало. Это и побудило меня начать цикл уроков, посвященных программированию на Ruby с последующим переходом на рельсы (on Rails).

Итак, приступим. Для начала программирования нам понадобятся интерпретатор языка Ruby. Да-да, это очередной интерпретируемый язык, чтобы вы знали. А это означает полную переносимость кода. Тем не менее, нужно сразу оговориться об особенностях этого интерпретатора. Изначально сам Ruby был заточен под .nix системы и у него было крайне много проблем в Windows, особенно при использовании onRails. Сейчас ситуацию в Windows изменили в лучшую сторону, но, тем не менее, все же советую для коммерческой разработки использовать виртуальную машину с Ubuntu или Mint, если вы сидите под виндовс. В дальнейшем, когда мы закончим основы самого языка и накачаем мышцы для перехода на onRails, то лично я уже буду отталкиваться от никсовой системы, хотя и буду показывать, как многое можно сделать в Windows. Тем не менее, имейте в виду эту особенность платформы.

К счастью, Ruby обзавелся русским комьюнити. Скачать интерпретатор языка вы сможете с https://www.ruby-lang.org/ru/downloads/. К слову сказать, раньше интерпретатор для Windows поставлялся вместе с достаточно хорошей книжкой по языку Руби. Теперь книги уже нет, но сам сайт стал гораздо удобнее и обзавелся внятной документацией и многими «плюшками». Крайне рекомендую поизучать данный сайт. Для тех же, кто сидит на маках и линуксах, там описано, как установить систему нужные гемы (пакетные библиотеки ruby). В рамках основ Ruby я на этом останавливаться не буду, так как уверен, что 90% читателей этих уроков работают на Windows.

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

Запустить irb можно либо набрав одноименную команду в командой строке или же найти соответствующий ярлык в папке с программами.


Итак, запустив Interactive Ruby, мы наберем следующую команду:

puts “Привет программисту на Ruby!”

И нажмем на Enter. У вас должно получиться такое:

Знаю, что данное выражение набило оскомину, но нужно же с чего-то начинать?! Тем не менее, не стоит злоупотреблять русским текстом. Интерпретатор этого не любит и у вас будут выводиться всякие «квакозябры», если вы это не вбиваете в самом irb.

Для написания и отладки скриптов Ruby лучше использовать специализированные редакторы или IDE. Можно использовать RubyMine от JetBrains, но он платный. Подойдет для написания и SublimeText, однако он обладает вышеназванным недостатком лично я в дальнейших уроках буду использовать бесплатный редактор кода MS Visual Studio Code. Он бесплатный, кроссплатформенный и при помощи различных расширений из него можно сделать практически полноценную студию разработки своих программ на Ruby.

Скачать Visual Studio Code вы можете с https://code.visualstudio.com/. Установка простая абсолютно для всех поддерживаемых операционных систем. Добавление расширений для работы с Ruby не должно вызвать проблем и находится в соответсвующем пунке меню редактора. Для тех, кто все же не хочет тратить время на поиск всех этих пунктов, рекомендую просмотреть вводный видеоурок, где я также рассказываю, как подготовить среду для разработки своих скриптов.

Скачав и установив Visual Studio Code, теперь можно создать новый файл и вбить в нем текст:

И сохранить его с расширением .rb и названием Hello. В моем примере я поместил его в корень диска C и могу его теперь вызвать в Windows так:

ruby C:\Hello.rb

Или же можно все эти скрипты запускать в том же Visual Studio Code (если вы его настроили правильно) и RubyMine. Тут вопрос удобства.

Пока все. Мы настроили среду разработки и написали первый скрипт. Урок 2 будет посвящен уже синтаксису языка.

Вводное занятие по Ruby. Это будет самое длинное видео в этой серии уроков. Расписал полезные моменты по минутам для улучшения навигации

Дополнение от 22.04.2020

Этот цикл уроков я начал в 2012 году. Не зная, сколько просуществует блог, старался писать обобщенно по языку, ведь конструкции не будут изменяться в разных версиях языка.

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

Почему стоит переходить на Ruby и Rails

От автора и предисловие:

Доброго времени суток всем постоянным и не постоянным читателям блога bitby.net. Хочу поздравить вас со сменой дизайна, по мне, так он стал лучше и текст стал более легко воспринимаемым.

Я являюсь новичком в Ruby, тем не менее я имею достаточный опыт программирования на PHP. От того, чтобы я стал php-гуру меня спас один мой друг — опытный программист на php, Python, Ruby, который и посоветовал мне Ruby. Я долго сомневался, а стоит ли браться за изучение чего-то нового, отправлять те знания и опыт, которые у меня уже имеются в топку и заниматься изучением нового языка программирования. Тем не менее аргументы в пользу Ruby и Rails были очень убедительными и вот я стал Рубистом. В помощь себе и другим людям желающим изучить Ruby и Rails я создал блог Разработка на Ruby и Ruby on Rails с нуля , надеюсь он сослужит добрую службу всем новичкам.Кстати, для желающих изучить работу в Rails я начал готовить учебник Ruby on Rails , пока что на основе переводных статей.

В этом посте я хочу познакомить вас с Ruby и Rails и рассказать, почему стоит выбрать именно этот язык программирования и этот веб-фреймворк.

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

Ruby – сверх динамический, объектно-ориентированный язык программирования, который был создан опираясь на утверждение «Язык программирования должен быть удобен для человека, а не для машины!» Таким образом, Якихиро Мацумото в 1995 году явил миру первую публичную версию Ruby. На данный момент Ruby дорос до версии 1.9.2 и имеет множество отличительных черт и достоинств, которые делают Ruby весьма мощным и удобным языком программирования, позволяющим создавать достойные приложения в разы быстрее, чем при использовании языков программирования более низкого уровня.
Ruby on Rails – великолепный веб-фреймворк написанный Девидом Хэйнемеером-Хенсcоном на Ruby, за что DHH (так прозвали Девида в Ruby-сообществе) получил в OSCON звание «Hacker of the Year». Фреймворк Rails сочетает в себе все передовые технологии, идеи и паттерны проектирования, благодаря чему разработка на нем становится в разы проще и быстрее. В конце 2008 года команда разработчиков другого мощного фреймворка на Ruby – Merb объединилась с командой Rails для совместной работы над проектом Rails 3. На данный момент уже выпущен релиз-кандидат Rails 3. Rails3, по заявлению авторов, должен был вобрать в себя все лучшие стороны Merb, например, модульность, гибкость, расширяемость. Судя по тому, что нам представляется в релиз-кандидатах Rails3, можно сказать, что авторам Rails и Merb удалось сделать Rails3 модульным и более удобным для разработчиков.

Мастер Йода рекомендует:  4 способа добавления субтитров в AVI-файлы

Почему стоит переходить на Ruby и Ruby on Rails

1. Агресивность рынка веб-разработки. В последнее время рынок веб-разработки очень сильно вырос, выросла и конкуренция. Rails позволяет разработчику в разы быстрее выполнять заказ, при этом экономятся человеко-часы и значительно снижается себестоимость. Благодаря этому разработчики за то же время могут выполнить большее количество работы (заказов), и снизить цену не в ущерб качеству работы.

2. Весьма большое, развивающееся сообщество. Стоит признать, что сообщество Ruby не такое большое, как у Python и тем более PHP. Однако профессионализм членов сообщества впечатляет. Не стоит бросаться туда, где больше людей, стоит идти туда, где люди лучше. Не стоит идти на поводу известной пословицы: «Миллиарды мух не могут ошибаться, в PHP все-таки что-то есть» (пословицу я немножко перефразировал).

3. Огромное количество готовых библиотек и кода. На данный момент Ruby отлично обеспечен библиотеками для работы со сторонними разработками, такими как базы данных: MySQL, PostgreSQL, MongoDB, SQLite и т.д., различные веб и не-веб сервера, библиотеки для работы с графикой, звуком, видео и т.д. Ruby не просто язык написания скриптов — это полноценный язык программирования. На данный момент сообществом создано более 900000 gem’ов (GEM – так называются расширения Ruby), которые значительно ускоряют и упрощают разработку, ведь возникшую у вас проблему, уже кто-то решил до вас, причем с 99.99% вероятностью, что решение этого человека значительно лучше того, что могли бы предложить вы. Стоит упомянуть о множестве gem’ов и плагинов созданных специально для Rails, это опять-таки позволяет вам экономить время на разработку и собственные нервы на написание велосипедов.

4. Ето же Rails! Ruby on Rails, или просто RoR – это самый популярный Ruby –фреймворк для разработки веб-приложений. Множество программистов завидуют ruby’стам за то, что те имеют такой мощный, и в тоже время, простой инструмент. Не стоит забывать о том, кто является разработчиками Rails!

5. Ruby – это не только Rails! У новичков часто слаживается впечатление о том, что Rails – это единственное преимущество Ruby над PHP, Perl, Python, Java… На самом делеэто не так! Ruby используется в администрировании, в прототипировании, в научных исследованиях, в разработке игр и различных приложений как язык написания скриптов и т.д. Ruby используют такие компании: Microsoft, HP, NASA, Cisco и т.д.

6. Ruby 1.9! Ruby не лишен недостатков и основным недостатком была крайне низкая скорость работы и большой объем потребляемых ресурсов. С каждой новой версией Ruby оптимизировался и боролся со своими недостатками, и в версии 1.9 мы видем много значительных улучшений. Например, Ruby 1.9 обогнал по производительности PHP, Perl, Python3 (из доклада Ехуды Каца), оставив впереди лишь Python 2. Ruby 1.9 более удобен, разумен и быстр.

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

Почему PHP sucks, а Ruby — мечь Дао веб-разработки

1. Ruby язык общего назначения, а PHP – нет! Ruby используется во множестве областей разработки и научных исследований, моделировании и т.д., а PHP годится лишь для разработки веб-приложений. PHP написан, если не ошибаюсь, на Си, а Ruby по-большей части на Ruby… PHP работает под различными вебсерверами от сторонних разработчиков типа Apache и nginx, а Ruby имеет несколько веб-серверов написанных на самом Ruby, но отлично работает и на Apache, и на nginx, и на LightHTTPd.

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

3. У Ruby очень быстрые темпы развития, у PHP – нет… Новые версии Ruby имеют заметные преимущества над предыдущими, а в PHP 5.3 был добавлен никому не нужный GOTO=)))

4. Создатели Ruby – опытные программисты со всего мира, а создатели PHP – опытные программисты из Zend. Zend нацелены на получение прибыли с PHP (дорогущая ZendStudio и т.д., странно, как это ZendFramework не стал платным, но думаю, это дело времени), разработчики Ruby – безумные фанатики занятые разработкой оружия порабощения всего мира!=)

5. Ruby on Rails vs ZendFramework. Сами понимаете … CakePHP, Lithium Framework – жалкие попытки создать Rails на PHP. CI, Kohana, Yii – недоZendFramework.

6. Сообщество Ruby – в большинстве своем опытные программисты с желанием и возможностью помочь новичкам. Сообщество PHP – 80% школота, 19% — программисты среднего уровня из мелких и среднего размера студий. Коду на Ruby можно доверять, код на PHP необходимо тщательно проверять.

7. PHP –разработчики аргументируют то, что PHP лучше тем, что на PHP написано множество огромных проектов с чуть-ли не миллиардными аудиториями. На самом деле стоит понимать, что при разработке таких проектов используется целый зоопарк языков программирования. Vkontakte и Facebook можно было бы написать на Ruby в несколько раз быстрее, а узкие места также оптимизировать на Си, Erlang’е и т.д.

Кстати, на Ruby были разработаны: Twitter, Scribd, YellowPages, Groupon, а из русского: серверная часть приложения Вконтакте – ЛицеМер, которое находится на 2м месте по популярности, соцcеть LookAtMe и многое другое. Стоит упомянуть, что ориентировочно, каждый 2й стартап в США создается на Ruby on Rails, здесь Ruby и PHP идут практически вровень.

Недостатки Ruby по сравнению с PHP: малое количество документации на русском языке и маленькое русскоязычное сообщество. Тем не менее, существует русский перевод отличной книги «Programming Ruby», а также перевод книги «The Ruby Way» — “Программирование на языке Ruby” авторства Хэла Фултона. Еще один перевод замечательной книги, но уже совсем для новичков, доступен онлайн: « Learn to Program ». Учите английский и читайте мой блог Разработка на Ruby и Ruby on Rails с нуля =)

Ruby on Rails — Создание простого приложения. Часть 1

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

Создаем наше приложение командой rails new TodoApp и переходим в появившуюся папку TodoApp , запускаем команду bundle install .
Приложение создано, теперь нам нужно сделать хоть минимальное описание функций, чтобы хоть минимально понимать принцип работы нашего приложения.

И так, с помощью TodoApp мы сможем:

  • Добавлять, удалять, редактировать заметки
  • Отмечать о выполнении
  • Отображать только выполненные или невыполненные задачи

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

Создание модели

Модель — это то, как объект будет выглядеть в базе данных, какие поля будет иметь и как они будут называться. Создадим модель task с полями title, text, status: rails g model task title:string text:text status:boolean .
Откроем файл в директории db/migrate и добавим к полю status значение по умолчанию — 0.

Модель готова, теперь нужно перенести модель в базу, выполняем: rake db:migrate . Миграция создается автоматически при создании модели, а предыдущая команда применяет все настройки в базе — создание таблиц и полей ориентируясь указаниям описанным в файлах которые расположены в директории db/migrate .

Контроллер и представления

Контроллер нужен для того, чтобы обработать запрос пользователя, выбрать нужные данные и передать их через представление пользователю. Создание контроллера выполняется командой: rails g controller Tasks . Эта команда создаст файл контроллера app/controllers/tasks_controller.rb , в котором мы и будем описывать различные действия. Каждый метод объявленный в этом файле соответствует конкретному представлению.

Поэтому первым делом мы объявим корневое представление, та страничка, которую пользователь увидит зайдя на сайт. Открываем папку app/views/tasks и создаем в ней файл index.html.erb . Запишем в этот файл какой-то текст, не важно, для теста нам хватит. Открываем файл контроллера и объявляем метод с именем index .

Приведя файл к виду:

Файлы созданы, метод есть, однако страница сама не отобразится после того как вы откроете сайт, приложению еще нужно указать какое представление использовать в качестве главной страницы. Откроем файл config/routes.rb и приводим к виду:

Тут все предельно просто, root — говорит нам, что данное представление будет использоваться как главная страница и пользователи при заходе на сайт будут видеть её. Tasks — это контроллер и index — это метод контроллера.

Запускаем сервер командой — rails s и открываем url http://localhost:3000/ . У вас должна появится страничка с текстом который вы указали в файле app/views/tasks/index.html.erb , если конечно все сделали правильно ��

Создание формы

Форма для добавления у нас будет очень простой, имеет 2 поля, это Title и Text . Поскольку почти все действия у нас будут происходить на главной странице, поэтому форму мы добавим в файл index.html.erb .

В файле контроллера, отредактируем метод index приведя к такому виду:

Этим мы создадим и поместим объект нашей задачи в переменную и сможем в дальнейшем работать с ней.

Добавляем строчку в файл config/routes.rb :

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

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

Добавление заметок

Чтобы с помощью нашей формы мы могли добавлять новые задачи, в контроллере tasks нужно создать пару методов. Приводим файл app/controllers/tasks_controller.rb к следующему виду:

Метод create отвечает за сохранение данных полученных из формы в базу. Приватный метод tasks_params указывает какие параметры(поля формы) разрешены для добавления/изменения. Другими словами, при попытке передачи параметра которого нет в списке permit() . При успешном сохранении мы можем вывести на странице сообщение, однако это нам пока не нужно. Теперь задачи могут быть записаны в базу.


Как вы заметили, в методе index я добавил строчку @tasks = Task.all . Она нужна для отображения всех задач на этой странице, если вы хотите все задачи отображать в другом месте, нужно будет добавить такую строку в другой метод контроллера.

Отображение задач

Откройте файл app/views/tasks/index.html.erb и добавьте следующее:

Самый простой вывод информации, оформлением мы заниматься не будем, это вы сможете сделать сами �� В цикле просто выводим название и текст заметки.

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

Язык программирования Ruby

Введение

Ruby — один из самых молодых языков программирования. Его создатель Юкихиро Мацумото (Yukihiro Matsumoto, также известный под псевдонимом Matz), профессиональный японский программист, рассказывает: > Название языка происходит от имени драгоценного камня рубина (по аналогии с другим широко распространенным языком программирования Perl: pearl — жемчуг).

Вот как характеризует Ruby его автор: > [1].

В Японии Ruby стал популярным с момента появления первой общедоступной версии в 1995 году, однако наличие документации только на японском языке сдерживало его дальнейшее распространение. Лишь в 1997 году появилось описание Ruby на английском языке, а в 1998 году открылся форум ruby-talk. С этого момента Ruby начал свое шествие по всему миру. За последний год появились три англоязычные книги, посвященные ему (см. [2-5]), хотя на русский язык, к сожалению, ни одна из них еще не переведена. Сейчас Ruby входит в большинство дистрибутивов ОС Linux, доступен он и пользователям других операционных систем.

Заметим, что данная статья не является справочным руководством по языку. С кратким введением можно познакомиться в электронном учебнике [6], а более полная информация может быть найдена в [7] и [8], а также на уже упомянутых выше сайтах сети интернет. Основная цель статьи — дать людям, уже знакомым с различными языками программирования, общее представление об особенностях Ruby, показать его мощь и красоту, объяснить, что он одинаково хорош и как первый язык программирования, и как средство для работы профессионального программиста и системного администратора.

Программисты говорят о Ruby

В этом разделе мы изложим собранные из различных источников высказывания о языке Ruby, отложив на некоторое время рассмотрение примеров, иллюстрирующих их. Большая часть вопросов, которые будут затронуты, предполагает наличие определенных знаний у читателя в области теории языков и объектно-ориентированного программирования. Легче всего понять Ruby тем, кто знает Smalltalk, Lisp, C, C++ и Perl. > набор из Perl, Java и C++ тоже является весьма хорошей стартовой позицией для изучения Ruby.

Тем же, кто не может похвастаться подобными знаниями, весьма приятно будет узнать, что

Во введении мы уже цитировали Юкихиро Мацумото — создателя Ruby. Вот что еще он сам говорит об этом языке. Итак, Ruby

* имеет простой синтаксис;

* поддерживает обработку исключений;

* позволяет переопределять операторы;

* является чисто объектно-ориентированным языком (complete, full, pure object oriented language), в котором, в отличие от Java или Perl, все — объекты;

* позволяет работать с целыми числами произвольной величины;

* не требует объявления переменных;

* использует префиксы (@, $, @@) для задания области видимости (scope) переменных;

* поддерживает многопоточное программирование.

Одной из первых работ, привлекших внимание к Ruby, была уже несколько устаревшая статья Хала Фултона (Hal Fulton) >. Вот некоторые из них.

Ruby является динамическим языком. В отличие от статических языков, подобных C++ или Java, методы и переменные в Ruby могут быть добавлены или переопределены во время выполнения программы. Это позволяет, например, обойтись без директив условной компиляции #ifdef, необходимых для языка C. Здесь проявляется сходство Ruby с такими языками, как Lisp и Smalltalk.

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

В Ruby имеется возможность работы с регулярными выражениями. Когда-то они использовались только в некоторых утилитах UNIX-систем (grep, sed, vi). Затем, благодаря языку Perl, значительное число людей признало их мощь при обработке текстов. Ruby дает возможность использовать эту силу с еще большей легкостью.

Помните известную фразу Исаака Ньютона >? Ruby, безусловно, >, среди которых Smalltalk, CLU, Lisp, C, C++, Perl, Kornshell и другие языки. В Ruby собрано все лучшее, что накоплено человечеством в области языков программирования. При этом соблюдены следующие три принципа: не изобретать колесо, не чинить не сломанное, использовать имеющиеся у программистов знания и опыт. В Ruby пригодятся и знания о файлах и потоках из ОС UNIX, и спецификации функции printf из стандартной библиотеки ввода/вывода языка C, и умение работать с регулярными выражениями в Perl.

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

Ruby — универсальный и гибкий язык. С его помощью можно одинаково изящно реализовать как то, что традиционно делается с помощью интерпретатора Kornshell, так и то, что пишется обычно на C.

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

Для языка Ruby уже написано большое число библиотек. Потоки, сокеты, объекты, сохраняемые между запусками программ, CGI-программы, базы данных, GUI — все это можно использовать, программируя на Ruby.

Дэйв Томас (Dave Thomas) и Энди Хант (Andy Hunt), соавторы первой книги по Ruby, вышедшей на английском языке, в интервью журналу «Dr. Dobb’s Journal» (январь 2001) говорят: > Фактически это означает, что Ruby — естественный и практически неизбежный результат эволюции современных языков программирования. Авторы данной статьи согласны с такой точкой зрения.

Хочется подчеркнуть, что Ruby не является панацеей для решения всех проблем программистов. Не следует отказываться от использования языков Java и C++ там, где их применение оправдано. С другой стороны, не разумно недооценивать возможности практического применения Ruby в реальных проектах.

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

Начнем с языка Java:

* Ruby — интерпретируемый язык;
* в Ruby все является объектом (в Java есть типы int и Integer, что создает определенные неудобства);
* переменные в Ruby не являются статически типизированными и не требуют объявления;
* модули (modules) в Ruby позволяют с помощью > (mixins) конструировать подобие интерфейсов (interfaces) языка Java, допуская при этом в них реализацию методов.

Теперь сравним с языком Perl:

* Ruby значительно легче освоить, на нем легче программировать, а написанные программы проще сопровождать;
* в Ruby префиксы (@, $, @@) описывают область видимости (scope), а не тип переменной;
* Ruby позаимствовал из языка Perl регулярные выражения, переменную $_ и многое другое.

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

Мастер Йода рекомендует:  Аналитики предсказывают конец электронной почты

* управляющие конструкции и методы в языке Ruby завершаются ключевым словом end, в то время как Python использует так называемый > синтаксис, когда признаком завершения является изменение количества лидирующих пробелов в очередной строке программы;
* вместо self в Ruby для обозначения переменных экземпляра используется префикс @;
* в Ruby, в отличие от языка Python, понятия типа и класса являются синонимами;
* Python не поддерживает наследования и не позволяет добавлять методы к существующим типам;
* используемый в Ruby алгоритм сборки мусора позволяет проще писать реализации методов на языке C;
* расширения для Ruby, написанные на C/C++ позволяют определять новые классы;
* зачастую Ruby быстрее, чем Python.

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

Программисты пишут на Ruby

Начнем с примеров, показывающих, что знание библиотек ввода/вывода языков C и C++ пригодится и в Ruby.

Специальная глобальная переменная $_ всегда содержит результат последней операции чтения. Она же используется как аргумент по умолчанию во многих конструкциях. Следующая программа, например, печатает все строки из входного потока, которые содержат слово Ruby.

Ruby-стиль, однако, рекомендует использовать итератор each:

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

Вот как выглядит на Ruby программа вычисления факториала числа, указываемого в качестве аргумента командной строки:

Для вычисления с помощью этой программы, размещенной в файле fact.rb, значения 100! достаточно выполнить команду ruby fact.rb 100.

Три программы, рекурсивно вычисляющие 30-е число Фибоначчи, приведенные ниже, позволяют сравнить производительность интерпретаторов Ruby, Python и Perl.

Еще одна классическая задача — определение с помощью решета Эратосфена списка всех простых чисел, не превосходящих заданного (100 по умолчанию).

В качестве следующего примера рассмотрим решение на языке Ruby задачи, которая часто предлагается студентам первого курса, изучающим языки C/C++: для заданного текстового файла определить число вхождений в него каждого из встречающихся в нем слов. Использование ассоциативных массивов и ряда стандартных методов работы с файлами и строками позволяет написать чрезвычайно краткую и ясную программу.

Приведем два простых примера использования стандартной библиотеки классов. В результате выполнения первой программы будет найдено, что 7/8+1/8=1, а 7/8*1/8=7/64; вторая из них вычислит (1 + i)64.

Без подробных объяснений приведем две эквивалентные программы, иллюстрирующие переопределение оператора [] для класса SongList. Ассоциативный массив (associative array, hash или dictionary) допускает индексирование произвольными объектами, а не только целыми числами. В данном случае оператор [] позволяет находить нужную песню не только по номеру, но и по ее названию.

Так как Ruby унаследовал лучшие особенности многих языков, то для выполнения достаточно стандартных действий обычно имеется несколько разных возможностей. Вот 13 (!) различных способов напечатать числа от 0 до 9:

В заключение вопрос для тех, кто не знает языка Ruby: что напечатает следующая программа?

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

Ruby и новички

Этот язык, несомненно, является одним из лучших в качестве первого языка программирования. Быстрый цикл разработки (редактирование — запуск — редактирование), использование интерпретатора, изначальная объектно-ориентированность, нетипизированные переменные, которые не требуют объявления, — все это позволяет учащимся сконцентрировать свое внимание на общих принципах программирования.

Не менее важны мультиплатформенность Ruby и его принадлежность к миру свободно распространяемого ПО. Еще один весомый аргумент в его пользу — возможность практического использования языка в самых разных областях, что не позволит впоследствии профессионалу, который вырастет из новичка, пожалеть о напрасно потраченном времени.

Можно заметить, что значительному числу перечисленных выше требований удовлетворяют и Python, и Java, и C++ и даже (в меньшей степени) Delphi. Последний из них, правда, является коммерческим продуктом, что автоматически должно было бы повлечь исключение его из рассмотрения. Однако в России даже среди организаторов олимпиад по программированию для школьников находятся люди, утверждающие, что стоимость дистрибутива Delphi составляет около 70 рублей!

Язык C++ практически никто и никогда не рекомендовал в качестве первого языка — слишком он сложен. Java, наоборот, используется как первый язык, достаточно часто. Python сейчас рассматривается многими как неплохой кандидат на эту роль.

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

Аналогичную программу на Ruby долго объяснять не придется:

puts «Здравствуй, мир!»

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

В отличие от языка Java в Ruby нет проблемы > чисел. Приведенные выше программы вычисления факториала числа или чисел Фибоначчи, будучи написанными на Ruby, всегда дают верный результат. В случае же языка Java ограничения на диапазон представимых целых чисел приводят к нелепым (с точки зрения ученика школы или студента первого курса) равенствам типа


Неприятная неожиданность для человека, только приступающего к изучению программирования!

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

Компактность дистрибутива Ruby и простота его установки в любой операционной системе позволяют школьнику или студенту без проблем работать на домашнем компьютере. Опять сравнение не в пользу Java!

Язык Python по многим параметрам похож на Ruby. Из приведенных выше различий этих двух языков для рассматриваемой нами ситуации начального обучения программированию особенно значимым оказывается > синтаксис, используемый в языке Python. Эта особенность не является изначально понятной и на первых порах мешает. Вообще, основным аргументом в пользу Ruby в качестве первого языка программирования является именно его интуитивная ясность и предсказуемость, а не многие другие его преимущества.

Ruby и профессионалы

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

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

CGI-скрипты, формы, работа с > (cookies) — это только начало. Программы на Ruby могут быть внедрены прямо в HTML, что эквивалентно использованию таких средств, как ASP, JSP или PHP. При этом сохраняется вся мощь Ruby, а для повышения производительности можно использовать специальный модуль для Apache.

Ниже приведена программа, иллюстрирующая Tk расширение языка Ruby. Левая кнопка мыши позволяет рисовать прямые линии, а правая — создавать Postscript-файл с построенным изображением.

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

Заключение

Выпускники МГИУ специальности 2204 этого и предыдущего годов (многие из которых являются сейчас аспирантами) могут обнаружить, что язык Ruby во многом похож на известный им по занятиям на первом курсе язык C-Talk. Этот язык, который разрабатывался в нашем университете группой программистов под руководством Игоря Вячеславовича Абрамова (см. [9-11]), был основан в значительной мере на тех же самых идеях, которые взяты в качестве основополагающих автором Ruby.

Осенью 1997 года студенты-программисты в нашем университете начали изучать язык Java. МГИУ был тогда единственным вузом в Москве, в котором первым языком программирования стал этот ныне общепризнанный язык.

Сейчас к связке языков Java и C++, двух основных языков современных профессиональных программистов, мы добавляем Ruby, с которого и начнется знакомство в новом учебном году первокурсников с миром программирования. Очень хочется верить в то, что и на этот раз наш выбор не окажется ошибочным.

Можно ли научиться программировать на Ruby on Rails с нуля за 4 месяца

Научиться кодить на Ruby on Rails за четыре месяца вполне реально, утверждают ребята из компании «Хороший программист». С 3 октября стартует их онлайн-интенсив по Ruby on Rails. Его создатели обещают, что старательные ученики даже с нулевыми знаниями кодинга к 22 января станут продвинутыми junior-разработчиками и смогут трудоустроиться. Давайте разберёмся, на чём основана их уверенность.

Освоение Ruby on Rails начинается с азов программирования

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

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

Много практики и реальное портфолио на выходе

На практических жизненных примерах вы изучите всё, что нужно веб-программисту: протоколы, JavaScript, HTML, CSS, ООП, XML, JSON, SQLite, Bootstrap, Ruby, Ruby on Rails, тестирование. Даже если сейчас для вас это какая-то тарабарщина, к концу года вы будете хорошо понимать, что скрывается за этими словами. А по окончании курса сможете гордо демонстрировать портфолио из 12 полноценных Ruby- и Ruby-on-Rails-приложений. К слову, это сейчас один из самых востребованных веб-фреймворков: Ruby on Rails использовался при создании Twitter, Airbnb, Groupon, Basecamp и тысяч других стартапов.

Также вы подготовите дипломный проект: реализуете свою собственную идею с помощью преподавателей курса.

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

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

И на сладкое — отзыв выпускника прошлого потока. Больше отзывов можно прочитать на Rubycourses.ru.

Очень грамотно сделанный курс, от самых основ и до собственных работающих приложений на Ruby on Rails. Материал подаётся очень хорошо, понятно и с юмором. Домашние задания помогают хорошенько закрепить пройденный материал. Все задания тщательно проверяются авторами, всегда можно рассчитывать на то, что всё, что непонятно, вам объяснят, на все вопросы найдут способ ответить, так что непонятного не останется. Удачи «Хорошему программисту». И много новых интересных курсов!

Наставники поддерживают вас во время курса и после окончания

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

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

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

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

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

Почему Ruby / Ruby on Rails?

Нас в Evrone.ru часто спрашивают: “Почему вы выбираете именно Ruby?”. В этой статье мы постараемся ответить на этот вопрос.

Ruby — динамический, рефлективный, интерпретируемый высокоуровневый язык программирования для быстрого и удобного объектно-ориентированного программирования.

Ruby on Rails — полноценный, многоуровневый фреймворк для построения веб-приложений, использующих базы данных, который основан на архитектуре Модель-Представление-Контроллер (Model-View-Controller, MVC).

Разработчики

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

Основные преимущества Ruby / Ruby on Rails

Скорость разработки

Основным преимуществом языка программирования Ruby и фреймворка Ruby on Rails считается скорость разработки. Практика показывает, что скорость разработки проектов на RoR увеличивается на 30–40 процентов по отношению к любому другому языку программирования или фреймворку. В первую очередь прирост скорости разработки определяется обширным набором готовых к работе штатных инструментов RoR, колоссальным набором готовых решений в сообществе, языку Ruby и простоте программирования на нем.

Одной из важнейших частей культуры RoR является социальность. Решил проблему, — помоги решить другим. Реализовал свой модуль, — поделись с сообществом. Таким образом, на данный момент в открытом доступе хранятся тысячи готовых решений тех или иных задач. Системы аутентификации, авторизации, комментирования, системы платежей, почтовые рассылки и многое другое (все то, что обычно разрабатывается «с нуля») внедряются реализованные кем–то другим, протестированные и рекомендованные многочисленным сообществом.

Культура и стандарты

Ruby on Rails — это фреймворк. Зачастую фреймворк не позволяет вам самодеятельность. Конечно же, в Ruby on Rails можно «изобрести свой велосипед» и программировать в любых направлениях, не опираясь на стандарты; но зачастую этого не требуется. Стандарты размещения файлов в проекте, стандарты написания кода в проекте, общие правила программирования в Ruby on Rails сильно структурируют любой проект. За счет этого проект становится читаемым. Вхождение в проект новичков происходит очень быстро. Опыт показывает, что любой новичок в проекте в первый же день работы делает свои первые полезные правки. За счет этого не считается большой проблемой, если разработку проекта изначально вела одна команда программистов, а поддержку проекта или доработку — совершенно другая. Проект на RoR априори понятен любому разработчику.

Некоторые приятные инструменты разработки

Тестирование

При разработке любого крупного проекта встает резонный вопрос. Как и кто будет тестировать проект? Не всегда есть средства и желание создавать целые отделы тестирования, к тому же хочется автоматизировать этот процесс. В отличие от других фреймворков, в составе RoR есть отличные средства автоматизированного тестирования. В других языках программирования и фреймворках штатных средств тестирования нет. Конечно, есть сторонние разработки, позволяющие организовать автоматическое тестирование проекта на PHP, но они не ставятся “из коробки” и об их использовании программисты чаще не задумываются. В проекте на Ruby on Rails, в идеале, код проекта не пишется до тех пор, пока под этот код не написаны тесты. RoR идеология предполагает изначальное использование методов BDD (Behavior Driven Development) или TDD (Test Driven Development).

Кеширование

Кеширование проектов — один из важнейших этапов разработки крупного интернет–проекта. В PHP имеются различные варианты кеширования данных. Эти варианты и инструменты прикручиваются, пристраиваются, приделываются, прикрепляются сбоку. До сих пор в сообществе PHP нет единого мнения: что лучше использовать, как лучше кешировать данные, какими инструментами пользоваться.

Ruby on Rails в его базовой комплектации имеет штатные средства кеширования данных. На старте предоставляются инструменты, позволяющие реализовать кеширование данных на проекте. Вы можете кешировать целые страницы или же блоки кода. Можете кешировать результаты запросов и ActiveRecord–модели. Кешировать можно как при помощи memcached или redis, так и другими средствами. Для реализации кеширования на Ruby on Rails проекте вам в 95 процентах случаев не потребуется ничего кроме уже готовых и штатных решений.

Локализация

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

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

Роутинг (красивые урлы или ЧПУ)

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

Валидации

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

Миграции и работа с базой данных

Обыденная проблема многих проектов на PHP — невозможность понятными средствами и инструментами контроллировать структуру базы данных. Изменения в структуру зачастую вносятся вручную и прямо в базу. Из–за этого в проекте появляются многочисленные непонятные поля и таблицы, про которые уже никто ничего не помнит. В Ruby on Rails существуют штатные инструменты работы с базами данных — «миграции». Структура базы данных хранится в коде приложения и конфигурируется из проекта. Ваша структура будет всегда в репозитории, любое изменение структуры будет задокументировано и привязано к определенному коммиту в репозиторий.

Безопасность

Ruby on Rails по умолчанию сильно заточены под безопасность проекта. При использовании инструментов RoR исключены SQL инъекции и XSS атаки. Все входные параметры экранируется по умолчанию. Выводимые переменные в шаблонах также экранируются, только если вы не указали обратной опции. У разработчика нет шансов допустить ошибки безопасности (не без исключений, разумеется).

Мастер Йода рекомендует:  NtechLab представила новую систему распознавания лиц под названием FindFace Public Safety

Деплой

В среде Ruby on Rails существует много удобных и приятных инструментов. В том числе инструменты, которые применяются в процессе деплоя. Например, используя Capistrano, выкатка новой версии приложения на боевой сервер (или несколько серверов) потребует одной команды в консоли: cap deploy.

Дополнительные принципы разработки на Ruby / Ruby On Rails

Системы контроля версий

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

Системы управления проектами/таск менеджеры


Ruby on Rails был изначально разработан для того, чтобы реализовать систему управления проектом — Basecamp. Также на RoR был создан Redmine (популярная и бесплатная система управления проектом). Поэтому при работе над Rails проектами «добровольно–принудительно» использование таких систем. Все системы интегрируются с системами контроля версий, что позволяет более гибко регулировать процессы разработки проекта.

Мифы и предрассудки

Разработчиков на Ruby on Rails нет

Начнем с того, что разработчики есть, но они менее многочисленны, нежели разработчики на PHP. Это связано с разным порогом входа в освоение технологии (обычно в Ruby попадают люди после нескольких лет PHP), что говорит о качестве разработчиков. Хороших разработчиков одинаково мало во всех технологиях.

Разработчики на Ruby on Rails стоят очень дорого

Разработчики высокого уровня стоят действительно дорого. Причем они одинаково дорого стоят на любых языках программирования и платформах. В RoR мало дешевых разработчиков из–за отсутствия плохих разработчиков в сообществе (не без исключений, разумеется).

«Рельсы» не масштабируются

Это самое главное заблуждение тех людей, которые не пробовали писать на RoR серьезных проектов. Ruby on Rails прекрасно масштабируются. Посмотрите на GitHub, Groupon, Basecamp и др. Все эти проекты написаны на Rails и все эти проекты имеют любые другие проблемы, но только не проблемы масштабирования (чаще всего проблемы с производительностью баз данных).

Ruby медленнее чем PHP

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

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

Несколько цитат известных в Ruby-сообществе людей

« Ruby on Rails — это прорыв в снижении входного барьера в программировании. Мощные веб–приложения, которые раньше разрабатывались за недели или месяцы, теперь могут быть сделаны за считанные дни».

« Ruby on Rails и PHP — это как Apple Macintosh и PC. Нас мало, но мы элита. Ruby on Rails и PHP — это культура против хаоса. PHP позволяет вам построить свой велосипед из частей других велосипедов, не ориентируясь при этом ни на какую «велосипедную библию». RoR–разработчики более продвинуты, чем любой школьник, которому достаточно прочитать одну книжку и говорить, что он знает PHP. Наш плюс в том, что при всем бардаке PHP, мы более организованны».

«Мой опыт показывает, что в программах, написанных на Ruby, меньше строк, чем в аналогичных программах на языках Java и C#. А чем меньше кода, тем проще его сопровождать, что немаловажно, так как затраты на долгосрочное сопровождение считаются самой крупной стоимостной составляющей успешных программных проектов. Отладка небольших программ занимает меньше времени даже без “навороченных” инструментов отладки».

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

« Ruby on Rails , не прибегая к насилию, принуждает программистов писать более структурированный код. Код на «рельсах» даже без документации можно прочитать и осознать. Проект при этом проще поддерживать различным командам разработчиков. Проект не привязывается к определенному разработчику или команде. У следующих разработчиков проекта не возникает такое знакомое всем желание как “Ничего не понятно! Давайте все перепишем и переделаем по-нашему”».

« Ruby — красивый язык. Кодировать на Ruby приятно. Все мои знакомые, перешедшие на Ruby и Rails, говорят, что стали счастливее. Главным образом, по этой причине Ruby и Rails изменяют статус кво, особенно в области разработки корпоративных приложений. Прежде чем стать приверженцем Rails, я привык работать над проектом с нечеткими требованиями, не имеющими отношения к реальным потребностям. Я устал выбирать между конкурирующими платформами и интегрировать их между собой, устал писать уродливый код. А Ruby — динамический, высокоуровневый язык. Код на Ruby проще читать и писать, поскольку он более естественно отображается на конкретную предметную область и по стилю ближе к естественному человеческому языку. Удобство восприятия имеет массу преимуществ не только в краткосрочной, но и в долгосрочной перспективе, поскольку программа передается в промышленную эксплуатацию и должна быть понятна программистам сопровождения».

« В сообществе Rails нет места принуждению. David Heinemeier Hansson выбрал язык, который доставлял ему радость. Платформа Rails родилась из кода, который представлялся ему красивым. Это и задало тон общения в сообществе Rails. Все в мире Rails субъективно. Человек либо приемлет что–то, либо нет. Но между теми, кто приемлет, и теми, кто не приемлет, нет злобы, а лишь кроткая попытка убедить».

«В начале своей карьеры веб–разработчика, я долго программировал на PHP. Как и любой программист, я дошел до того, что стал писать собственную CMS. Меня постоянно не устраивали те средства, которые предоставляет мне PHP и я придумал свой собственный небольшой фреймворк. В собственном фреймворке я реализовал все так, как мне было удобно. Какого же было мое удивление, когда я увидел Rails. Я понял, что Ruby on Rails очень похож на мой фреймворк, следовательно, в нем реализовали и допилили все то, чего мне так не хватало в PHP. Прибавим к этому огромное сообщество, которое постоянно обновляет рельсы — получаем инструмент, в котором просто удобно и хорошо делать любые веб–проекты. Свой фреймворк я бросил и с радостью перешел на RoR. Считаю, что Ruby on Rails делает программиста счастливее».

Как стать успешным Ruby on Rails программистом

Открытое письмо другу Щмуку.

Это черновик статьи. Когда-нибудь я ее допишу. Она будет доступна в том числе и по этому адресу. Если есть вопросы, или помочь хотите — милости прошу.

Вот ты жалуешься — работу не найти, платят мало.

А с моей стороны все наоборот. Нужны рельсовики, много рельсовиков. Зарплата от 100 000 до сколько попросят. А их нихера нету. Вообще.

Рельсовик-фрилансер берет 150 000 за двухнедельную итерацию. Пиздец. И еще в очередь к нему становятся. И неизвестно, сколько он там проектов за раз берет.

Недавно знакомые менеджеры попросили пособеседовать кандидатов в чужую контору. Ну я не против, чо. Интересно же. Собеседовал троих. Первый ничем не приметился. Третий первый делом сказал: «о, привет, Комар». Здрасте жопа новый год, блять. Второго через две недели нанял мой начальник мне в напарники. Парень слегка охуел, когда снова меня увидел.

На всю Москву три с половиной рельсовика. И пиздец.

Спрос большой, предложения нету нихрена. А знаешь, почему? Вот и я думаю. Фреймворк-то проще некуда.

Есть у него, правда, одна особенность: высокий порог вхождения.

Че ржешь, блять? Вот как-то так и есть. В похапэ красота — наговнил себе index.php , нахуярил инклудов и все сразу работает. А тут какую-то хуйню изучать, модели, блять, контроллеры, миграции, гемы, хуе-мое. Любой долбоеб может почитать трехстраничный мануал по PHP и зарабатывать на свой доширак. А тут, блять, книжку по рельсам в магазине купишь, а в новой версии половину API уже поменяли нахуй. А референц читать — так там все по-английски и непонятно. Средний долбоеб пугается и в ужасе убегает.

Ну так вот. Фреймворк-то проще некуда. Поэтому запиливаю для тебя особый мануал, чтобы ты сразу был enterprise ready специалистом во все поля.

Как стать успешным рельсовиком за две недели

Сначала надо поставить руби

Свой системный пакетный менеджер засунь себе в жопу. Руби — скриптовое говно. А в скриптовом говне постоянно ломается зависимости всего от всего, и поэтому нужно тянуть по сто версий каждого пакета, чтобы хоть что-то работало. А так как ни один системный пакетный менеджер (кроме nix’а, разумеется) не умеет ставить несколько версий одного пакета сразу, то для скриптового говна пишут свои, велосипедные пакетные менеджеры. Ruby — не исключение. Там такой пакетный менеджер называется gem’ом.

Кроме того, нужно будет поставить rvm, чтобы можно было несколько версий интерпретатора одновременно держать.

Набираешь в консоли:

И это говно тебе ставится вместе с рельсами. Потом набираешь source

/.rvm/scripts/rvm , чтобы оно тебе в консоль загрузилось.

Дальше тебе надо скачать книжку для долбоебов посвежее, например, вот эту. Читаешь ее и попутно упражняешья в машинописи. Да, совсем забыл: Ruby отдельно изучать не надо. Хули его там учить, он сам выучиться. Простой язык же ж. Нечего на это время тратить. Время программиста стоит дорого.

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

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

Для начала сходи в магазин и купи себе кеды и макбук. Я серьезно. Вот у меня берцы и хинкпад, и у меня лютые проблемы при взаимодействии с коллегами. Нахуй надо. Ах да, в кедах нужно ходить и зимой. Привыкай.

Потом: забудь нафиг, что ты программист. Если у тебя возникла необходимость решить какую-то проблему — не строй в голове никаких моделей. Не думай о коде. Это совсем не rails-way. Если ты так будешь делать, то у тебя будет похапэ и говно вместо кода.

Когда у тебя возникает проблема — иди в гугол. Сначала набирай «gem проблема». Потому что для решения проблемы уже сто лет как гем написали. Ты думаешь, блять, что вебня — это такая разнообразная поебень охуительной сложности? Ага, щас.

Гемы — это пакеты для руби. Их надо прописывать в Gemfile и после этого набирать команду bundle. Аутентификация, регистрация, посылание говна по емейлу? gem ‘devise’ Разбить выдачу на страницы? gem ‘kaminari’ Ну и так далее.

Ах да, важное правило. Используй только модные вещи. Немодные и упаси Боже старые не бери ни в коем случае. Если ты будешь брать authlogic вместо devise и will_paginate вместо kaminari , то тебе пиздец. Ты потом сам поймешь, почему.

И есть еще несколько вещей, которые ты обязан использовать. Иначе тебе пиздец, опять же.

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

Не ссы, фотошоп осваивать не нужно. Надо только поставить Twitter Bootstrap. Это такой специальный фреймворк для того, чтобы даже самый бородатый программист смог нахуярить верстку, от которой твой менеджер за аймаком будет кончать в штаны. И за айпадом. И за айфоном. Потому что бутстрап, кроме всего прочего, еще и responsive. Я не ебу, как это перевести, но слово охуенное.

Правда, освоить его будет сложновато. Там какие-то контейнеры, хуейнеры, хуй пойми. Не, ну ты потом во всем разберешься, конечно, но не сразу. Работать-то тебе надо вотпрямщас. Время разработчика стоит дорого. Потом разберешься. А сейчас сделай две вещи. Во-первых, поставь себе в фаерфокс плагин firebug. С его помощью ты сможешь жать F12, нажимать там мышкой на стрелочку и наводить курсор на всякие элеметы, а он будет показывать тебе HTML. И CSS. Охуенно. Так вот, с этой нереальной дичью идешь в каталог Built With Bootstrap и пиздишь оттуда любые понравившиеся элементы верстки. Я прямо не знаю, как я без этой хуйни раньше жил.

Во-вторых, в вебне много ебли с формами. Ее много даже с использованием специальной хуйни, которая убирает еблю с формами. Формы, они, блять, такие. Поэтому надо будет поставить еще simple_form , nested_form и cocoon . Короче, прописываем в Gemfile вот такую хуйню:

И запускаем bundle , а затем пишем в сосноль вот это:

И добавляем в app/assets/javascripts/application.js строки:

Все. Теперь с формами проблем не будет. Если ты прочитаешь по странице на гитхабе про каждый гем, конечно. Тепеь набирай git add ./ && git commit -a . Ты git init еще не сделал? Ну мудак, блять.

Как найти достойную работу Ruby on Rails разработчикам

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

Первое что хочу, доходы Ruby on Rails программистов несколько отличаются друг от друга, в зависимости страны в которой они работают. Так к примеру средний заработок Ruby on Rails программиста, работающего в США за год получают — $109.460 ;

Зарплата программиста в России зависит еще от нескольких критериев:
Образование. Немалый плюс для программиста, при приеме на работу, составляет его образование;
Возраст. Идеальным возрастом для программиста считается 23 года;
Опыт. На высокую зарплату может рассчитывать чаще тот программист, за плечами которого есть двух-трех летний опыт работы в реальных проектах.
Личные качества. Хороший программист должен всегда быть в тренде и быть в курсе последних новостей. Поэтому одним из главных качеств программера является способность к самообучению.

В России Ruby on Rails программист получает от 600 до 4000 USD в месяц или от 7000 USD до 5000 USD за год .

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

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

Раз­ра­ботку веб-про ­ек­тов на теку­щий момент эко­но­ми­че­ски целе­со­об­разно вести на одном из сле­ду­ю­щих язы­ков: PHP, Java, Ruby, а также на Python и на базе. NET (это муль­ти­я­зыч­ный фрейм­ворк). И каж­дый из язы­ков имеет далеко не по одному фрейм­ворку, напи­сан­ному на нём. Так в чём же пре­иму­ще­ства выбора языка про­грам­ми­ро­ва­ния Ruby и фрейм­ворка Ruby on Rails с точки зре­ния бизнеса?

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

А вот с точки зре­ния биз­неса раз­ра­ботка на RoR весьма эффек­тивна по сле­ду­ю­щим при­чи­нам:

  • Высо­кая ско­рость раз­ра­ботки — про­екты на Рель­сах раз­ра­ба­ты­ва­ются дей­стви­тельно быст­рее ана­ло­гов на PHP или на Java, это под­твер­ждает и наш опыт, и опыт наших кол­лег по цеху. Обу­слов­лено это как тех­ни­че­скими осо­бен­но­стями фрейм­ворка (напри­мер, про­ду­ман­ные согла­ше­ния упро­щают кон­фи­гу­ра­цию) и инстру­мен­тами для раз­ра­ботки (кон­соль­ные ути­литы и гене­ра­то­ры, гото­вые биб­лио­те­ки, рас­ши­ре­ния и модули). Время раз­ра­ботки — это деньги Заказ­чи­ка, чем больше вре­мени зани­мает раз­ра­ботка — тем она доро­же.
  • Слож­ная биз­ нес-логика проще и про­зрач­нее реа­ли­зу­ется — кон­вен­ции напи­са­ния про­грамм­ного кода на базе Rails поз­во­ляют писать дей­стви­тельно понят­ный про­грамм­ный код, кото­рый впо­след­ствии может быть без про­блем моди­фи­ци­ро­ван в адек­ват­ные сро­ки, а соблю­де­ние этих кон­вен­ций делает про­грамм­ный код сопро­вож­да­е­мым не только изна­чаль­ным раз­ра­бот­чи­ком, но и любым дру­гим спе­ци­а­ли­стом или любой дру­гой коман­дой. Отсут­ствие при­вязки к изна­чаль­ному раз­ра­бот­чику — это очень важ­ная состав­ля­ю­щая про­ек­та, раз­ра­ба­ты­ва­е­мого Заказ­чи­ком силами внеш­ней ком­па­нии, а не соб­ствен­ными сила­ми.
  • Высо­кая надёж­ность и сопро­вож­да­е­мость реше­ний — в Rails-раз ­ра­ботке обычно используется TDD-подход , что делает созда­ва­е­мые реше­ния более ста­биль­ными и сопро­вож­да­е­мыми. Функ­ци­о­наль­ность самого фрейм­ворка также покрыта авто­ма­ти­че­скими теста­ми, что делает его исполь­зо­ва­ние дей­стви­тельно надёж­ным — есть уве­рен­но­сть, что ничего не сло­ма­ет­ся. Для биз­ нес-систем эта состав­ля­ю­щая крайне важна — от ста­биль­но­сти работы при­ло­же­ния часто зави­сит эффек­тив­ность работы биз­неса в целом.
  • Мас­шта­би­ру­е­мо­сть, про­из­во­ди­тель­ность и высо­кие нагрузки — фрейм­ворк «зато­чен» под раз­ра­ботку при­ло­же­ний, к кото­рым предъ­яв­ля­ются высо­кие тре­бо­ва­ния к доступ­но­сти: Rails-при ­ло­же­ния отлично раз­во­ра­чи­ва­ются и рабо­тают в кла­сте­рах сер­ве­ров или в «обла­ках». Для веб-сер ­ви­сов это очень важ­ный кри­те­рий, так как для соб­ствен­ной эффек­тив­но­сти и для при­вле­ка­тель­но­сти в гла­зах поль­зо­ва­теля они должны обла­дать серь­ёз­ным аптай­мом и хоро­шей ско­ростью рабо­ты.
  • Ком­пе­тент­ные раз­ра­бот­чики — доля хоро­ших про­грам­ми­стов на Ruby гораздо выше, чем в мире PHP. Это опять же а осно­ва­нии кол­лек­тив­ного опыта — у нас на собе­се­до­ва­ниях раз­ра­бот­чи­ков на PHP по при­чине низ­кого уровня зна­ний отсе­и­ва­ется больше 90% соис­ка­те­лей, для Ruby-про ­грам­ми­стов этот пока­за­тель суще­ственно ниже. Чем ком­пе­тент­нее раз­ра­бот­чики, тем быст­рее (дешевле) раз­ра­ба­ты­ва­ется про­ект и тем он более про­ду­ман, мас­шта­би­руем и надё­жен.

Мы раз­ра­ба­ты­ваем слож­ные сайты и веб-при ­ло­же­ния на Ruby on Rails — эта плат­форма очень хорошо заре­ко­мен­до­вала себя в сег­менте созда­ния тех­ни­че­ски слож­ных веб-про ­ектов, к кото­рым предъ­яв­ля­ются серь­ёз­ные тре­бо­ва­ния.

Добавить комментарий