→→→ 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
→→→ Можно ли на руби писать нативные GUI, окошки, мобильные приложения, игры? Нет. Технически есть проекты, но они старые и никто их не использует в реальном мире. Однако руби применяется как встраиваемый язык в CAD системах например, аналогично тому как lua применяется в играх или питон в каком-нибудь Blender.
→→→ Можно ли писать на руби под windows? Можно первое время, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac. И отдельно стоит сказать, что Linux придётся учить, потому что основная ниша ruby это back-end разработка и крутится этот бекенд в 100% случаев на Linux.
Прочитал? Теперь рефактори то, что уже написал. И не забывай покрывать тестами. Хорошим финалом будет деплой, это пожалуй самое болезненное, и ничего общего с деплоем на heroku, где тыц тыц и готово. Придется поковыряться со смежными вещами и узнать много нового, уже устоявшийся гем для таких дел - Capistrano.
→→→ Я не могу в английский, что делать анон? Идти учить английский, без него тут делать нечего.
→→→ Где можно задать глупые и не очень вопросы? Здесь, stackoverflow.com, тематические slack-конфы, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.
→→→ В чём писать код? 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. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.
>>1104084 >>1104127 >>1104098 >И хорошо, что сказал, так никакой другой долбоёб например, ты не сможет где-нибудь посередине эту хуету перезаписать >do_not_write = false # => NoMethodError >Так в этом и суть. Где-нибудь в дебрях или по тупости можно легко перезаписать >Перезаписать, случайно перезаписать, по тупости перезаписать, посередине перезаписать, презаписать, перезаписать, перезаписать.
Ебать ты ущербный. Юра, не ты ли это? Еблан, а ты не боишься метод случайно переопределить или по тупости ретурн не в том месте вызвать?
Инстанс-переменная, это внутреннее состояние объекта, дебик. Где ты видел объекты, которые не меняют состояние? Если переменную нельзя перезаписывать, то это константа или фрозен-объект. А если это переменная, то делать для нее ридеры и райтеры нужно только тогда, когда ты выставляешь свойства наружу. Бред про перезапись тут вообще не к месту. Долбоебы, которые любят ставить атр-акцесоры придерживаются другой логики - якобы задел на будущее, чтобы блять проще рефакторить было, когда за акцессором будет стоять не переменная, а более сложная логика чтения и присвоения. Это вообще клиника нахуй. Потому что, во-первых заменить @переменную на вызов метода дело двух секунд, во-вторых, я еще ни разу не столкнулся с такой ситуацией за 5 лет продакшена, в третьих, если до такого дойдет, то рефакторить придется все, а не ридеры переопределять. Ну и самая мякотка атр-дебилов: >do_not_write = false # => NoMethodError Ты же сука сам в своих 14 строках запутался. Эту залупу невозможно считывать, ты сидишь и рыскаешь глазами, где он это взял, где блять эта переменная, где этот метод, ах блять, это атр-акцесор. Какой смысл в этом дерьме, если это блять переменная, сука, просто переменная. Если она идет с @, то это сразу считывается, сразу понятно что вот тут в этом конкретном месте работают с состоянием. А если же это не просто переменная, то она и называться будет с указанием глагола, типа fetch_data или update_state(args), но не `data` и `state=args`. Так какой смысл тогда вообще в акцесоре, кроме выставления свойств наружу? Никакого блять, только путаница.
Спасибо за советик, братишка, но я просто хотел указать тебе на неточность. Перезаписывать можно всё, даже константы. Есть один кейс, когда руби может сломаться, правда, - при попытке перезаписать какие-то ключевые слова.
По остальной части твоего высказывания можно пройтись и поспорить, но чёт нет желания. Ссори. Но ты и сам всё знаешь, наверное.
Ну и справедливости ради, в частичную поддержку твоей же позиции добавлю: бывают кейсы, когда использовать инстанс переменную без attr_* не только можно, но и нужно. Например, этого придерживается конвенция рельсы для контроллеров. Ну т.е. инстанс переменные инициализируются в экшОнах, и после «магически» передаются во вьюху.
>>1104349 >Например, этого придерживается конвенция рельсы для контроллеров. Ну т.е. инстанс переменные инициализируются в экшОнах, и после «магически» передаются во вьюху. Не нужно придерживаться этой хуиты, надо всё прокидывать явно через locals, иначе заебешься потом понимать до какого уровня там эта магия провалилась и юзается. Нахуй-нахуй.
> иначе заебешься потом понимать до какого уровня там эта магия провалилась и юзается
Концепт и конвенция такие себе, согласен. Но что там сложного в понимании уровня, ни знаю:
> A controller, as with the whole server side of a Rails application, is designed to be stateless, which means that it does not hold on to information beyond the fulfillment of a request
>>1105321 Ну хз, устаиваешься работать в любой офис в МСК, где будешь не единственным рубистом (да ещё чтобы фронтендер был хотя бы один). Там по ходу работы всё поймёшь
>>1105804 На самом деле так себе турториал. Описывается какой-то франкенштейн, уже не рейлс-вей, но еще не современный фронтенд. И в итоге получается худшее из обеих миров использовать erb вставки во фронтовом коде это вообще верх говноедства. Если хочется понять как должен выглядеть современный фронтенд, то советую прочесть гайд по vue на офф сайте от корки до корки, потом взять vue-cli с дефолтным webpack template и разобраться, параллельно почитывая гайд по webpack, как он работает. После этого написать todo list, а потом что-нибудь посложнее, менеджер расходов с rails --api бекендом, например. Естественно, перед этим нужно поглядеть основные нововведения ES6+, если еще не смотрел, но это не должно занять много времени. На самом деле брать именно vue не обязательно, но для вкатывания в SPA он подходит лучше всего, как по мне, и перекатится потом на тот же react особых проблем не будет.
>>1105813 То что ты описал это нифига не rails. Это отдельно API которое может быть написано на чем угодно и отдельно фронт. Мне больше нравится именно монолитное приложение когда все в одной куче — скорость разработки тогда довольно высокая и тебе не нужно пердолиться с реактом чтобы нарисовать таблицу в erb.
>>1105974 А сейчас вроде уже не важно как тебе нравится, главное чтобы бизнесу удобнее было. А бизнесу удобнее api и фронт отдельно, чтобы можно было запилить потом аппки для ведроида и айос.
>>1105966 Обычно держат в отдельной папке (client, frontend или как-то так называют) в корне в том же репозитории, из того что я видел. Хотя достаточно часто и в отдельной репе.
>>1105974 Я знаю, что это не rails-way и я против него ничего не имею. Я писал, что я против попытки усидеть сразу на двух стульях описанной в статье. Скорость разработки, кстати, далеко не всегда с rails-way выше, зависит от интерактивности фронтенда.
Есть экшн, он рендерит обычный html. На странице есть кнопка, по нажатию на которую, судя по всему отправляется ajax на другой экшен, в ответ приходит js, и он отрисовывает небольшое окошко. Как мне сделать так, чтобы при определенном параметре в первом запросе отправился запрос на второй, и я получил свою страницу с уже отрисованным маленьким окошком?
Ruby on Rails Chief Software Architect (Ruby Senior Developer) - от 460 т.руб. в месяц
наши позиции Chief Architect близки в традиционном понимании к позициям Senior Developer, позиции Architect - к Middle Developer, а Software Engineering Manager - к позициям Team Lead. Более подробные описания позиций ты можешь найти по ссылке в каждой из них
С точки зрения зарабатывания бабла - да, мемчик. Но даже с этой точки зрения, за пределами веба язык очень даже мертв. В вебе, бтв, все тоже не так уж и радужно. Но основной посыл был не в том, что бы стриггерить тебя на ключевой набор слов «ruby is dead», но намекнуть вкатывальщикам, чтобы не постили по одной (протухшей) видяшке в пост; пусть лучше подумают: хотят ли они вообще изучать этот нехайповый язык в наступающем 2к18.
У менч щас проект, где нету тестов и вся логика в контроллерах. Логика на клиенте сделана с помощью jQuery и кучи плагинов. Ебаный императивный mess, тронешь одну вещь, 2 другие ломаются
>>1108107 Хуётлин. В реальном мире для хуётлина нужен java-бекграунд (если ты метишь на что-то выше джуна). В руби это всегда пыха/питон общий опыт пиления веб-приложений(плюс sql, js).
Можно ли бесплатно задеплоить на openshift 3 мой мини веб сервис на синатре? вот код https://pastebin.com/3FqJHP9h Что-то нихуя у меня не получается. Вроде по логам разобрался что нужно еще создавать gemfile для того чтобы система знала какие гемы ставить. Засунул туда sinatra и puma. Все равно нихуя не работает.
Потом дошло что нужен еще config.ru код https://pastebin.com/yVrEABm2 Локально все работает. Теперь собралось и задеплоилось без ошибок, но все равно не работает. В чем еще проблема, я уже пиздец заебался? Вот самый последний лог:
[1] Puma starting in cluster mode... [1] Version 3.11.0 (ruby 2.4.0-p0), codename: Love Song [1] Min threads: 0, max threads: 16 [1] Environment: production [1] Process workers: 2 [1] Phased restart available [1] Listening on tcp://0.0.0.0:8080 [1] Use Ctrl-C to stop [1] - Worker 1 (pid: 21) booted, phase: 0 [1] - Worker 0 (pid: 17) booted, phase: 0
tldr коротко - привет, я напейсал книжку. Купите, пожалуйсо.
tldr длинно - два последних тезиса:
1.
> In conclusion, JavaScript, Go, Elixir and Python all suck, write Ruby :) No, of course not - write what you’re productive in. If you’re a web programmer, count your lucky stars that you get to choose your tools based on ergonomics, not on performance.
Кек, а зачем статью писал?
2.
> Look what I wrote! The Complete Guide to Rails Performance is a full-stack course that gives you the tools to make Ruby on Rails applications faster, more scalable, and simpler to maintain. It includes a 361 page PDF, private Slack, and over 15 hours of video content.
Посоны, посоветуйте гем. Надо выдирать и транслировать несколько секунд со стрима (видео), а после переключаться на другой стрим, где делать точно так же.
>>1111225 Да я заметил что 90% всех "философских" рассуждений по айти тематике укладывается в схеми "бла бла бла, вода, хуйня, длинные абстрактные рассуждения, в лучшем случае пару оторванных от реальности кусков говнокода, никаких намеков на конкретику, вода, вода, ну короче юзайте то, что подходит под вашу задачу". Зато у каждого уебка вылазит сраный банер на весь экран со скидкой на его сраные курсы/книги. Бесит.
Котоны, кто-нибудь обмазывался paperclip? Как эта хуйня делает валидации? Особенно по размеру файла? Потыкал немного в дев-сборке одностраничник: судя по всему оно ПОЛНОСТЬЮ загружает файл в Tempfile (который в большинстве дистров в tmpfs), делает проверки контент-тайпа, имени (попутно нахуячив в том же tmpfs ещё 2 копии этого же файла) и уже потом размер. При этом если валидации наебнутся, то загруженные файлы даже не удаляются. Это что за говно получается, любой хуила может спокойно напихать мне пару гигов своего говна?
>>1111839 > Потыкал немного в дев-сборке одностраничник: судя по всему оно ПОЛНОСТЬЮ загружает файл в Tempfile А как без этого? Или ты хочешь чтобы оно через астрал работало? >(который в большинстве дистров в tmpfs) Ну и отлично, засрётся-то ОЗУ, раньше упадёт - раньше выявишь проблему. >делает проверки контент-тайпа, имени (попутно нахуячив в том же tmpfs ещё 2 копии этого же файла) и уже потом размер. >При этом если валидации наебнутся, то загруженные файлы даже не удаляются. Ну получается да? > Это что за говно получается, любой хуила может спокойно напихать мне пару гигов своего говна? Да. > Котоны, кто-нибудь обмазывался paperclip? > Как эта хуйня делает валидации? Не знаю лол, я мимокрок с парой скриптов на руби. >Особенно по размеру файла? >оно ПОЛНОСТЬЮ загружает файл в Tempfile >(попутно нахуячив в том же tmpfs ещё 2 копии этого же файла)
Надеюсь помог, мы вам перезвоним! С уважением, Марина.
>>1111866 >А как без этого? Или ты хочешь чтобы оно через астрал работало? Ну я не знаю, например проверять кол-во и размер загруженных кусков во время заливки файла?
>Ну и отлично, засрётся-то ОЗУ, раньше упадёт - раньше выявишь проблему. И любой васян может наебнуть мой говносайтик тупо закинув в формочку рандомный бдрипчик, так что ли?
>Ну получается да? Вот тут я так и не понял. На гитхабе пишут что файлы удаляются как только GC ёбнет мертвый инстанс Tempfile. И он таки его удаляет при рестартах пумы и удаления записи из бд, но это какой-то пиздец.
>>1111914 > Ну я не знаю, например проверять кол-во и размер загруженных кусков во время заливки файла? На virustotal ты тоже должен загружать файл полностью и они там хеш-сумму считают сначала. Если файл дублируется много значит разрабы пейпер клипа имели на это вескую причину или они бакланы тупые.
> И любой васян может наебнуть мой говносайтик тупо закинув в формочку рандомный бдрипчик, так что ли? Возможно гем не расчитан быть решением под ключь, только базовый функционал. Лимиты на загрузку файлов сам выставляй, тыжпрограммист, лол. > Вот тут я так и не понял. На гитхабе пишут что файлы удаляются как только GC ёбнет мертвый инстанс Tempfile. И он таки его удаляет при рестартах пумы и удаления записи из бд, но это какой-то пиздец. Может у тебя в примере просто не реализована чистка объектов? Пробовал вручную триггерить GC (да так можно, ну не в продакшене конечно)?
>>1111873 В продакшен среде на серверах у девопсов, на маке на н руби написан homebrew (менеджер пакетов), в дебиане есть всякие скрипты для обработки статистики пакетного менеджера. Короче для неграфических тулзов всяких.
Что-то я нихуя не пойму... В доках написано что create(!) триггерит валидации, а значит и before_validation тоже? Впердолил туда сеттер и puts, а в консоли нихуя и поле пустое.
Если не изменяет память, то именно на дваче были не довольные добавляемым «сахарком, в духе как у рельсы».
> что именно получилось скромненько
Результат работы за год скромненький. Возможно, заняты серьезными фичами, все же пять лет на закрытие десятка таких вот https://bugs.ruby-lang.org/issues/6721 ничего кроме улыбки не вызывает.
Все в порядке, но я утомился от достаточно однообразных вопросов. Не знаю, честно говоря, какую ты цель преследовал, задавая их. Может быть, тебе не понравилось мое желание иметь чуть больше (например, обещанные аннотации, гильдии), чем просто пару новых методов которые будут использоваться в продакшене? Ну прости, вот хочу аннотации, их уже 10 лет обещают.
>>1113849 А почему ты сразу не сказал чего хочешь? Почему из тебя клещми нужно тянуть? Почему ты считаешь остальных экстрасенсами, хотя сам не хочешь считать коммиты?
Сап. В телеграме скинули ссылку: http://blog.topolyan.com/самый-оплачиваемый-язык/ Неужели за Руби/Рельсы столько платят? Какие у вас реальные зарплаты (в СНГ или на удаленке)? Есть здесь те, кто уже успешно завел трактор?
>>1114234 Насчёт удалёнки не знаю. Туземный рынок мёртв, макаки плюются тестовыми заданиями и кидаются калом. В общем, где-то на уровне пыхи с голангом, и перспектив нет и не будет.
Алсо, нашёл тут недавно: The RSpec Book, неплохая книга о тестировании кода (не кодеров). За то, наверное, и платят.
>>1114234 Всё правильно. Зайди на тот же Upwork и сравни рейт всяких PHP-индусов с рейтом Ruby on Rails господ. Остальные в треде просто завидуют или не шарят.
В текущем проекте отсутствует часть перевода. Т.е., перевод t(:dvach) может не содержать, например, английской локали. А у какой-нибудь другой кнопки нет перевода на русскую локаль.
Нужно решение, которое бы в /config/locales создала два файла, условно это missing_ru.yml и missing_en.yml, в которых были бы все недопереведенные слова.
Надеюсь, вразумительно написал, все же плохой из меня сочинятор текста да и веб-макака, честно сказать, отвратненькая.
Понравился язык, хочу вкатиться, но вот проблема, я - закоренелый виндузятник. Действительно у руби всё так херово с Windows? Или в 2018 это уже не актуально?
>>1117825 Проблема не в баше (было бы классно если бы это решалось так просто). >>1117800 Как и написано в шапке первое время можно просто поучиться. Но есть куча бибилиотек которые linux/mac/unix only из-за использования, как я понимаю, специфичных фишек linux-ядер, которые портировать никто не хочет.
Правда я не тестировал особо другой вариант RubyMine – тут вроде был анон который говорил что в этой IDE всё так охуенно сделано, что даже на винде всё выглядит круто или там как-то можно удобно виртуалку прикрутить (не помню что он там точно говорил) и будет типа как на линуксе, но при этом пишешь на винде.
Привет рубистам. Тошнит от ruby/rails. А именно от второй части rails. Даже тред так назван. Конференция в России? Railsclub. Я хочу выбор. Sinatra, Padrino, Hanami - все классно, сам пишу на ханами. Но ведь придется же влезать в рельсы, если хочу найти работу.
Более того, что у меня нет выбора кроме как вкатываться в рельсы, в самих рельсах нет выбора. Convention over configuration. Другими словами делай как все делают, нехуй экспериментировать.
С одной стороны я понимаю, что при работе кучи человек над многими проектами это хорошо, не надо разбираться каждый раз в новом стиле. А с другой стороны это только подталкивает быть тупым неразвивающимся быдлом, потому что есть привычка, которую не нужно менять.
Тот же TDD. Как мартышка печатаешь код, смотришь: горит зеленый - печатаешь дальше. Есть прикольные штуки вроде стабов, спаев, моков. Я так даже не умею, не буду скрывать. Но почему его так божествят - вообще не понимаю. Минусов достаточно.
В общем горит от отсутствия выбора в мире руби в рашке. Может, у кого есть мысли, захочет обосрать или потушить пожары, прошу.
Ребят, есть задачка. Нужно написать скрипт, который регистрирует акк на сайте и производит подтверждение по email. На руби не писал раньше. Подскажите какие гемы для этого можно использовать.
Имеется админка. В ней я хочу создать раздел, в котором укажу сообщение и дату+время, которые будут использованы далее.
Когда я эту дату задам, у всех пользователей, что работают в системе и войдут в нее позднее, выведется уведомление, что в указанное время они должны, например, выйти из системы. И таймер с количеством оставшихся минут.
Само уведомление одного цвета, но если осталось меньше допустим 5 минут, пускай будет другого цвета.
Ну, пока достаточно. Как мне это сделать, если я не знаком особо с js? Осознаю, что мне нужно будет использовать Action Cable, но примеры и туториалы описывают какие-то чатики в основном, это не то, что мне нужно.
И подразумевается, что сообщение может быть только одно, т.е. я прям перезаписать могу сообщение которое всем показывается.
Что посоветует анон? Есть гемы может которые помогут? Какой-то материал может есть который поможет мне?
Я все чаще стал замечать, что мне дико бомбит от символов (:symbol). Потому что практика делать их ключами хеша привела к тому, что хуй знает что там в этом хеше. И в рельсах не зря существует .with_indifferent_access в который завернуто почти все рельсовое. Поэтому до поры до времени все заебок. Но это нихуя не спасение. Разочек-другой серьезно проебавшись с ключами и поймав серезных багов/потратив несколько дней на отладку, начинаешь параноидально оборачивать все и по несколько раз.
А какую вы для себя выбрали практику работы с хешо-ключами? Индефферируете, символизируете или может придумали какой-то флоу. Я не слышал, но может есть какие-то правила на этот счет.
Второй момент, из-за которого тоже бомбит, это "новый" способ записи `key: :value` вместо древнего `:key => :value`. В первом приближении кажется что новый способ лучше, удобнее и самое важное красивее. Но я пришел к тому, что это не гуд и даже скорее неудобно. Причина - единообразие. Ведь в любом другом случае писать нужно через хеш-рокет. Это значит, что будут разные нотации, что становится сложнее грепать, что неудобно редактировать когда нужно менять с/на символ да да, нужно гораздо больше скачков курсором, особенно при мультилайн-редактировании, что некрасиво, когда обе записи идут рядом. И я таки замечаю, что во многих современных гемах, используют все-таки хеш-рокет. Не знаю почему, но возможно их авторам тоже не нравится новая нотация. Не встречал нигде обсуждений на эту тему, к сожалению.
Ну и как-бы на самом деле мне не очень понятно, а нахуя они нужны. Я знаю про оптимизацию и экономию памяти. Но дает ли это какой-то ощутимый прирост производительности? Их научились изящно использовать в рельсах, когда строка означает одно, а символ другое (например, просто строка это значение как есть, а символ - имя метода или константы). И `&:meth` тоже очень изящная штука, изначально придуманная в рельсах. Но блять... этого мало. От этих символов слишком дохуя проблем, а профита почти что нихуя, только с толку постоянно сбивают своей магией и немагией. Слишком error-prone.
>>1123769 Наверное можно использовать case, но тогда придется дублировать do_something2(на деле под этими do_something скрывается не вызов метода, а несколько строк кода)
>>1123949 А если так: для одного варианта мне нужно выполнить method1 и только его, а для второго варианта нужно выполнить method2 и только его, а для третьего варианта нужны method2 и еще что-то... как быть?
>>1124039 Разделяешь метод джва на два новых метода. Но тут тебе нужно понять (просто много программируя) тот баланс когда деление на много методов оправдано, а когда проще оставить два похожих метода (но они например могут стать непохожи в будущем).
>>1124144 Ок, спасибо. Еще один нубский вопрос: мне нужно присвоить в переменную значения, в зависимости от условия. a == 1? b = 1 : b =2 Это лучший вариант?
>>1124445 И еще один подобный вопрос, мне в любом случае надо сделать что-то со всеми элементами массива(each), но делать разные вещи в зависимости от какого-то условия. Я могу сделать if else и в каждом из них each- вроде правильно, но некрасиво, а могу один each и внутри do_1 if 1; do_2 if 2. Это короче, но как мне кажется, это нехорошо. Как быть?
>>1124830 Нашел решение, но не понял причину. Все начинает работать если обернуть условие в скобки, или если добавить строку(любую, можно puts) перед вызовом Core
Наверное странный вопрос. Я могу не указывать текущий объект, вызывая какой-то метод, он подставится за меня. А могу ли я заменить текущий объект? Указать, что с этого момента кода текущим считать другой, указанный мной.
Сначала модифицируешь класс немного чтобы он мог возвращать связюшку и потом уже вызываешь. Применяется в частности при работе с ERB шаблонами в той же рэльсе.
Простой вопросик. Если из-под Win10 настроить RubyMine на взаимодействие с Vagrant, не используя виндовый руби вовсе, будет ли работать аутокомплит и прочие ништяки?
Если да -- можно ли как-то исхитриться и вместо Vagrant использовать удаленный сервер, крутящийся на VDS?
>>1125275 Вуду магия какая-то. На Core даже если его нету должно ругаться uninitialized constant, а не undefined variable/method. Ты уверен что входные условия помимо присутствия/отсутствия искомого у тебя одинаковые при проверке?
>>1125284 Core есть гарантированно. К тому же в других местах кода(да даже на пару строк ниже) он прекрасно вызывается. Дело происходит в модели. Почему-то он пытается не обращаться к классу Core::Settings::Provider, а вызвать model_exemplar.Core
>>1125212 Ты это на практике пробовал или теоретически должно быть ок? Просто это у меня было первым вариантом, но почитал я про этот эрзац-баш - косяки на косяках сидят, vagrant выглядит более устоявшимся и зрелым решением.
Как я понимаю там по сути будет то же, что и с vagrant -- IDE будет воспринимать SDK как remote? И из твоего сообщения подразумевается, что при такой схеме автодополнение в гемах и прочие красивости будут работать, да?
Мне нужно в метод передавать аргумент, который внутри метода будут интерпретироваться как true или же false, стояший по умолчанию. Но передавать просто булево значение не очень информативно. Нормально ли в случае если нужен true передать строку?
Есть запрос вида aaa.where(:bbb.in => [1,2,3,4,5]) Можно ли прямо в запросе указать условия при которых элемент должен или не должен входить в целевой массив?
>>1126032 > Антоны, вот я решил учить Ruby. Мне устанавливать Linux? Для чистого руби пердоликом становиться не нужно. Свежей виндовой версии 2.5 хватит чтобы попробовать. Другое дело, что сегодня нужно уметь использовать линукс.
Сап, подскажите что из литературы перечисленной выше будет оптимально для перекатывальщика с питона/джанго? Минимум хеллоуворлдов и в самые короткие сроки. хотя бы чтобы иметь общее представление? Олсо, будьте добры, подскажите где взять лицензию на рубимайн на рутрекере ничего не подходит, или вы реально в виме пишете, лол?
>>1126725 Если ты знаком с пихтоном/джанго, значит и паттерны знаешь и всё такое, тебе достаточно будет tryruby и rubykoans – чтобы понять специфичные для руби закидоны ну и потом по рельсе можно почитать api.
Какой сервер ты нашёл (для рубимайна штоле) Так-то и питонисты используют всякие вим/емаксы.
>>1126759 Спасибо, try ruby уже заценил, второе сейчас посмотрю.
без понятия что это, но на одном сайте посоветовали написать http://45.77.127.87:81 и всё работает Используют, но ещё ни одного не встречал. Может, которым по 40 лет, мы-то молодые, шутливые.
>>1128107 Знакомый повзал к ним работать, руби нихуя не знаю. Сказал, что походу дела разберусь. второй день вот разбираюсь
А вообще, думаю, что если веб, то для джуниора тяжело будет. Работы не так много, джуниоров наоборот. Нужно либо напилить нормальное портфолио с околореальными проектами, либо учить пхп. Там берут всех за хеллоуворлд. При чем на пхп берут чисто на бекенд, а на всё остальное в основном фулл стак, но это я так с дивана.
Помогите, люди добрые. Нужно из массива хэшей получить массив json-объектов. Но to_json не подходит. Так как мне надо, чтобы значение было в кавычках, а ключ- нет.
Есть класс. В него инклюдятся модули. Если нечаянно имена методов в разных модулях будут одинаковыми, то метод естественно перезапишется. Как это по культурному разруливать? Неймспейсами? Модулям при этом нужен доступ к свойства-методам оригинального класса.
>>1129559 Работы на самом деле хватает в ДС и удаленки тоже. Не так много как на джаве или пыхе, конечно, но намного больше, чем на хаскелле. Мне - помидору, HR почти каждый день пишут.
Из моего опыта: вкатился полтора года назад за 3-4 месяца подготовки (еще тогда в этом треде писали, что работы нет, руби не нужен). Все это время в моей компании и в других знакомых есть вакансии для рубистов всех уровней. На почту раз в месяц-два падают заманухи от эйчаров (в основном треш, но все равно немного льстит).
На дваче, в твиттерах и в подкастах всяких умпутунов руби неизменно сохраняет репутацию несерьезной и неактуальной технологии, а тем временем проекты пилятся, комьюнити живет и люди получают от него удовольствие.
Запили без гайдов 3-4 простых шаблонных приложения на хероку, сделай 5-10 пул-реквестов в чужие гемы на гитхабе и скорее всего станешь вполне боеспособным джуном с портфолио. На это понадобится 2-3 месяца (если справишься быстрее, то делай больше приложений или пр).
>>1133859 За кристалем к несчастью стоит организация даже меньшая чем salesforce за руби. Так что будущее кристала очень туманно.
Даже хайповый Rust от мозиллы очень со скрипом набирает аудиторию в отличии Go и питухона, которые на лёгком поддуве от гугла имеют большую часть умов погромистов (гештальт имеет нас).
Сап, посоны. Нужен совет. Причем именно от вас, т.к. SO меня не очень принимает Я ещё зелёный но не жирный, и я пытаюсь автоматизировать на рельсах в беке следующий процесс: 0) Юзер/робот грузит на мой сервер документ 1) Документ определенного типа отправляется на Гугл Драйв 2) Гугл драйв открывает документ и сохраняет снова на сервер, но уже в другом формате С 2) пока что, предположим, проблем нет. С 1), положим, тоже разберусь. Проблема есть с тем, что я не могу понять, как устроить сервер-серверную авторизацию для своего скрипта. Анончик, помоги пож.
Посоны, помогите. В device бывает вот такое sign_in(:scope, resource). Внутри модели resource в after_save я могу как-то определить, что sign_in был вызван со scope?
Статья висела в рассылке новостей около недели, ты какой-то немножко медленный. Я не вчитывался в эту писанину особо, т.к. ничего интересного в повышении производительности на паре синтетических тестов нет. Автор, и сам об этом пишет, хз.
>>1138899 > Статья висела в рассылке новостей около недели, ты какой-то немножко медленный. Я не вчитывался в эту писанину особо, т.к. ничего интересного в повышении производительности на паре синтетических тестов нет. Автор, и сам об этом пишет, хз. Важно само начало работы над этим прямо непосредственно в mri, ну хули ты баран такой? Хорошее, долгожланное событие, я только недавно узнал — мог бы запомтить, раз оно уже неделю висит где-то.
>>1104216 (OP) Новый ОП, почему ты такой пидор? Из шапки половину информации проебал, старый тред на архиваче не сохранил >>1141406 Раньше была репа на гитхабе с картинками но старый ОП (тоже пидор) выпилился вместе с пикчами
>>1141692 > Новый ОП, почему ты такой пидор? Из шапки половину информации проебал, старый тред на архиваче не сохранил Инфа была старая и избыточная, специально сокращал шапку (и то надо бы ещё сокоатить и часть проверить). Картинки говно были, так что не стал портить ими шапку (вместого испортил текст всякими стрелочками, чтобы смотрелось иначе среди других тредов).
>>1141799 Прошлый тред только на archive.org >>1141807 >Инфа была старая и избыточная Для тебя избыточная, а другим она нужна, вроде пока на дваче за количество символов платить не надо. >испортил текст всякими стрелочками Ну это вообще пушка, лучше бы новую репу на гитхабе запилили, чтобы каждый мог добавлять
>>1142537 >Ну это вообще пушка, лучше бы новую репу на гитхабе запилили, чтобы каждый мог добавлять Хочешь репу – делай. Будет ли в неё пулл-реквестить кто-нибудь, я не знаю.
Моя позиция в том что не надо тральские картинки в шапке языка публиковать как >>1141692 потому что это уебанство какое-то (в самом треде можно), только отвращает от треда. Это не значит, что шапка должна быть без мемесов, но не с такими унизительными блядь.
Привет Рубироиды. Есть среди вас джуны, которые желают поработать? Деньги не большие, но для регионов норм, оплата почасовая, либо за выполененные задания. Ключевые слова: rails api, grape, websocket(action cable). Писать на почту [email protected] с пометкой ruby monkey. Ищу на дваче, потому что тут все мои друзья.
Такой вот вопрос, сам студентота, офк уча плюсы и только то, что проходят в универе, ничего не уча самостоятельно, я выпущусь и буду сосать хуй, сейчас есть только знания HTML/CSS/Питон без фреймворков, хотел офк в руби на рельсах, но в Белорашке это довольно сложно. Ситуация на рынке такая - пыхи офк больше всего, жабаскрипт, питон и руби примерно на одном уровне. Так вот легко ли будет перекатиться с пыхи/питона в руби? Или это супер хуевая идея и лучше взять ебануть пару проектов из шапки, как клон твитера/блога/борды и идти ебашить собеседования? И возможно ли получить удаленку с такими проектами в гитхабе, http://rubyjobs.ru/ вроде тут иногда мелькали вакансии для джунов.
>>1150013 Это вызов метода [] у хеша. Обычная запись hash[:key] это просто сахарок для hash.[](:a). Соответственно ничто не мешает поменять hash.[](:a) на hash&.[](:a), если hash может быть нилом. >чёрную магию Никакой черной магии тут нету, такая конструкция достаточно активно используется во вполне реальных проектах.
>>1150021 Всё, теперь понял. [] вызывает метод, (:key) передаёт параметр этому методу, можно и просто :key. Просто нигде не попадалась такая конструкция, вот и завис. Спасибо за разъяснение.
>Avoid methods longer than 10 LOC (lines of code). Ideally, most methods will be shorter than 5 LOC. Empty lines do not contribute to the relevant LOC. А если у меня метод возвращает здоровенный хэш, пускай параметров на 15, это уже 15 строк, плюс ещё по строчке на скобки, плюс ещё какие-нибудь методы на пару строк. Как такое делается вообще?
>>1150137 Я уже полгода работаю на проекте, где очень дрочат на чистоту кода и за это время понял, что такие рекомендации с одной стороны имеют чисто рекомендательный характер, а с другой, если прям сильно подумать, могут подтолкнуть к годным архитектурным выкрутасам.
Скажем, нафига тебе хеш из 17 ключей? Они объединены смыслом их можно в какую-то абстрацию обернуть? Если да, то это почти 100% God object и его нужно сперва идентифицировать, а потом безоговорочно разъебашить на мелкие классы. Если нет (такое бывает на страничках статистики и т.д.), то опять же решение придумали ещё до нашего с тобой рождения - всяческие презентеры, декораторы, драперы и аналогичные паттерны.
Сап, двачаны. У меня есть программа, отправляющая документы в гуглдрайв и вынимающая их оттуда, которая запускается двумя способами: ПЕРВЫЙ: Я вручную скармливаю ссылочку на файл программе. Всё работает нормально, хорошо и успешно. ВТОРОЙ: программа скачивает файл с почты, верно его распознает и пытается сделать то же самое сама. Google::Apis::ServerError. В чём может быть проблема?
>>1151267 Я пытаюсь найти, как это возможно. Ключ на апишку вызывается, используется и забывается в пределах только одного метода, к которому она обращается. Сам ключ хранится в файле, ссылка на файл - в виде константы, константа скармливается методу Session::from_config
>>1152166 2к в СНГ понимаются буквально 2к. Это неплохо и в Луцке и в Киеве. В США "5к" ничего не значат как заметил анон выше. Это может быть неплохо в Алабаме и смерти подобно в CA
>>1152706 Конкретно в айтишных загонах Кали — да, жить можно от 10к в месяц, не знаю сколько это у них в год, там ведь бонусы всякие. 120к в год в Калифорнии ~= 2к в месяц в Москве или Киеве, так что облизываться на тамошние онсайт зарплаты вне контекста не стоит. Облизывайся на то, что вполне реально сегодня — удалёнка по рейтам для удалёнщиков в СНГ при работе напрямую с заказчиком. Это выходит от 5к в месяц для не очень умной веб-макаки в реакте-редаксе. Придёт время ехать в Америку — тебя найдут сами. Или потрудишься, всё изучишь, взвесишь и сам найдёшься.
>>1152831 Вполне востребованы в ДС. Сам работаю фуллстеком на стеке руби-рельсы-вью. Достаточно часто зовут на собеседование фуллстеком хотя на чистые руби-рельсы по-чаще.
>>1152981 Часа 3-4, чарджу обычно за все таски х1.5-2 по времени, но я работаю очень быстро, так как всегда отдохнувший. Если таска большая, на несколько дней, то могу и х3 иногда. Вообще как я заметил, чем больше таска, тем легче завышать время потраченное на нее, так как заказчику и другим разрабам тяжелее оценить сколько времени на нее реально нужно.
>>1152999 > бля, завидую. сижу весь день не отрываясь от монитора. если бы не зарплата, съебался бы давно. ещё и на удаленке, до 6-7 часов работаешь, а потом уже лень куда-то пиздовать/с кем-то встречаться...
>>1154667 https://www.tiobe.com/tiobe-index/ Живее, чем Objective-C и Go а до не недавнего времени живее руби На самом деле после последней пары депрессивных лет руби опять начал активно оживать. Производительность растет, коммьюнити доводить до ума новое поколение гемов (dry-rb, rom, hanami). Для веба рельсы все еще топчик, так как php зашкварен навсегда, спринг слишком энтерпрайзный для большинства проектов, в ноде так и не смогли запилить нормальный фреймворк и в итоге из реальных конкурентов остается только джанга.
>>1154667 >>1154723 Вопрос про процесс умирания, а не про мертвые языки. Вот есть у нас условный язык Х, на нем пишут 10% всего веб-говна в мире. Когда его можно начать считать умирающим или мертвым? Я не пытаюсь доебаться, просто реально интересно, что думают люди, когда говорят "технология умирает".
>>1154786 Кобол используется в банковской сфере где люди готовы отваливать огромное бабло некромантам до сих пор знающим кобол и не брезгующих писать на нём. У дельфи чуть лучше ситуация, но что-то новое на нём пишут уже очень редко.
И это всё не важно тащемта, главное быть программистом вообще, а не погромистом на определённом языке.
>>1154833 ты немножко эпохи попутал. сейчас каждая область настолько глубока, что разбираться хорошо в одной - уже блять достижение. системной программирование, энтерпрайз, фронтэнд - у каждого своя специфика и огромная база знаний
>>1154846 Это ты про мои слова о том чтобы быть программистом в принципе? Я имел ввиду алгоритмику, паттерны-хуяттерны, архитектурные решения. На фронте также нужно программировать, заботится о контроле ресурсов, как и на бекэнде.
>>1154919 >Express, koa, fastify Это микрофреймворки в которых нихуя нет готового и все надо самому допиливать. Не как что-то плохое, но это совершено не то. >sails.js Это уже больше похоже на то, что предлагают рельсы/джанга/спринг, но ты сам пробовал эту говнину использовать? Я пробовал пару лет назад и это был пиздец. Сейчас зашел на их сайт посмотреть что поменялось, но ничего не поменялось. Они до сих пор используют Gruntfile в 2018 году, ORM их так и не научилась в джойны и промисы, а 1.0 все так же только собираются зарелизить, но судя по частоте коммитов я зайду через 2 года и они все еще будут собираются.
>>1154925 Подожи, а чем грунт плох? Рейлс вот тоже использует всё тоже самое. Новое не всегда == хорошее. Я понимаю, конечно, что всякие роллапы, парсели и прочее удобнее, но и боров отлично справляется со своими задачами в нашем легаси-говне
>>1154935 Рельсы на webpacker перешли, хотя assets pipeline еще не выпилили (DHH сопротивляется), но по-моему опыту в реальных проектах его уже почти не используют. >Подожи, а чем грунт плох? Не понятно просто зачем вообще эта лишняя прослойка. npm/yarn run хватает за глаза, если использовать современный туллинг (webpack, eslint, create-react-app, vue-cli, что там у ангуляра).
>>1155794 Я думаю, что руби прикончили не рельсы, а хипстеры. Они онанировали на этом языке, вместо того, чтобы программировать. Онанировали они так много и часто, что замалафьили все интернеты, и задрочили язык окончательно.
>>1157253 85 в час при полном рабочем дне это 160к в год. Зарплата мидла в СФ. У нас на проекте меньше 80 вообще никто не получает, даже ебучие тестеры. Пойду им скажу, что руби опять умер.
Сап рубисты и руби-тред в целом. Я вкатывальщик в ВЕБ, только не бейте, пожалуйста. Интересует именно серверная часть, а не клепание лендингов по макету. Что у меня есть? CSS, HTML, общее понимание JS и PHP. Хочу пиздатый язык, который удобен и который не сдохнет через ? лет. Я понимаю, что язык нужно использовать как инструмент и для каждой задачи инструмент нужно подбирать самому, но этого блядь никто не делает, все один выбирают язык и идуть писать на нём ВСЁ. Объясните начинающей веб-макаке преимущества рельс перед той же нодой или джанго. Удобство, комьюнити, работа, хуй знает за что ещё сейчас ценят языки.
>>1157588 Ну хорошо. Тогда рельсы, джанго и пыха. Один заточен под веб чуть более, чем полностью, остальные два — фреймворки других языков. Казалось бы, то что изначально затрачивалось под веб — будет лучше. Но "ведь на двачах говорят, что пыха говно и говнокод, да и вообще плохая она, да", хоть и с новой версией всё по-другому. Есть ещё один стул, платформа нод.джс. Не знаю, почему её нельзя сравнивать с другим бекенд говном, ну да ладно, отбросим её пока что. Джаву мы заранее не трогаем, нахуй её. Пыха, рельсы, джанго. Три стула. Прошу пояснить за них. Я бы мог загуглить, но там восхваляют ноду и боготворят пыху, я хуй знает кому верить.
>>1157808 Разница не в языках, а в архитектуре этих систем. Джанга немного напоминает рельсы, но произошла она не от них. Джанго и рельсы - это MVC фреймворки (если коротко). Пыха - это именно язык, но и фреймворки там тоже есть, но они не обязательны, чтобы сделать сайт.
Чтобы выбрать - надо самому посмотреть примеры, почитать доки и т.п. Халявы нет, чувак.
Если не шаришь вообще, считаешь слово "архитектура" ругательством и хочешь быстро найти работу - то пыха. Примут как родного.
>>1157522>>1157588>>1157808>>1157862 Заебали, по выбору языка/платформы/стека пиздуйте в общий тред. Здесь пожалуйста только про конкретные рубишные штуки плес.
>>1160975 Гугл и так индексирует уже давно, яндекс помнится тоже там что-то тестировал, но в целом SSR сделать больше не требует особых усилий в 2018 году.
>>1161862 Это типа русское сообщество и прямой перевод одина. Собственно если тебе нужно общаться с русскими, то это оно. Но даже там тебе сразу напишут, чтобы ты учил инглиш.
===ИЗУЧЕНИЕ ЯЗЫКА===
→→→ 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. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.