Прошлые домены не функционирует! Используйте адрес
ARHIVACH.VC.
24 декабря 2023 г. Архивач восстановлен после серьёзной аварии. К сожалению, значительная часть сохранённых изображений и видео была потеряна.
Подробности случившегося. Мы призываем всех неравнодушных
помочь нам с восстановлением утраченного контента!
===ИЗУЧЕНИЕ ЯЗЫКА===
→→→ C чего мне начать, чтобы стать рубистом?
Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и те же вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby.
А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.
→→→ Следующий уровень, продвинутые книги по руби:
Confident Ruby by Avdi Grimm | Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition | Ruby Under a Microscope
→→→ Онлайн курсы чтобы попробовать/вкатиться:
http://tryruby.org/levels/1/challenges/0/ | https://rubymonk.com/
http://www.codewars.com/?language=ruby | http://rubykoans.com
→→→ Какой gem посмотреть, чтобы понять, как писать код?
Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.
А еще можешь полистать на гитхабе гемы с нарастающей популярностю (там еще нет тысяч строк, и тебе будет легче понять): https://github.com/trending?l=ruby
→→→ Хорошие практики по руби и рельсам?
Обязательно стайлгайды (как оформлять код):
https://github.com/bbatsov/ruby-style-guide
https://github.com/JuanitoFatas/fast-ruby
https://github.com/bbatsov/rails-style-guide
Руководства "для чайников":
https://www.railstutorial.org/book [en]
http://www.theodinproject.com/ruby-on-rails [en] | http://codenamecrud.ru/ [ru]
Для дотошных читателей есть книга The Rails 4 Way.
Как писать код написано в Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.
→→→ Youtube driven development:
Вот тебе пара каналов, но никому не говори что учишься по видео.
https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videos [en]
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ [en]
https://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQ [en]
https://www.youtube.com/channel/UCPIyDzf1vwWc8EQJGUX-vYw [ru]
→→→ Ruby/Rails блоги, рассылки и твитторы
IRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).
Твитторы: @rails, @dhh, @yukihiro_matz, @wycats, @tenderlove
Рассылки: ruby-core, rails-core, rails-talk
Подкасты:
→ https://github.com/AveVlad/russia-it-podcast (ищем по ruby)
Скринкасты:
→ http://railscasts.com | http://railsforzombies.com
→→→ Какие гемы стоит знать?
capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra, тысячи их.
Поиск гемов https://www.ruby-toolbox.com
→→→ Зачем нужны тесты и как их писать?
http://rusrails.ru/a-guide-to-testing-rails-applications
http://habrahabr.ru/post/163597/
Вместо этого можно прочитать классную книгу Everyday Rails Testing
→→→ Документация по стандартным библиотекам руби и рельс:
http://ruby-doc.org/ | http://api.rubyonrails.org
http://guides.rubyonrails.org | http://ruby.railstutorial.org
→→→ Можно ли на руби писать нативные GUI, окошки, мобильные приложения, игры?
Нет. Технически есть проекты, но они старые и никто их не использует в реальном мире. Однако руби применяется как встраиваемый язык в CAD системах например, аналогично тому как lua применяется в играх или питон в каком-нибудь Blender.
→→→ Можно ли писать на руби под windows?
Можно первое время, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим.
Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac.
И отдельно стоит сказать, что Linux придётся учить, потому что основная ниша ruby это back-end разработка и крутится этот бекенд в 100% случаев на Linux.
→→→ Что ещё изучить?
Паттерны. Один из часто используемых - Service Object.
https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах.
Еще паттернов - https://robots.thoughtbot.com/back-to-basics-solid
Но самый читаемый код, как и следовало ожидать, даёт функциональное программирование. Начни отсюда:
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-i/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-ii/
http://www.sitepoint.com/functional-programming-techniques-with-ruby-part-iii/
http://www.sitepoint.com/functional-programming-pure-functions/
http://www.sitepoint.com/functional-programming-ruby-value-objects/
Только не переборщи. Руби - не функциональный язык, и иногда такой код может работать медленней.
Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами.
Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
→→→ Я не могу в английский, что делать анон?
Идти учить английский, без него тут делать нечего.
===СООБЩЕСТВО===
→→→ Есть ли у руби русское коммьюнити?
Можно посмотреть:
→ [email protected] → https://russiandevs.slack.com она общая, но есть очень активный руби канал.
Так же русская гугл-группа, активная -
→ https://groups.google.com/forum/#!forum/ror2ru
→ https://onrails.club/
→→→ Где можно задать глупые и не очень вопросы?
Здесь, stackoverflow.com, тематические slack-конфы, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.
→→→ Как показывать код задавая свои вопросы:
https://pastebin.com/ | https://gist.github.com/ | https://ideone.com/
Тут на борде пиши лишь однострочники, так как многострочный код будет покорёжен при постинге и никто не будет в нём разбираться.
===СРЕДА РАЗРАБОТКИ===
→→→ Как установить разные версии рубей?
Стандарт | лёгкая альтернатива
https://rvm.io | https://github.com/sstephenson/rbenv
→→→ В чём писать код?
TextMate, Vim, Emacs, Sublime Text, Atom, Brackets, VSCode. Толстые IDE: RubyMine, Eclipse/NetBeans с плагинами.
В целом сообщество тяготеет к Vim, а Emacs например использует сам Matz (создатель руби), TextMate был одно время эдаким стандартом для рубистов на маке и DHH (создатель рельс) его активно использовал. IDE приживаются со скрипом в каких-то больших проектах о которых никто не знает. Но вообще не важно в чём писать.
→→→ На какой ОС?
macOS, Debian Testing, Ubuntu LTS/Latest, CentOS, Fedora.
===РАБОТА ЗА ДЕНЬГИ===
→→→ Как и где искать работу?
http://rubyjobs.ru/ (легко и просто) | https://upwork.com/ (не так просто)
группы VK | google groups
→→→ Руби язык одного фреймворка?
Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape. Генераторы для бложиков - Jekyll, Middleman. Отличные штуки для DevOps: Chef, Puppet, Vagrant. Всё это активно используется в продакшене. Есть ещё "хакерский" фреймворк Metasploit.
===ПРИМЕР ПУТИ РАЗВИТИЯ===
И так, ты поставил руби, уже сгенерировал свой первый проект rails new sample-app.
Начни уже с платинового пути, блог, клон твиттера, своя имейджборда, свой гем, дальше сам придумаешь.
1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.
2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)
3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch
4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.