Предыдущий: https://arhivach.org/thread/256121/Принимаются изменения в шапку треда в виде пулл-реквестов:https://github.com/meoweg/2ch-pr-rubyКак показывать код:Быстро - https://pastebin.comС исполнением - https://ideone.comТребуется аккаунт GitHub - https://gist.github.comКонференцияhttps://2chpr.slack.com/messages/ruby/Получить приглашение: https://invite-me-to-2chpr.herokuapp.com/FAQ:1. C чего мне начать, чтобы стать рубистом?Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.Следующий уровень, продвинутые книги по руби:Confident Ruby by Avdi GrimmPractical Object-Oriented Design in RubyRefactoring Ruby EditionRuby Under a Microscope для любителей залезть под капот.Документация по стандартным библиотекам http://ruby-doc.org/Можно пройти руби онлайн - http://tryruby.org/levels/1/challenges/0И ещё раз онлайн: http://www.codewars.com/?language=rubyНе веришь в свои силы? Прочитал уже книжек много и силы свои хочешь познать, сделай - http://rubykoans.comИ вот еще https://rubymonk.com/ - Матц одобряет.2. Какой gem посмотреть, чтобы понять, как писать код?Лучше всего посмотреть небольшие gem'ы вроде cancancan, pundit, camping.А еще можешь полистать на гитхабе гемы с нарастающей популярностю.https://github.com/trending?l=rubyТам еще нет тысяч строк, и тебе будет легче понять.3. Есть ли GUI для руби?Да. Есть обвязки к Qt, GTK, wxWidgets, Shoes, fxruby (одобренный).4. Можно ли писать на руби мобильное ПО?Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.5. Как установить разные версии рубей?Легко и просто: https://github.com/sstephenson/rbenvИ это тоже, легко и просто: https://rvm.io6. Что почитать по рельсам?http://guides.rubyonrails.orghttp://ruby.railstutorial.orgAPI: http://api.rubyonrails.orgПрекрасные туториалы в стиле for dummies - http://www.theodinproject.com/ruby-on-rails , а вот тут все тоже, но на русском http://codenamecrud.ru/Классический вводный туториал, где делается с нуля клон твиттера, для новичков в rails самое то - https://www.railstutorial.org/bookДля дотошных читателей есть The Rails 4 Way.7. Хорошие практики по руби и рельсам?Читаем Rails AntiPatterns, смотрим Rails Best Practices, также неплохо посмотреть Rails Recipes.Почитайте еще Grimm A. - Objects on RailsЕще продвинутое чтиво - http://tutorials.jumpstartlab.com/8. Ruby/Rails блоги, рассылки и твитторыIRC каналы на FreeNode: #ruby, #ruby-core, #RubyOnRails, #rails (не очень активен).Твитторы @rails, @dhh, @yukihiro_matz, @wycats, @tenderloveРассылки ruby-core, rails-core, rails-talkПодкасты:- http://rubyrogues.com- http://ruby5.envylabs.comСкринкасты:- http://railscasts.com- https://peepcode.com- https://www.destroyallsoftware.com- http://railsforzombies.comБлоги:- rubyflow.com - каждый день новости, новые библиотеки, обновления, все дела.- rubysource.com - читаем интервью, хорошие практики, и безумные сравнения упоротого дибила-индуса на самом деле их пропускаем- rubyinside.com - новости, туториалы.- rubyweekly.com- http://37signals.com/svn- http://yehudakatz.com- http://afreshcup.com9. Я не могу в английский, что делать, анон?Идти учить английский, без него тут делать нечего.10. Есть ли у руби русское коммьюнити?Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.Яркий пример - [email protected]А еще есть русская слак конфа - https://russiandevs.slack.com она общая, но есть очень активный руби канал.Так же русская гугл группа, активная - https://groups.google.com/forum/#!forum/ror2ruЕще вот - https://onrails.club/11. Какие гемы стоит знать?capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra, тысячи их.Поиск гемов https://www.ruby-toolbox.com12. Зачем нужны тесты и как их писать?http://rusrails.ru/a-guide-to-testing-rails-applicationshttp://habrahabr.ru/post/163597/Вместо этого можно прочитать классную книгу Everyday Rails Testing13. Где можно задать глупые и не очень вопросы?- здесь- stackoverflow.com- тематические slack-конфы- а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.15. В чём писать код?Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.16. Можно ли писать на руби с под windows?Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac17. Руби язык одного фреймворка?Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене18. Можно ли делать игры на Ruby?Можно, но не нужно. Гем Gosu.19. Ютуб каналыYoutube driven development...Вот тебе пара каналов, но никому не говори что учишься по видео.https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videoshttps://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQhttps://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQhttps://www.youtube.com/channel/UCPIyDzf1vwWc8EQJGUX-vYw - тут на ру$$ком даже.20. Как и где искать работу?Легко и просто - http://rubyjobs.ru/Не так просто - https://upwork.com/Еще вконтакте есть группы по руби/рельсам, там иногда постят вакансии. Еще в русской гугл группе постят вакансии. Новичку будет сложно, но возможно.TODO лист для ньюфагов:И так, ты поставил руби, уже сгенерировал свой первый проект rails new pidarasНачни уже с платинового пути, блог >> клон твиттера >> своя имейджборда >> свой гем >> дальше сам придумаешь.Рекомендации:1. Для блога, создать роли, Админ, Пользователь (можно использовать паттерн form object). Прикрутить лайки, комментарии.2. По твиттеру, следуя гайду Хартла, пиши все то что он предлагает в качестве доп. заданий, например оповещение по нику (@eblan: привет)3. По имиджборде: воссоздать по возможности полный функционал, в этом случае придется ознакомится с javascript/jquery/coffeescript, но тебе так или иначе придется. Еще хорошей фичей будет использование background job и крон тасков (sidekiq, whenever), чтобы заполнять свою борду тредами и постами с другой борды, можно использовать api двача, чтобы вытягивать треды и посты - https://github.com/ID25/api_2ch4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.После этого тебе будут нужны паттерны, без них твой код превратится в говно. Один из часто используемых - 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.Не забывайте спрашивать у анонасов вопросы, код лучше показывать через gist или pastebin с подсветочкой.Ну, а мы открываем очередной Ruby Thread.
Анон, вот почему я, залетный аутист перекатываю? А? Покушать принес вам.https://github.com/arbox/ruby-style-guide
А ещё я обосрался с ОПом.
На оп-картинки можно было поставить и другие, надоели эти унылые мемасики.
как относитесь к trailblazer?
>>1030059I heard you laek OOP, so we put OOP in your OOP, so you can OOP while you OOP.
>ВНИМАНИЕ ВАЖНЫЙ ВОПРОС:Друзья, заясните зачем вы в 2к17 году до сих пор изучаете Ruby? Это же мертвый язык. Эту нишу заполнил Python. В руби есть только руби он рельс, у которого уже давно спал хайп и сейчас только идет поддержка легаси стартапов. Не разумнее ли сразу нырять в Питон?
>>1030135Удваиваю вопрос.
>>1030059Ненужное, прибитое гвоздями говно.
>>1030135Если не перекатываться из разработки в МЛ, то менять руби на питон, это как шило на мыло. Если уж менять стек, то на что-нибудь по-лучше scala, elixir/erlang, в крайнем случае на java, если хочется стабильности.
>>1030206> на java, если хочется стабильностиАга, у delphi'стов тоже когда-то была стабильность.
>>1030214Думаю java скорее ждет судьба cobol, а не delphi.
Дайте хоть шуму немного, или уже все рубисты вымерли?
>>1030214ващет джаве до сих пор нет вменяемой альтернативы, это передовой промышленный язык. Полная настоящая мультиплатформенность, скорость как у плюсов, простота и логичность, огромное количество инструментария и библиотек, обратная совместимость.Менять всё это на немного синтаксического сахарка? Пффф
Аноны, как автозапуск сервиса сделать в рубях? Запускаю через консоль и то девелоперскую версию, т.к. production не настроил. nohup rails s &
>>1031933Делай глобальную исталяцию rvm.Накатывай bundler, пиши для systemd юнит-файл, ну и там типа:bundle exec rails s
>>1031966бля, чет я уже приуныл(
>>1032039Да не знаю я чё те надо бака-гайдзин урусайный!!!!11
Стоит ли добавить такой блог в список ссылок?http://blog.topolyan.com/tag/ruby/Отличие в том, что статьи на русском, а на русском языке довольно мало качественного контента по Ruby или RoR.
Есть какой-нибудь гайд как врубить hot reload в webpacker в новой рельсе?какой пиздец
Аноны, у меня проблема такая с Rails, есть выборка из БД с пагинатором will_paginate. Задача, есть записи о координатах объекта. Есть связанная таблица координат. Когда выбираю записи, идет подзапрос подсчета координат для каждой записи(это так я по отладчику вижу, когда вручную запускаю rails) select count(*) from coords where message_id=123Все запросы по 200, 300 msзатем хуяки и сразу 1200 ms.С ЧЕГО НАЧИНАТЬ КОПАТЬ???
>>1032441не могу понять в чем дело, вручную у меня подзапросы идут в 10ms, rails это делает за 200-500, че бля за хуйня, че за хуйня то, батюшки!!!! Естественно когда там 40 сообщений на странице, для каждого надо подсчитать сколько в нем координатным записей, все это занимает 10 секунд при рендеринге, а то и больше.
>>1031966с systemd я и приуныл, там что-то навороченное, но видно буду разбираться, я использую rbenv, разобрался с конфигурирование бд(поправил в файле настроек) а еще что-то надо делать с зависимостями всякими js
>>1032444Ну или системд или докер-шмокер: и там и там надо по локоть лезть в чащи у гущи манов десу.Ты мужик нау — итс таим ту конфигурять.Если ты ещё и деньги этим зарабатываешь, так и вообще везунчик.
>>1032461так-то да, но у меня слишком дохуя разных задач, что бы можно было спокойно разбираться, я делаю надежные системы с высоким риском опиздюлиться если что не так, раньше сидел на системе сервисов, конфигурировал все через services, уровни запуска и т.д., а тут как поднавалали docker systemd. Пока пускаю первое руби приложение в продакшн, уже опиздюливаясь каждый день, но таков путь, что-то новое можно изучить только через боль и слезы.
>>1032441попробуй подгружать лениво
>>1032464Я бы тебе помог, но я просто бака-гайдзин любитель потеребить чинко на сочную манко, который только сейчас проходит туториал хартла и параллельно читает совершенный код (но не всерьёз, просто читаю, без претензий на ¨это¨ самое).
send_file отправляет текст вместо файла, чяднт?
>>1032674всё, решил target: "_blank"
Ruby-meetup 6 в Москвеhttps://www.youtube.com/playlist?list=PLiWUIs1hSNeOA6D8CynSFIAk6YJpEJSH5
>>1033340Ничё так спич, мне нравится. Не ожидал такое от рамблера.
Правда ли, что в Ruby приведение к булевому типу - это два восклицательных знака?Блять, серьёзно?$bar = (bool) $foo;
>>1033613Нет, это просто ебланский workaround.
>>1033613>>1033624Что за хуйню несёт этот уёбок и причём тут глобальные переменные?
>>1033666Он про эту хуйню!!fooхз кто эти пользуется на практике
>>1033613В руби нет булева типа.
Вот есть условный класс Hyu, в котором есть метод который через три пизды создает объекты другого класса Pizda. Как вызвать инстансную переменную класса Hyu в классе Pizda. Передать через аргументы не могу, слишком дохуя там методов и классов через которые передать ногу сломаешь.
>>1034765Блин из-за твоих аллюзий к хую и пизде не могу думать о программировании, похоже это не моё.А ведь в случае Foo и Bar у меня могло что-то получиться(((((
>>1035642Давно интересуюсь, а что такое бар? Меню-бар, тул-бар, скролл-бар, фу-бар.
>>1035647https://en.wikipedia.org/wiki/Foobarhttps://www.ietf.org/rfc/rfc3092.txt
ВАЖНАЯ НОВОСТЬ:ТУТ поткатились сведения, что руби на рельсах стремительно хуячит в безну. Быстрее выпрыгивайте с этого рубинового поезда пока не поздно и пересаживайтесь на другой!https://thenextweb.com/dd/2017/07/26/ruby-rails-major-coding-bootcamp-ditches-due-waning-interest/#.tnw_DbzSMt3r
>>1035668Радио-Т послушал?
>>1035674Да:-)
>>1035668С самого начала было понятно, что вся эта ажиотация вокруг руби и рельсов - нездоровая хуйня, типа продукции эппл.
>>1035679Значит ты примерно такой же гей-пидор как я, поздравляю.
>>1035681Не, я нормальный, я же Golang программист.
>>1035684Да, ты нормальный гей.
Поясните, пожалуйста, за Рельсы. В чем отличие от Джанги?Сам пайтон програмист с 5ю годами опыта, знакомый предложил перекатиться в его фирму и вдохнуть вторую жизнь в их проект на РоР.Проект - интернет-магазин с CRM и сорт оф 1С-торговля. По зп дает столько же сколько и сейчас платят, но офис в 3х минутах ходьбы в огромном частном доме(Ростов. хуле). Ну и текущая работа достала и до нее 40мин и перспектив никаких. Просто хочется понять, понравится мне писать на Рельсах или нет. Пока посмотрел доки, глянул пару несложных проектов на гитхабе, впечатление что документация хуже, а сам РоР смесь Питона с ПХП(что не есть плохо, как будто взяли Питон и заточили как пхп под веб).Есть ли как в ПХП библиотеки под каждый пук или как в Джанге, т.е. похуже. Как с документацией? Как общее впечатление? Не появляется ли со временем чувства, что делаешь одно и то же?
>>1035747Иди на rubygems.org, вбивай в поиск любое слово и смотри.
у классов есть статическая перменная. она не менялась, но нужно сделать так, что бы менялась.class Model.. @db = MySql.newобразцы Model, с разными @db, должны быть разными объектами. делаю:def new_Model(db) .. klass = Class.new(Model).. klass.db = db.. klassA1 = new_Model(MySql.new)A2 = new_Model(Postgresql.new)A1.db == A2.db => falseкак бы ты это сделал?
>>1037146Что ты понимаешь под статической переменной и почему не используешь сеттеры и геттеры (у тебя код по сути ошибку выдавать должен).Мужик, давай серьёзнее подходи к кодингу.
>>1037403https://repl.it/JwOO/0вот.статическая переменная, это class variable.
>>1037445по ссылке, это как jsbin, можно запускать ruby программы из веб косноли.ну или вот пик.
>>1037445Ты нигде не используешь class variable (@@), у тебя там только instance variable (@).Зачем ты аксессор в методы класса пихаешь, если у тебя нет переменных класса (чего ты видимо не понимаешь).Зачем ты создаёшь объекты из классов в которых только методы класса и переменные недоступные через аксессоры.Вообще непонятно, что ты там делаешь, омич.
>>1037451Блин, персматриваю, что ты делаешь и вот этот Class.new, но всё равно с трудом вдупляю, что именно ты делаешь. Разберись с @ и @@ как минимум.
>>1037483ошибся, это не class variable.но попробуй в примере добавить:p Model.dbразве что, @db в объявлении класса не наследуются и пример не показывает что я хочу. но можно сделать что бы наследовался: https://stackoverflow.com/a/13629724/2560309пример с class variable:class Model.. @@db = MyDb.new.. def self.find(id) # использует @@dbclass User < Modeluser = User.find(id) # использует db = MyDb# нужно не на совсем, переключить dbUser.db = MyNewDb.newuser2 = User.find(id2) # использует db = MyNewDbтеперь я хочу вернуться к MyDb.но я же затер ссылку на MyDb. нужно сохранить ссылку на MyDb, потом ее восстановить.как это сделать без такой возни?что-то такое:_User = User.with_db(MyNewDb.new) # но способ с Class.new не будет работать с @@db do_something(_User)_User.find(id)
>>1037514>нужно сохранить ссылку наВоу, вот тут даже не знаю как. может тебе дополнительную переменную использовать, вручную написать акссессоры и геттеры, как рекомендуют на стеке.Если реализуешь свою задумку кинь сюда код, интересно будет посмотреть.
По активности ваших тредов создаётся ощущение, что руби умирает (рейтинги языков тоже создают такое ощущение), хайп прошел что ли? Количество вакансий не уменьшилось?
>>1037543Блин я тут года три наверное вижу тебя)))А руби конечно умирает, чем ему ещё заняться-то?
>>1037543Зайчик, элита по определению не может быть многочисленной, а элитные треды не могут быть быстрочятиками.
>>1037547>Руби>ИлитаЧем вы отличаетесь от пхпшников?
>>1037543> активности ваших тредовОП прошлых тредов куда-то пропал, а остальным немножко похуй, вот и весь секрет.
>>1037550Тем, что на пхп крутится 80% интернета, а на руби три сайта запилено двумя с половиной калеками. При этом все эти сайты о рельсах.
Вангую чувака который опять придёт говорить, что руби умер, после того как послушает последний Радио-Т)))
>>1038830Это рельсам вашим лопату вручили, чтоб могилу себе копали, а руби - нужна.мимо jruby-господин
Сэр Юмпутун из Чикаго , прекрасная леди из фейсбуг, бубук из яндекс еще какой-то фраер, сегодня жестко в течении 1 часа имели Руби он рельсника, когда он пришел на подкаст пояснить, что рубя еще жива и имеет спрос в 2к17 году. Хоть он и отмахивался трусами от мух как мог, но никого не убидил в нужности рельс. Так что , все пришли к выводу, что Жанга , спринг бут , и Golang это гуд.А руби он рельсник отправился дальше к себе в картофельную страну , делать стартапы на RoRhttps://radio-t.com/p/2017/08/05/podcast-557/Y
>>1039135Рабочая ссылкаhttps://radio-t.com/p/2017/08/05/podcast-557/
>>1039135>Спонсоры этого выпуска DigitalOcean, Vscale и Тинькофф>критикуют рельсы
>>1039135Не слушал, но в целом согласен с тем что нинужно.>ЖангаЖава и голанг - ок за счет типизации, скорости исполнения, многопоточности, но жанга еще более нинужна чем рельсы, как это аргументировали?
>>1039135Тема холиварная, но интервьюеры хуевые - не смогли раскрыть гостя. От повторения тезисов с их стороны кровь из ушей. Закрыл через пять минут, после очередного 'руби не нужно'.
>>1039166Ну все правильно, если уж пришел Рельсы свои защищать, ту нужно как то хорошо подготовится и выписать на листок список из киллер фич, чтобы можно было нормально отбиваться. Ясный пень, что Юмпутун и Бубук будут всячески подъябывать гостя и троллить.Ты послушай выпуск подкаста, который шел где-то год назад. До этого Юмпутун сильно дристал на Golang и говорил , что не нужен этот яп. После, какой-то Ильюша гофер ворвался на программу и пояснил за Golang.С тех пор у юмпутуна голанг намба ван язык
>>1039162>голанг>типизацияНу это вообще interface!
>>1039162Потому что жанга это по сути низкоуровневый кмс, на которой ты можешь очень быстро сделать что нибудь годное
>>1039166>>1039210На самом деле забавно, потом себя повёл так: типа приходи ещё гость и вообще ты молодец ему говорит.Мне кажется умпутун просто хотел похайпить немного (и ему удалось, этот хитрый лис знает своё дело).А слова Вовика про перл на самом деле можно считать справедливыми. Ну поддерживает же перловые регулярки? Поддерживает.Можно писать запутанный код? Легко.С чем можно всерьёз поспорить так это, выводы ксюши и вовика на счёт стайлгайдов — мол сначала дают и потом отбирают выразительные средства, хотя в том же питоне практически сначала существует и дзен и пеп, который по сути стайлгайд.
>>1039210> Ясный пень, что Юмпутун и Бубук будут всячески подъябывать гостя и троллить.Я понял, поэтому и выключил. Возможно, конкретно эта часть программы получилась столь радикальной, а в остальном ребята - охуенные спецы, которые рассказывают клевые штуки, тут не знаю. Но вот так уж получилось, интересную мне часть выпуска они провалили. Поэтому на это> Ты послушай выпуск подкаста, который шел где-то год назад.отвечу отказом. Слушать их не интересно. Ну ненужен раби, так ненужен.
>>1039213Так же как и рельсы, которые в целом всегда были (и остаются) более развитым и популярным решением по сравнению с жангой.Проблема вообще не в рельсах или джанге. Столько скриптовых язычков в принципе нинужно. Они особо друг от друга ничем не отличаются, при этом вынуждают хранить в голове кучу бесполезной информации, потому что то там, то сям, приходится сталкиваться с каждым из них.Это говно на раби, это на пхп, тут на питоне, здесь 100500 диалектов лиспа. У каждого языка свои библиотеки, свои особенности, свое окружение - все это надо помнить (а потому использовать, чтобы не забыть), а окружение поддерживать.Каким бы не был плохим джаваскрипт (а он начиная с ES6 не такой и ужасный) - лучше пусть все интерпритируемое говно пердолят на нем, к чему мы в итоге и идем. Даже со всеми транспайлерами сегрегация все равно не такая огромная получается.
>>1039135 раньше DSLи были популярны.поэтому rails может казаться магическим.вот dsl который имитирует комманду linux, route:ssh '192.168.0.123' do.. route add default gw '192.168.0.24'.. route del default gwendна js:ssh('192.168.0.123', (cmd) => {.. cmd.route(add(default(gw('...'))))})
Сап рубибоги, написал небольшой api на синатре для своей прилаги на андройд. Просто отдает некоторые json файлы по urlам. Могу ли я где-нибудь захостить такую штуку за бесплатно?
>>1040584Heroku
>>1040584OpenShift
Сап!Подскажите, как можно на рубях запилить docx? С табличками и картинками.
>>1041088на rubygems.org искать по ключевому слову docx не пробовал?
>>1041159Искал, но у каждого гема есть фатальный недостаток, увы.
>>1041205>фатальный недостатокЛол, ну так напиши сам.А вообще я посмотрел, и там похоже один гем который создавался для полного цикла работы и позволял создавать docx. Имхо, хорошая возможность запилить такой гем.
>>>>1041235>Лол, ну так напиши сам.Щас бы ради время тратить на опен-сорс.
>>1041251комьюнити*
>>1041235С радостью бы запилил, но знаний маловато, а времени ещё меньше.
>>1041419Эх, писечка, у меня та же фигня.
Здарова, посоны и посонессы. На связи прошлый ОП руби-тредов, который с головой погряз с работе и заходит к вам раз в полгода ридонли. Что уныло-то так?
>>1042962Все, похоронили руби. Мы тут всем тредом бреем бороды и перекатываемся java, писать некогда, еще весь core изучать.
>>1043257>Сначала руби>Потом javaМожет хватить учить вечно умирающие продукты?
>>1043272И что же порекомендует изучить благородный дон? Может быть вечно молодой хаскель или вечно живой кобол? Или может быть стоит стать ближе к народу и перейти на js?
>>1043288Сярп и асп.нет к вашим услугамИли если хотите ещё словить хайпа, то питон, он на западе как раз разгоняется
>>1043288GOO
>>1043304Ну это толсто, сударь. Вы бы ещё сказали, что go набирает обороты. Язык топ-10, а работы на нём как не было, так и нет! Вот незадача!
>>1043327Ну в России и в iot работы нет, а в белых странах она есть
Народ, поясните, почему рубисты такие пидоры и считают что те, кто пользуется IDE, графической оболочкой для гита, нормальными текстовыми редакторами(а не vim) - инвалиды и не настоящие программисты?
>>1043572Потому что хипсторы на хайпе а сейчас они активно укатываются в жс
>>1043576Я сам кодирую на JS и учу ноду, вроде не хипстор. Даже под виндой девелопю, а сервер на виртуалке.
>>1043576Даже думал вкатиться в рубин
>>1043583Если сервером управляешь через консольку через ssh, то норм.
>>1043576Эликсир, не? Насчет жс - то тут уже всем приходится, на рынку труда фуллстек подороже будет.
>>1042962Потому что нет работы. Не понимаю, зачем я несколько лет назад послушал долбоёбов, которые говорили ДА РАБОТЫ ДОХУЯ БАБЛО ДОЛЛАРЫ КАТИСЬ БЫСТРЕЙ!!!1 Эй, бойцы! Вас опять наебали!
>>1043594Да так вообще-то белые люди и делают.
Так я не понял.Месяц вкатывался в руби, щас начал в рейлс. Мне ничего не светит с работой?
>>1044452Твой рубиновый хайп трейн сошел с рельс
>>1044452Можешь оставить его в качестве хобби. Вкатывайся в более реальные вещи.Я недавно тоже был молодой и шутливый. В итоге устраиваюсь джавистом. Руби это здорово, но жрать хочется уже сегодня.
Мой рубиновый поезд пошел под откосРжа времен сожрала ваши рельсыГем судьбы паутиной и пылью поросВот и кончились красные пьесы
>>1045441А сами тайно изучаем руби, чтобы вкатывальшики не узнали. Им лишь бы хайп, а то что в питухоне невозможно dsl делать, им безразлично - они до такого не допрут.
>>1045442>питухоне невозможно dsl делатьhttps://habrahabr.ru/company/pt/blog/319320/
>>1045444Ну ты понял - в самом питонокоде - имелось в виду.
>>1043795Рубя конечно не питон, за два дня не учится, но несколько лет... Я за четыре года в рубях научился писать расширения на Сях, создавать из обычных модулей shared-контексты rspec, специфичные для тестирования каждого уровня абстракции от моделей до интеграции, написал под один проект библиотеку для создания форм-обьектов, интеракторов, туеву хучу рельсовых валидаторов, перехуячил традиционную схему использования pundit в контроллерах, набросал гору примитивов ФП и модели акторов. Сегодня вот захуячил map-reduce чтоб файлы на s3 переименовать под новую схему путей. Выучил es7 и реакт, чтоб не переписывать огромный фронтенд сделал либу для интеграции реактовых компонентов в существующий генерируемый рельсой html. При этом я даже не претендую на какие-то глубокие познания в CS. Парсеров не пишу, о сложности алгоритмов думал в последний раз в школе на олимпиадах, ибо в sql/redis все реализовано, берешь и используешь. Я бы сказал, обычная работа обычного веб-разработчика на непятистраничном проекте. Когда представляю, как бы такой проект писался на js или go с их простынями шаблонного кода вместо средств языковой выразительности, метапрограммирования и нормальной системы типизации, похуй, статической или динамической, начинаю понимать, почему кроме микросервисов на них нихуя не пишут. Кстати у нас есть сервисы на питоне и го, написал и забыл, удобно. Поддерживается все это, и код, и devops тремя людьми всего, при более чем 30 серверах на проекте.Как-то так работаем, а начинал 4 года назад с raillsturorial. Чё ты там несколько лет в руби учишь непонятно, даже с четвертью этих знаний работа за пару недель находится. Впрочем, типичный /pr, захожу уже чтоб душу отвести и поплакаться, что до сих пор не в Калифорнии живу.
>>1043595>ЭликсирБыл бы хорош, если бы не слабоватая (в сравнение с рубишной) типизация, доставшаяся от эрланговой вм. Под слабой типизацией я имею ввиду, конечно, неявные преобразования типов. А так вроде даже работа есть, на rubyjobs регулярно видел вакансии, когда мониторил.>ФулстекДавно уже сказано:1. либо ты охуенный бекендер и каждый день делаешь нелегкий выбор между консистентностью и масштабируемостью, или, держа в голове десятки узлов sql, mongo, redis, memcached, rabbitmq, микросервисов и туеву хучу бизнес логики, пытаешься понять где нужные данные уже посчитаны и как их извлечь, чтобы хотя бы приблизиться к удовлетворяющему клиентов времени реакции одной части системы на изменение в другой её части в условиях eventual consistency2. либо пилишь формочки на реакте и однообразные апишки для них на рельсе3. Либо ноешь на двачах что нет работы
>>1043572Потому что в условиях стартапа, где 3 человека поддерживают помимо рельсового приложения несколько микросервисов на 3 других языках в совершенно разных средах, 2 персистентных хранилища данных, 3 редис сервера, rabbitmq, кучу балансеров, несколько кеширующих серверов, шеф-конфигурацию для деплоя всего этого дерьма на 30+ серверов с 4 тысячами строк рецептов, при полном отсутствии спецификации на всю эту инфраструктуру, даже переключение с ide на консоль чтобы посмотреть как там называется ключ конфигурации третьего бакета на aws s3 в другом репозитории:>grep -ne "s3:" ../backend/config/secrets.yml137:s3:>sed -n '137,170p' config/secrets.yml.....Занимает так много времени, что тебя будет раздражать и ты сам придёшь к этому.Хотя для формошлепов мб IDE норм.
>>1045693А вот и успешные стараперы подтянулись, которые работу за 10 человек делают и жалуются
>>1045687>Под слабой типизацией я имею ввиду, конечно, неявные преобразования типов. Единственное неявное преобразование в эликсире, это Integer -> Float.
>>1045693Звучит как работа сисадмина.
Я совсем ещё зелёный, поэтому прошу помощи. В общем пишу плагин для Redmine на рельсах. Суть его в создании дерева задач. В контроллере объявил переменную для поиска проекта с параметром его id. Во вьюшке загружаю массив всех задач (без подзадач) этого проекта. И для каждой задачи с помощью итератора each ищу все подзадачи с помощью root_id. Сортируются они по времени создания, а надо чтобы выглядело: Отец 1 Сын 1 Сын сына ) Сын 2Отец 2 Сын ....Как реализовать подобную сортировку, если есть массив с отцами у которых (root_id = id отца, parent_id = nil) и массив детей у которых (root_id = id отца самого первого, parent_id = id задачи от которой наследуется, например для сын сына это сын 1, для сын 1 это отец 1).
>>1045693вим все равно не нужен.
>>1045768А чем плох вим, очередной неосилятор режимов и/или консольки?
>>1045771Конкретно в твоем случае >grep -ne "s3:" ../backend/config/secrets.ymlРечь идет о выборе шелла и навыках в смежной профессии devOps'a.А вим не нужен, потому что я хочу писать код, но не возится месяц с настройкой текстового редактора.
>>1045774>А вим не нужен, потому что я хочу писать код, но не возится месяц с настройкой текстового редактора.Понятно, очередной неосилятор. А мне-то показалось, что ты про реальные минусы (конекретно вима) хотел что-то сказать.А если бы ты хотел код писать, то не вымораживался тут на доске.
>>1045775> мне-то показалось, что ты про реальные минусы (конекретно вима)Некогда с очередным дурачком в спецолимпиде участвовать, сорри. Ты подебил!
>>1045777Слушай ну круто ты психологию применил, типа и согласился со мной и пассивно-агрессивно укусил — аки течная сучка.
>>1045775>Реальные минусы вимаПриходится пердолится, что бы начать писать код, сказали жеПро неосиляторство можешь не продолжать даже, ещё спроси почему все генту с арчем не устанавливают, каштомизация же. Нужно использовать инструмент, а не бороться с ним>Если бы хотел писать код, то не сидел бы тутЯ че, должен это все время делать без права заходить в программач?
>>1045780Я и без конфига и плагинов писал, ничего сложного.А плагины поставил и конфиг написал, вместо того чтобы на бордах сидеть.Неосилятор.
>>1045783Ну мне то не надо ничего писать, что бы ide работало, и все удобства есть, пока ты пердолишься, люди код пишут
>>1045786>и все удобства есть, пока ты пердолишься, люди код пишутНет, как раз таки написал один раз конфиг и больше не возвращаюсь к нему. Всё работает абсолютно предсказуемо.Наверное ты сразу пишешь код конечно, ну как сразу после того как система отвиснет после очередного индексирования проекта, ой вот уже и ноут заряжать надо или просто остудить в морозилке)))
>>1045803>очередного индексирования проектаИспользование вим ускоряет работу файловой системы?>ноутНормальные люди работает за десктопом с полноценным процессоров, а не мобильной затычкой с урезанными частотами и за 2-3 мониторами 24+ дюймов, а не 15 дюймовой щелью.
>>1045808>Нормальные людиОни как раз используют ноутбуки, чтобы всегда иметь возможность кодить.Будто блин что-то мешает подключить ноут к двум мониторам — ты к нам из 15 века пишешь, крестьянин? Все уже давно используют либо доки либо usb-c на макбуках для организации работы. Приходишь на работу и подключаешь одним кабелем (или ставишь синкпад на док) и работаешь.На самом деле я не против десктопов, но IDE и на десктопе будет тормозиьт пока проект возюкает.>Использование вим ускоряет работу файловой системы?Вот и прорезались программистские знания — проблема тут не в ФС совсем.А так конечно ускоряет, ещё волосы шелковистые становятся, а борода более окладистой.
>>1045780А это традиция такая. Вот в C менеджмент с памятью - это не удобно и пердолинг. Надо динамически и dick'лоративно.Только пердолинг с памятью ускоряет работу программы, а пердолинг с текстовым редактором нет.
>>1045810Смешал в кучу системное программирование с прикладным и dsl'ным.
>>1045809>Нормальные люди> всегда иметь возможность кодить.https://www.youtube.com/watch?v=bP0ktrxdHUw
>>1045814Точно также можно было ответить и на твоё «Нормальные люди», так что не надо тут.
>>1045817Надо-надо, как же нормальный человек в толчке, без возможности кодить, жить будет!
>>1045818Ну началось, в ход пошло всё: глупенькие видюшки с тытрубы для 12-летних детей, и унылые гротески.Я тоже так могу:Ну как же это кодить без 30-ядерного зиона!? У меня в атоме просто курсор не будет нормально двигаться без высаженных под 100% минимиум 6 ядер, и 8 гигабайт слитой оперативки ещё на этапе загрузки редактора. Нормальный человек и в текст-то не сможет вникнуть без массива из 12 мониторов (хотя это для слабаков, нужна парочка другая IMAX-проекторов).
>>1045819Атом, кстати, говно, хотя и красивое. Мне vscode внезапно нравится, эдакий опенсорсный клон сублайма.По сабжу. В 2017 не уметь в синхронизацию настроек для редакторов (ide) для рабочих компов - ну не знаю, зашквар какой-то. Ты хоть папочку в дропбоксе создай, мань. Не таскать же железо с собой постоянно.
>>1045823Спасибо, у меня уже есть папочка на гитхабе.А таскать ноут с собой дико удобно, можно быстро перемещаться и по своему зданию и по рабочим делам. Не знаю чё ты так вцепился в десктопы, я понимаю если ты был бы 3D-моделлер, фотошопер или видеомейкер — вот где реально нужно постоянно обсчитывать дофига всего и действительно по делу (меши генерить, трансформировать, текстуры ресайзить, эффекты накладывать), а не копошиться в коде проекта как свинья в грязи каждые пять минут да ещё и оправдывать этим покупку дорого хардвера (ты же не компилируешь там даже, а тупо код пишешь, а компилиция вообще на билд-серверах).
>ноутбук, что бы кодить везде>пердолинг с vim>илитарность>называет неосилятором всех, кто хочет работать, а не пердолитсяЕще одно подтверждение, что руби используют высокомерные хипсторы
>>1045742Вот как минимум:The reason we can compare different data types is pragmatism. Sorting algorithms don’t need to worry about different data types in order to sort. The overall sorting order is defined below:number < atom < reference < function < port < pid < tuple < map < list < bitstring
>>1045832>илитарностьНечего, сказать — обвини оппонента в элитизме, при этом рассуждая про нормальных людей и тех кто может себе позволить очень дорогой десктоп, а кто нет (при этом забывая о ценах на лаптопы).
>>1045832> руби используют высокомерные хипсторыЯ бы не был столь категоричен, он же признался в шкомпилировании; попахивает залетным растаманом, но это не точно.
>>1045836Ты студентик что ли? Хороший пк можно купить через пол года, после начала работыСтаж какой у тебя?
>>1045844>(при этом забывая о ценах на лаптопы)
>>1045843Руби и раст? Ну это как то слишком прогрессивно
>>1045774>Конкретно в твоем случае Ты другому человеку ответил, ну да ладно.>>1045764>Звучит как работа сисадмина.>>1045774>grep -ne "s3:" ../backend/config/secrets.yml>Речь идет о выборе шелла и навыках в смежной профессии devOps'a.Другие члены моей команды, пожалуй, девопсы, да. Я иногда правлю шеф-конфигурацию, мб пару строк в шаблоне конфига, не более. В остальном я с девопс не имею ничего общего.Вообще, мб мой пример не очень удачный был. Вим крут не тем, что в консольке работает, а механизмами работы с текстом офк. Всякие Vim-mode в IDE и текстовых редакторах обычно сильно уступают ему в возможностях. Руби-среда хороша автоматизацией. Многие функции IDE берут на себя консольные тулзы. Можно подключить к ним графический вывод. Весь рабочий стол становится IDE. Короче, ощущение нехватки функции в редакторе проходит после написания rake-задачи, ее заменяющей. А вот ощущение от нехватки фич Вима не проходит, пока не вернёшься к виму.
>>1045855>Всякие Vim-mode в IDE и текстовых редакторах обычно сильно уступают ему в возможностяхВ каких например? vim-mode в Idea вполне неплох.Функции IDE, впрочем, действительно нинужны по большей части. Пользовался исключительно из-за навигации (find symbol, go to definition) и автокомплита, качественной реализации которых нет ни в одном редакторе.
>>1045765>Как реализовать подобную сортировку, если есть массив с отцами у которых (root_id = id отца, parent_id = nil) и массив детей у которых (root_id = id отца самого первого, parent_id = id задачи от которой наследуется, например для сын сына это сын 1, для сын 1 это отец 1).Обьединяй в один массив, и делай>tasks.sort do |a, b|> if a.parent_id || b.parent_id> next -1 if a.parent_id.nil?> next 1 if b.parent_id.nil?> end> a.name <=> b.name>endЗамени последнюю строку, если сравниваешь не по имени, а как-то иначе
>>1045765А, у тебя вложенность больше одного бывает? Почему бы тебе тогда не пройтись по дереву рекурсивно, на каждом шаге итерации добавляя задачу в конец массива? Создай класс, в инициализаторе создай пустой массив, объяви в нем функцию рекурсивного обхода, принимающую корень дерева как аргумент.
>>1045833Согласен, два неявных преобразования, но второе объясняется тем, что в эрланге все иммутабельно, а для иммутабульных мапов тебе нужна возможность сравнивать элементы в ней (элементы в дереве).
Господа ниндзи, а подскажите пожалуйста следующую штуку:Есть app на rails 4.2 и mountable engine. В основной апликухе поднят action cable, всё прекрасно работает - каналы регаются, бродкасты летают.Вот в упор не пойму, как зарегать новый канал из engine. Подскажите пожалуйста, c меня как обычно.
>>1045826>можно быстро перемещаться и по своему зданию и по рабочим деламМожно, конечно, но ты уверен, что разработчиком работаешь, если тебе постоянно приходится куда-то перемещаться?>ты же не компилируешь там даже, а тупо код пишешь, а компилиция вообще на билд-серверахНет, я запускаю/компилирую код у себя на машине в большинстве случаев.>оправдывать этим покупку дорого хардвераХороший десктоп стоит не дороже макбука.Я не отрицаю нужность ноутбуков, я говорю, что работать (не бегать по зданию или еще куда-то) за десктопом удобнее.
>>1045898>Нет, я запускаю/компилирую код у себя на машине в большинстве случаев.Ты там хеллоу-ворлд девелопишь?>Я не отрицаю нужность ноутбуков, я говорю, что работать (не бегать по зданию или еще куда-то) за десктопом удобнее.Удобнее работать так как лично человеку удобнее. Тем более если есть возможность ходить по зданию, а не сидеть на привязи в офисе/опенспейсе. Только не говори про нормальные компании пожалуйста где у каждого разработчика свой кабинет, в котором кроме него только шлюшка которая ему болт под столом полирует.
>>1045930>ходить по зданиюУ вас там модное большое здание как у Яндекса? Можно прилечь в гамаке, посидеть на здоровенных больших подушках (забыл как называется), пойти в кафетерий? Тогда не совсем понятно, почему вам рабочие ноуты не выдают, деньги-то есть. Если денег нет, то ходить можно разве что в соседний кубикл, как правило.
>>1045890Ну так стоило для этого отдельный метод выделить, как #hash и #eql? в руби
>>1045765>>1045876Держи, анончик:http://ideone.com/TSlCD3
>>1045937>Можно прилечь в гамаке, посидеть на здоровенных больших подушкахВообще охренеть. А у нас начальник даст пизды, если заснешь на рабочем месте в опенспейсе.Москали совсем зажрались, я погляжу.
>>1046082Я фрилансер-нищук, просто предположил на основе случайных постов в интернете. Впрочем, последние два киевских бодишопа, в которых работали знакомые, 5 лет назад выглядили примерно так, как я описал.>начальник даст пизды, если заснешь на рабочем месте в опенспейсеОчень зря, короткий дневной сон сильно повышает продуктивность.
Помогите протестировать метод. Выглядит он так:>def method> method1> method2> method3> method4>endТо есть, просто ряд других методов. Внутри каждого из них может быть либо вызов стороннего API, либо where, либо update_attribute(), либо ещё какая шняга, часто "деструктивная".Сейчас спека такая:https://gist.github.com/anonymous/b7a96016e31d5674cf43dffcf15ca35bНо сеньер сказал, что это хуйня, надо переделывать. Вопрос - каким образом?
>>1046266method1,.., для них есть спеки? если нет, то зачем ты проверяешь вызываются другие методы или нет? если этот метод ничего больше не делает, кроме вызова публичных методов, то что еще тестировать? можешь порядок вызовов еще проверить.
>>1046266Ну метод у тебя типичный контроллер - вызывает много сложной, но разной логики, друг с другом мало связанной. Про allow to receive забудь сразу, нечего к реализации привязываться. Пиши обычные интеграционные тесты.
> Six confusing features in Ruby> ... Just use == 0, it is TOTALLY readable, and NOT ugly at all. ...на rubyflow учат как код писать
>>1047728там любой мимохуй может написать новость
>>1047818Вся статья такой перл; жаль там комментов нету, я б оставил пару токсичных.
Ну что, рубаны? Как там с работой? Так и воюете с мистером Камалем из Индии за 15 долларов в час? А в офис чего не пойдёте? Ааа, так некуда идти. Я и забыл. Сегодня увидел вакансию рубиста в своей мухосрани. На радостях побежал откликаться, а там всё прозаично оказалось. Очередной веб-раб за еду, БРАТАНАМИ и командным духом. Вы как вообще рубями зарабатываете то? Для меня это уже сродни маструбации. Толку нету, выбросить жалко.
>>1048572Мимохейтер мимикрировал? Я джва года ищу в этом треде людей на пет-проджект, а тут все кто более-менее че-то научился делать указываются работать, в итоге тут одни новички сидят.
>>1049114укатываются
>>1049114Что за pet-project у тебя? Что-то интересное?Никогда не слышал, чтобы домашнего любимца делили на несколько человек
>>1049114>Я джва года ищу в этом треде людей на пет-проджект А я год работу. В моей мухосрани о рубях не знают в принципе. А если и знают, то платят 40-50к с тестовыми вроде "написать гем для платёжной системы". Я не знаю, где вы тут все работу находите. Это нереально блядь просто, я уже заебался нахуй.
>>1049200А чем ты руководствовался при выборе языка? Просто понравился? А BrainFuck не пробовал изучать и работу искать?
>>1049243Не, я на чикен пишу в свободное время. Чем руководствовался? Ну понравился, очевидно же. Есть гемы, всё в языке является объектами. Плюс есть рельсы. Но, по сути, из-за безработности так и остаётся языком для пет-проджектов. На работу всем нужны миддлы и помидоры. Просился джуном, не взяли нигде ПОК ПОК ПОК КАДРОВЫЙ ГОЛОД, РАБОТАТЬ НЕКОМУ, КАДРЫ НУЖНЫ ГОТОВЫ БЕСПЛАТНО УЧИТЬ КУКАКРЕЕЕЕЕЕКУУУУУ!
>>1049200>мухосраниЯ думаю ты и сам догадываешься что нужно делать.
>>1049312Выпилиться, чтобы потом родиться в мегаполисе?
>>1049279Можешь попробовать потеребить питуна, похож на руби, есть работа в разных сферах и больше 1 фреймворка
>>1049323Гвидобейсик тоже не нужен: >>1049301Только PHP на 1С Битриксе
>>1049332Ну если ты собираешься гнить в россиюшке, то да, это хороший выбор
>>1049312Ну как обычно, все аргументы свелись к ДС. Рубисты по дефолту в ДС рождаются что ли? А то у вас тут я смотрю на третий день работу находят после вката все, один я как лох сижу.
>>1049323Ты серьёзно? Он тоже труп. Джанга никому не нужна. Даже рельсы выигрышней смотрятся. Максимум, что я видел в продакшене — всякие костыли по типу jython.
>>1049365А теперь сравниваешь вакансии на питоне и рельсах (ведь для другого руби и не нужен) и понимаешь кто на самом деле умер
>>1049160Я так и думал, что никого он не ищет на самом деле
>>1049365>эти проекции будущего бомжа
Вот что за советики:> Reduce boilerplate as much as possibleкоторые призывают дополнительные зависимости тянуть, ради красивых однострочников. Это так не работает, особенно когда пишешь гем.Или> For example, predicate methods (smth?) should return true/false and not something else (e.g., 0/1).Это вкусовщина. В руби вообще нету булева типа, между прочим. А код из другого примера > if response =~ /Couldn\'t find series/возвращает не то, что вы думаете. Слабенько, evilmartians. http://gemcheck.evilmartians.io/
>>1049390Оба?
>>1049613
>>1049623Фикс
>>1049623И что? У руби судя по твоим графикам всё нормально. Работа с переменным успехом прибавляется. Ну и ты обосрался, указав британию. Всё рубийное смуззи в штатах, на американских проектах. Европа довольно старпёрная. У дойч банка вон джава 6 до сих пор.
>>1049623А чего это питон с начала 15-ого года так резко попер? Неужели чисто из-за asyncio?
>>1049643
>>1049665Ну ладно, убедил! Пошёл за своими миллионами и кучей работы в петухон!
>>1049712Лучше в пхп.
>>1049714Точно! Там денег ещё больше!
>>1049714Ты удивишься, лол
Бабка на 1 канале, жестко опустила рубистов> старшие поколение выбирают Golang!https://youtube.com/watch?v=_Z_k5G73ttk
>>1049949Променяла хайповое говно на хайповую мочу. Молодец. В говне хайп умер, в моче — лишь вопрос времени.
Безработные 2 года заходят в тред самого популярного (на считая пэхопэ) и высокооплачиваемого языка для веб-разработки и кукарекают, что руби умер. 2 года не меняются аргументы, опровергнутые ещё в шапке треда.
>>1049200>А я год работу. В моей мухосрани о рубях не знают в принципе. А если и знают, то платят 40-50к с тестовыми вроде "написать гем для платёжной системы".Я не знаю, где вы тут все работу находите. Это нереально блядь просто, я уже заебался нахуй.Внезапно, в твоей мухосрани и на питоне работы нет, а на JS будет что-то вроде клепать анимации на jQuery для говно-cms на битриксе.Ты за год не догадался пойти на удалёнку, где изи можно устроиться на 1к баксов в месяц. Я работу на 2к баксов нашёл за неделю. Палю годноту, только тссс, никому не показывай: http://rubyjobs.ru/
>>1049584>Это вкусовщина. В руби вообще нету булева типа, между прочим.Вкусовщина, что разве это не вкусовщина, которая ничего не стоит (написать !!result), но даёт приятный опыт работы в консоли, когда foo.bar? не возвращает огромный массив на полэкрана. В руби любят самодокументирующийся код, если ты вызвал foo.bar? и получил true, то тебе не надо лезть в документацию и вспоминать, что этот метод значит, ты знаешь, он говорит тебе, что foo - это гарантированно bar.
>>1050178>>1050180Как определить жив ли язык?Посмотреть количество джун-вакансий, а у руби с этим все очень плохо
>>1050187Видимо, это правило не работает. У Руби никогда, даже в 2011, не было много джун вакансий.
>>1050188>У Руби никогда, даже в 2011, не было много джун вакансий.Это как вообще? Все сразу РоР-программистами с двухлетним стажем стали? До 2011 он не нужен был
>>1050190Внезапно, если ты сеньёр веб-разработчик и изучаешь новую технологию, то ты идёшь на свою первую работу с этой технологией как сеньёр, а не как джун.
Все равно все сосут у лучшего фреймворка
>>1050185defined? так не работает, а вкусовщину выдавать за постулат - моветон.
>>1050180>Внезапно, в твоей мухосрани и на питоне работы нет, а на JS будет что-то вроде клепать анимации на jQuery для говно-cms на битриксе. Да, только ты забыл добавить туда php 4-5 версии с index.php на 10к строк от Васяна, вёрстку, ещё опционально деплой всего этого говна и знание какого-нибудь C#/Java. Разумеется, всё это за 20-30к в месяц. >Ты за год не догадался пойти на удалёнку, где изи можно устроиться на 1к баксов в месяц. Я работу на 2к баксов нашёл за неделю. Палю годноту, только тссс, никому не показывай: http://rubyjobs.ru/ А сколько ты там раз видел джунов/миддлов на удалёнку? Я вот года полтора уже периодически мониторю. Джунов за это время я видел ровно ноль, миддлов — иногда. Всем нужны помидоры/лиды. И потом эти люди ходят и орут РЕБЯТ, КАДРОВЫЙ ГОЛОД, РАБОТАТЬ НЕКОМУ, ОТ БЕЗЫСХОДНОСТИ ТЕХНОПАРК ЗАПУСКАЕМ! ДАЁШЬ СИНЬОРА ЗА 2 ГОДА!
>>1050178А чего ж они безработные, непонятно...Это как с Delphi
>>1050192То есть Руби новичкам никак нельзя советовать, получается?Потому что работу они не найдут. И тогда надо советовать... с чего там на Руби сеньоры перекатываются?
>>1050569Добро пожаловать в пхп тред, через два-три года можешь сюда вернуться
Мне сегодня перезвонили 3 раз за год на рубиста , ибо нужен миддл. Ну, КАДРОВЫЙ ГОЛОД, РАБОТАТЬ НЕКОМУ, сами понимаете. Отчего в моей голове возникла мысль о создании описания сферического рубиста в вакууме. Господа выше заметили, что джунов-рубистов не бывает, сразу учат минимум на миддлов. Отчего в голове всплывает определённый образ. Итак, рубист. Какой же он? Давайте попробуем рассмотреть его поближе: — Родился и вырос в Москве, либо переехал туда недавно. — Далеко не беден, может позволить себе довольно дорогие инструменты разработки — macBook, jira, heroku. — Пришёл в руби сразу как минимум на миддла, демонстрируя высокий уровень мастерства правда, тесты только недавно научился писать, но неважно — Презирает виндовс. Совсем. Даже 10 версию. Даже с полноценной линупсовой консолью. Но, при этом привык к лёгкости и простоте установки, отчего и пользуется макбуком. — Знает только один фреймоврк. Опционально кодит на js, создавая велосипеды для своего приложения. ES6 он поробовал, ему понравилось, но в проектах пока не использовал. Господа, а какие черты рубистов заметили вы? Прошу дополнить.
>>1050704>Господа, а какие черты рубистов заметили вы? Прошу дополнить. Замени макось на маздай95 и руби на ц++ начала девяностых. «Я знаю, как написать графическую оболочку для всего!»
>>1050255>А сколько ты там раз видел джунов/миддлов на удалёнку? Я вот года полтора уже периодически мониторю. Джунов за это время я видел ровно ноль, миддлов — иногда.Ок, тут мой опыт для тебя бесполезен. Свои первые полтора года я работал на Upwork, только потом уже нашёл работу на rubyjobs как миддл (за 2к баксов, я хз, это миддл наверное).Так может повторишь мой путь и попробуешь Upwork? Я первый заказ за 4 дня нашёл (фикс на 90 баксов, сделал за 5 дней, это была вообще моя первая работа в области программирования), хотя в гайдах пишут что до месяца может уйти с пустым профилем. Гайды посмотри, там всё подробно расписано. Английского достаточно письменного, у меня разговорный считай никакой, за полтора года на Upwork устно общался только с одним заказчиком раза 2-3 всего.
>>1050704>Родился и вырос в Москве, либо переехал туда недавно.Милионник, региональный центр. Работаю в офисе сейчас, но до этого 2 года удалённо.>Пришёл в руби сразу как минимум на миддла, демонстрируя высокий уровень мастерства4 года олимпиадного программирования и проектов "для себя" на питоне и Си, поэтому мб сейчас, после 3 лет что занимаюсь разработкой профессионально, буду претендовать на senior, если буду менять работу.>правда, тесты только недавно научился писать, но неважноУж не помню, по-моему почти сразу, как начал работать, но они уже были на моём первом проекте, их надо было поддерживать, и было на что ориентироваться.>Презирает виндовс. Совсем. Даже 10 версию. Даже с полноценной линупсовой консолью.>Но, при этом привык к лёгкости и простоте установки, отчего и пользуется макбуком.Принципиально FOSS, сейчас Debian. К тому же это и моя серверная ОС основная, наряду с Ubuntu.>Знает только один фреймоврк.Знаю рельсы, синатру, джангу, фласк, react (inb4 это библиотека), redux.>Опционально кодит на js, создавая велосипеды для своего приложения. ES6 он поробовал, ему понравилось, но в проектах пока не использовал. Не могу писать на JS без Babel. Язык знаю хорошо, просто воротит от синтаксиса. Собираю webpack'ом на рельсовом проекте.>Господа, а какие черты рубистов заметили вы? Прошу дополнить.Любят Руби, недолюблювают другие языки. Сужу по себе. Впрочем, с Babel на фронте вполне можно жить.
>>1050614А чем Руби лучше ПХП, чтобы с него на Руби перекатываться?
>>1050704>Презирает виндовс. Совсем. Даже 10 версию. Даже с полноценной линупсовой консолью.А что в 10 винде полноценная линукс консоль?
>>1050704>ES6 он поробовал, ему понравилось, но в проектах пока не использовал. Кстати, а какие хорошие учебники есть именно по ES6?
>>1051083Учишь JS, потом изучаешь это:https://babeljs.io/learn-es2015/https://babeljs.io/docs/plugins/Зачем отдельный учебник? ES2015 это просто препроцессор и набор полифиллов. Язык не меняется, поскольку сохраняет полную обратную совместимость.
>>1051080Это классикаhttps://m.habrahabr.ru/post/142140/Я слышал, правда, что язык сильно изменился нынче. Но верится мало, что описанное в статье более не актуально. JS тоже сильно изменился, но не избавился от ключевых проблем. Но на нём, по крайней мере, можно писать хороший код, обвешавшись доп. инструментами вроде Babe, Flow. Сомневаюсь, что PHP совершил больший прогресс, нежели JS.Для Руби нужен единственный инструмент - RuboCop. Несмотря на то, что статический анализ кода на Руби в теории сложнее, чем в Python или JS, в Руби эта задача решена лучше (но статической типизации пока не подвезли, да).
>>1051092Когда я начинал усить Руби, у меня тоже был баттхерт от нестандартных и криво реализованных фич. Так что я разочаровался уже с первых шагов (ожидания были разрушены - язык не идеален), как впрочем и с другими языками (Питон, Java и др.) - раньше или позже.Так что говном в других бросаться не стоит.
>>1051091Ну как сказать... многие вещи в JS уже стали как бы "deprecated".
>>1051120Статья недаром называется "фрактал плохого дизайна", эта выразительная фраза выбрана чтобы уже заголовком дать понять - статья не о недостатках PHP, она о том, что PHP - это один большой недостаток, и в отличие от языков с нестандартными и криво реализованными фичами, на которых при желании можно писать качественный код (пример - путь развития современного JS), PHP просто пора выкинуть на помойку. Опять же, повторюсь, если его недостатки не умудрились чудом устранить в новой версии. В принципе, в отличие от JS ему не надо сохранять обратную совместимость, поэтому шансы есть, но вникать в это я не хочу. Мы в Руби-треде, хочу напомнить.
>>1050984>Так может повторишь мой путь и попробуешь Upwork? Ну а какой уровень у тебя был? У тебя был подтверждённый тестом скилл? Я вот сдавал и получил 2.75. Такой себе, сам понимаешь.
>>1051121Создатели ES2015, наверное, хотели бы, чтобы эти вещи из движков убрали, или хотя бы полностью поддерживали новый стандарт. Однако разработчики браузеров пока не спешат вводить фичи, а уж тем более что-то убирать. Если сейчас эти "как бы deprecated" штуки отключить, пол-интернета сломается.
>>1051151Во-первых, тесты есть в паблике, я прошёл руби и питон самостоятельно на 4.1 и 4.5 вроде, через три недели перепрошёл, глядя в ответы, на 5. Во-вторых, 2.75 за 1.5 года изучения технологии - это стыдно должно быть.
>>1051153 Стыдно, да. Но мне хочется жрать, поэтому я вынужден работать, а рубями заниматься в свободное время.
>>1051157Я так и не понял, чем ты год там занимаешься. Покажи гитхаб. Я тебе код ревью сделаю, скажу, что стоит подучить.
>>1051158Ну покажу я свои бложики-боты для телеграм. Толку? Знакомые джуны после тудушек вкатываются на js в Москве. Чем я хуже?
>>1051165>тудушекЧто за тудушки - это название каких-то посиделок?
>>1051165>Ну покажу я свои бложики-боты для телеграм. Толку? Знакомые джуны после тудушек вкатываются на js в Москве. Чем я хуже?Может быть твои знакомые джуны не выделывались когда им предлагали код ревью провести? У тебя слишком много самомнения, хз.
>>1051257Это когда делают голландский штурвал в опенспейсе.
>>1051165>Ну покажу я свои бложики-боты для телеграм. Толку? Знакомые джуны после тудушек вкатываются на js в Москве. Чем я хуже?Видимо, тупее. Если ты за год не сделал тудушку на JS и не пошёл джуном, то дело не в Руби, а в том, что ты ни на Руби, ни на JS, ни на чём другом программировать не можешь.
>>1051712Обязательное условие при приёме на работу JS-джуна?
>>1051165>Знакомые джуны после тудушек вкатываются на js в Москве. Подробнее можно?
>>1051713>Если ты за год не сделал тудушку на JS и не пошёл джуном???
https://pastebin.com/rSJ8RZ4eКотаны, для чего в модуль из кода выше вложены переменные класса, или что вообще происходит при использовании "class << self", что-то я запутался совсем.И на самом деле из этой же оперы у меня ещё есть вопрос, зачем иногда в классах делают кучу подклассов (типа "class Foo ; class Bar ; nil; end; end"). Это нормально? Я видел приём где это делается чтобы выплюнуть объект, но почему нельзя сделать не вкладываю классы один в другой.
>>1051806> что вообще происходит при использовании "class << self"https://stackoverflow.com/questions/2505067/class-self-idiom-in-ruby> Это нормально?Это допустимо.> но почему нельзя сделать не вкладываю классы один в другойhttps://stackoverflow.com/questions/6195661/when-to-use-nested-classes-and-classes-nested-in-modulesИ это, иди в телеграмм, найдешь 5-6 активных каналов, в т.ч. обучающий.
>>1051859>телеграммЧем IRC людей не устраивало? Или Jabber?Нет надо свой велосипед.
>>1051919Тихо-тихо, не ворчи.
>>1051806у руби есть singleton classes, не Singleton патерн. https://ruby-doc.org/core-1.9.3/Object.html#method-i-singleton_classпусть есть module A. def self.x . endendкак происходит поиск метода при вызове: A.xметод x, будет искаться в методах singleton_class. A.singleton_methods.я думаю, class << self, как и def self.x, эквивалентно:PayRoll.instance_eval {. def your_method...}instance_evalhttps://ruby-doc.org/core-2.2.0/BasicObject.html#method-i-instance_evalсм. View source:VALUE klass = singleton_class_for_eval(self); // вернуть singleton classreturn specific_eval(argc, argv, klass, self); // передать singleton class в specific_eval.сравнить с class_eval:https://ruby-doc.org/core-2.2.0/Module.html#method-i-class_evalreturn specific_eval(argc, argv, mod, mod); // тот же specific_eval, но передается mod.т.е. instance_eval добавляет к singleton классу, а class_eval к тому классу, в котром он вызван."attr_accessor :x", это тоже самое, что написать:module A. def x=(v); @x = v; end. def x; @x; envendA.x не будет работать так-как методы не добавляются к singleton классу класса А.A.singleton_methods=> []нам же нужно добавить к singleton классу:A.instance_eval { attr_accessor :x }A.singleton_methods=> [:x]ну или class A. class << self...endтолько что нашел, но еще не читал книгу Ruby under microscope. там есть секции про классы и объекты и поиск.
>>1051806>зачем иногда в классах делают кучу подклассов (типа "class Foo ; class Bar ; nil; end; end")Внешний класс служит лишь пространством имён в этом случае. В его методах к вложенному классу можно обращаться по имени его константы (Bar), а не по полному имени (Foo::Bar).>Это нормально?Короткий ответ: да.Длиный ответ:Если вложенный класс - это небольшой утилитарный класс, используемый внешним, то да. Если вложенный класс становится большим, то его стоит вынести в отдельный файл:># lib/foo.rb>class Foo>end># lib/foo/bar.rb>class Foo> class Bar> end>endНо тут есть нюанс при использовании RuboCop. Он по умолчанию требует комментарий к каждому непустому классу, но не модулю. Логично написать к классу Foo в файле lib/foo.rb, но RuboCop будет ругаться, что такого комментария нет в lib/foo/bar.rb, ведь он анализирует файлы независимо друг от друга. Отсюда следует, что его создатель, он же создатель известного стайлгайда Руби, не одобряет использование классов как неймспейсов, если содержимое слишком велико для одного файла, и предлагает переделать Foo в модуль, а класс Foo поместить внутрь этого модуля, например, Foo::Car. В моей практике это оправданно в 50% случаев. Советую смотреть по ситуации и если это не оправдано отключать RuboCop для этой строки:># lib/foo/bar.rb>class Foo # rubocop:disable Style/Documentation> class Bar> end>end
Кто там ныл что джуниоров не берут на удаленку?http://rubyjobs.ru/vacancies/4991Вкатывайтесь, за дошираки.
я прошел ruby on rails куда дальше ?
>>1052696В пхп тред
>>1052702Это я еще в универе прошел. А дальше ? какой путь ?
>>1052620Стоит им написать или нет? Я вчера изучил немного связные списки — чувствую себя очень умным.
>>1052620Меньше 2 долларов в час - достойная плата для скриптомартышки.
Руби тред не на нулевой? Пора это исправить неофитским вопросом!В приложении GET запрос вида «локалхост:порт/контроллер?параметр1&параметр2» отдает json с данными, которые я хочу вывести в одной из вьюх. Как правильно обратиться из хелпера вьюхи? Я же не должен используя URL обращаться, ведь так? Это же не внешний сайт какой-то.Пускай, данные получены и даже отображаются в нужной форме (в моем случае это простая таблица). Хочу на странице отображать поля «параметр1» и «параметр2» куда вводятся желаемые параметры, а при нажатии на кнопку неподалеку, страница бы подгружала обновленные данные в соответствии с запросом. Как это сделать? А используя ajax как это будет выглядеть?Заранее спасибо за ответы.
>>1053076А то! Уже майонезом питаемся:https://meduza.io/shapito/2017/08/29/yapontsu-sozdatelyu-yazyka-programmirovaniya-ruby-ponravilsya-rossiyskiy-mayonez-no-on-ne-ponyal-chto-za-protsenty-na-upakovke
>>1053348https://apidock.com/rails/ActionController/MimeResponds/InstanceMethods/respond_to
>>1053402Я читал уже, мне бы обратиться из другого контроллера/вьюхи. Как именно это сделать-то в моем случае, с параметрами?
Предложили работу на руби он рейлс, у самого неполный c# стак (главу по asp только прочитать успел) + весь троелсен без асп, html, css. Хрюше я озвучил, что руби в глаза не видел. Но сказал, что видел питон (ненавижу эту тварь). Спросил, что почитать, говорит, ознакомьтесь как то, чтоб в ступор не впадать. Но разговор был вообще мутный, вроде как собеседование я прошел по телефону (ниче такого у меня не спрашивали, пост, гет и те я сам озвучил). Зовут вроде как уже на работу, но я хз, что это будет из себя представлять. Собственно, вопрос, что мне почитать(посмотреть) за выходные?
>>1054914Туториал М. Хартла. Еще ни разу не отвечал никому ничего другого независимо от предыстории.
>>1054914Как предложили, если не секрет?
>>1055035Валяюсь я такой в кровати, вдруг звонок от hr. Номер нашли в резюме, которое висит уже больше месяца и там чистый шарп стек. Контора до этого несколько раз резюме смотрела. Привлечь мог разве что мехмат в резюме (коственно hr это показала).
>>1055052Ебашишь такой матан по хардкору, а потом формочки клепаешь, красота...
>>1055080Формочки такое. Но нормальных вакансий на матане, почти-что, не сущесвтует.
>>1055112Машобчик, не матан, но что то около того
>>1055126Это просто унылый дроч, такой же как и формочки.Вообще местная студентота такая наивная, мол если мотематика или там что-то околонаучное то автоматически не унылый дроч, а дохуя интересно, ага щяс.
>>1055171но хоть нужное. хотя с машоб, это не всегда нужно. ну и быть в курсе что происходит в мире, а не что происходит в руби или около этого.ну и если можешь матан, то и электронику можно самому уже правда, и физику и немного химии с биологией, просто так.а с руби ты только руби и можешь, не интересно.
>>1055195с руби ты можешь любой современный язык и технологию
>>1055197Это реальный мир.
>>1054985>ХартлаВот это?Hartl M., Donahoe L. - Learn Enough HTML to Be Dangerous. A tutorial introduction to HTML. (2017)
>>1055639https://www.google.ru/search?q=Hartl+M
>>1055648Меня гугл забанил серьёзно
Аноны выручайте. Нужен инсайд по ruby/ror-проектам в EPAM. Есть ли они? На каком этапе? Их долгосрочность? Ищутся ли новые?Спрашиваю потому что их официальные представители говорят одно, знакомые другое, я потерялся уже и не знаю кому верить.
>>1035747на Нансена, мань?
Заинтересовался Ruby через приложение SoloLearn для мобильного. Они его внезапно русифицировали, поэтому я потыкав Python, Java, C++, остановился на Ruby. Есть в нем что-то от простоты. А я люблю простое.Сейчас воткнув на древнем ноутбуке Atom+GitHub, вооружившись справочником по математике, учусь решать уравнения. Приветствую всех, возможно я с вами надолго.
Аноны, подскажите, вот есть у меня дев приложение на рельсах, там вроде веб сервер пума, а если я хочу продакшн версию, мне нужно дополнительно сервер ставить апач или нжинкс и в чем преимущество продакшн версии?
>>1057019rails server -e productionПума - полноценный веб-сервер, ничего лишнего не надо.
>>1056864Попробуй шарпач. Зависимость есть, брат- жив.
>>1057106Вряд ли его ноут потянет шарпоIDE.
>>1057053вроде ЗОРОБОТОЛО но теперь другая хуйня - сервер падает, как сделать автозапуск?На сервере убунтец 16, скачал руководство по системд
>>1057380cron
>>1057380так и сделал. Посмотрим что сегодня ночью будет, а то меня уже анально поебывают, хули дескать твое ПО не работает.
>>1057380Кури systemd. Писать юниты очень просто. Вот как сделать сервис для сервера Puma: https://github.com/puma/puma/blob/master/docs/systemd.md
>>1050704>— Родился и вырос в Москве, либо переехал туда недавно. Дс3 вот и гадай что это>— Далеко не беден, может позволить себе довольно дорогие инструменты разработки — macBook, jira, heroku. Около бомж с бюджетом 1к на неделю.>— Пришёл в руби сразу как минимум на миддла, демонстрируя высокий уровень мастерстваХз на кого я пришел, туплю как сука, после шарпа, с вашей утиной типизации, мне мозг клинит.>— Презирает виндовс. Совсем. Даже 10 версию. Даже с полноценной линупсовой консолью. Но, при этом привык к лёгкости и простоте установки, отчего и пользуется макбуком. Шинда мое все, в кармане винфон, сам хотел учить uwp, когда позвали.>— Знает только один фреймоврк. Опционально кодит на js, создавая велосипеды для своего приложения. ES6 он поробовал, ему понравилось, но в проектах пока не использовал. И этот фреймворк не знаю. И Js не знаю.Мимо >>1054914 кун>
>>1059408>винфонБлин это система червь-пидор, зачем ты купил его вообще?
>>1059474Покупал его маман, она не стала его осваивать, оставшись на кнопочном. Когда мое ведро сдохло, вместо покупки нового, я достал с полки этот винфон.
>>1029529 (OP)Руби походу всё посоны. Популярность на StackOverflow достигла уровня 2009 годаDeveloper interest is waning, and now Coding Dojo, one of the largest programming bootcamps in the United States, has ejected it from its curriculum. This, it explains, is due to lower employer demand for the technology.
>>1061711В этой статье речь идет не о Ruby, а o Rails. В качестве альтернативы рельсам предлагается “There’s plenty of really great web development alternatives,” Shaw said, mentioning React, Vue.js, and “the rise of JavaScript not sucking so bad.” . В качестве замены MVC-фреймворку предлагают фронтенд-библиотеки. Найс. А тот самый Coding Dojo, который отказался от Rails, заменил его на Javовский Spring. Если что, про Java тоже постоянно говорят, что она умирает и т.д.
>>1061731Про Delphi тоже говорят что умирает. Врут собаки. Жив, жив Курилка!
>>1061731Вот только на джаве хоть что-то периодически выходит. А на рубях выходят только в основном никому неизвестные исходники на гитхаб.
>>1061731Ваш тред даже на двачах был нихже хаскеля, пока я его не бампанул.
>>1061744Даже не знаю, на кого этот траллинг рассчитан. На каких-то залетных новичков? Тред конечно живее не становится, это да.
Я на руби свои скриптики пишу и мне норм. не такой фашистский синтаксис как в питухоне, и при этом не такой адовый синтаксис как в перле.У меня не много опыта в кодинге, но при взгляде на на код на трёх этих языках руби выглядит лучше.
>>1061799>не такой фашистский синтаксис как в питухонеЭто пока ты в команде не начал работать, жёсткая стандартизация лучше, чем когда каждый пишет как хочет
>>1061806И в чём проблема придерживаться стайлгайда?
>>1061807В пифоне просто стайлгайд один, а не множество, и это прекрасно
>>1061814Везде где смотрел на руби код прямо указывается один стайлгайд на гитхабе.В командах ещё и рубокопы всякие применяются, чтобы палить тех кто от стайлгайда отходит.
>>1061815В таком случае аргумент о фашистском синтаксисе пифона не принимается
>>1061815>Везде где смотрел на руби код прямо указывается один стайлгайд на гитхабе.Везде — это полтора гема? Открой хотя бы рельсу, включи рубокоп и наблюдай как стайл-гайд соблюдается.
>>1061855У них свой конфиг для рубокопа, это допустимо:https://github.com/rails/rails/blob/master/.rubocop.yml>>1061842Если ты не в команде, то пиши как хочешь, ты просто хейтер.
>>1061867> У них свой конфиг для рубокопа, это допустимокоторый использует 3,5 правила из всего гайда, раскомментируй эту строчку в rubocop.yml> DisabledByDefault: trueи наблюдай.
>>1061876закомментируй
>>1061876В рельсе свой стайлгайд (из-за рельсового dsl) и что? У них есть план и они его придерживаются.
>>1061940> и что?В отличии от го, никто (из нормальных людей) не обязан и не соблюдает рубиновский стайл-гайд на 100%. Скажем, если мне нравится писать `return` в конце метода, то буду писать его везде, где это допустимо/не портит устоявшийся стиль.
>>1061958Ответственный за мерджинг пробежится рубокопом и зарулит твой коммит.В го просто изначально прибит гвоздями гоfmt чтобы макаки нанятые гуглом не могли накосячить ну ок, в больших корпорациях так нужно.Руби от этого хуже не становится и все инструменты для осуществления подобного контроля также есть. Если мистер которые владеет проектом решил использовать стайлгайд, значит все остальные будут либо писать по нему, любо искать другой проект.
>>1061968> Если мистер которые владеет проектом решил использовать стайлгайд, значит все остальные будут либо писать по нему, любо искать другой проект.Значит, нужно искать другой проект. Стайл-гайд обязан быть аргументирован, почему так не надо писать — это руководство по тому, как не наступить на грабли, читая чужой код. Чьи-то хотелки, как в случае с https://github.com/bbatsov/ruby-style-guide#no-explicit-return не несут в себе никакой практической цености.
>>1061976Руби это язык упирающий на читаемость и коммьюнити именно за это и любит рубишку, поэтому и гайды такие.Рэльсовики стараются в данном случае брать и следовать этому в своём руководстве.Хотелки это у тебя, а у них большой опыт и философия которая подкрепляет гайд.Как и весь синтаксический сахар в руби опускание ретёрнов призвано улучшить читаемость.«А я вот на плюсах всегда return 0 ставлю, мне так нравится!», но руби это не твой какой-то предыдущий язык, своя атмосфера, такие вещи надо просто принять.
>>1061981А не мог бы ты аргументировать практически свои слова про коммьюнити? Давай возьмем 1000 самых популярных гемов и прогоним по ним рубокоп со всеми галочками. Сколько варнингов будет?> опускание ретёрнов призвано улучшить читаемостьОб опускании (в контексте статического анализа) Матц говорил что это не так уж и хорошо. Моя позиция простая: опускание ретурнов в угоду читабельности делает систему менее предсказуемой.
>>1061990>Давай возьмем 1000 самых популярных гемов и прогоним по ним рубокоп со всеми галочками.Если в проекте есть свой конфиг рубокопа, то прогонять нужно по нему. Гитлеровские штучки как в питоне и го здесь неуместны. Потому что руби это не питон или го (которые живут на поддуве гугла, руби только сейлсфорс поддувает).>Моя позиция простая: опускание ретурнов в угоду читабельности делает систему менее предсказуемой.Каким образом? Проявляется какое-то недокументированное поведение?Чтобы сделать систему более предсказуемой существуют всякие ensure или можно просто nil поставить в конце функции если ты её опроцедурить хочешь.В JS вон вообще надо извращаться с запятыми и прочими знаками пунктуации просто чтобы код нормально работал.
>>1061993> Если в проекте есть свой конфиг рубокопа, то прогонять нужно по нему.Я нахожу несколько двуличным когда с одной стороны, ты не даешь мне отключить конкретное правило рубокопа, а с другой — для тебя ок, когда третьи лица отключают едва-ли не весь рубокоп. Ещё немного и начну кидаться какашками в тебя. Братюня, не доводи.> Каким образом? Проявляется какое-то недокументированное поведение?Пишешь код, а через год не можешь сказать, возврат значения — запланирован, или это артефакт. Если не запланирован, то использовать его далее по коду - как минимум, не ок. В комментариях к методу еще бы и возвращаемые типы расписать, если это не 'примитивы'.
>>1062002Ещё раз повторяю, руби это не питухон и не гомого — хочешь используешь метод size, хочешь юзаешь count или даже length. Алиасы, тысячи их.Хочешь отключить в своём проекте все фильтры и оставить только свои — ок, хочешь дефолтный стайл гайд — пожалуйста.Просто ты, как говорят, любишь по жёстче с самого начала.>Пишешь код, а через год не можешь сказать, возврат значения — запланирован, или это артефакт.Тесты как раз для этого придуманы насколько я знаю, они проверят оутпут твоих функций. Также можно реализовать методы проверки типа на соответствие классу или что-нибудь такое.
>>1062009>Просто ты, как говорят, любишь по жёстче с самого начала.Наоборот, я люблю нежно и ласково.> Тесты как раз для этого придуманы насколько я знаю, они проверят оутпут твоих функций. Также можно реализовать методы проверки типа на соответствие классу или что-нибудь такое.Т.е. вместо самодокументирующегося кода предлагаешь писать миллион тестов, на те 10% редких кейсов? Да и и неудобно это: из-за каждой мелочи лезть и читать тесты.
>>1062018>Т.е. вместо самодокументирующегося кода предлагаешь писать миллион тестов, на те 10% редких кейсов? Да и и неудобно это: из-за каждой мелочи лезть и читать тесты.10% чемоданов это уже не редкость, а на совсем экзотические случаи я предлагаю забить (иначе говоря не делать преждевременную оптимизацию или избыточное покрытие тестами) и после первого сообщения о баге переписать функцию нормально, а с опытом функции будут «сами собой» писаться нормальными.
>>1062022Прости, но нахожу твою аргументацию недостаточно убедительной или как в случае с > Ещё раз повторяю, руби это не питухон и не гомого — хочешь используешь метод size, хочешь юзаешь count или даже length. Алиасы, тысячи их.вообще не понимаю каким боком алиасы связаны с вопросом о `return`.
>>1062028>вообще не понимаю каким боком алиасы связаны с вопросом о `return`Таким что return в большинстве случаев это (синтаксический) сахар.А руби настолько OOP язык, что в нём постоянно идёт обмен сообщеньками вот и всё. Хочешь залочить функцию, пиши nil в конце и всё.
Нужна помощь. Пилю на рельсах имиджборду и думаю над связями между моделями. Пока что у меня получилось так: есть модель Post, вот такая вот: https://pastebin.com/j3NAdrtvПолучается такая система, что если у Post id равен thread_id, то это, собственно, сам тред, а если нет - значит, это ответ. Сделал так потому, что хочу, чтобы id были, как на всех имиджбордах. Насколько хорош такой способ? Можно сделать проще?
>>1062824На обезьяну сверху справа надо академическую шапку.
>>1029529 (OP)Нахуй ваш Руби, когда есть Crystal?https://habrahabr.ru/company/ruvds/blog/337992/
Блин два часа тупил с проблемой подавления вывода stderr, подключал open3. Оказалось у меня в другом месте просто был один вызов не экранированный.
>>1063142>CrystalCтатически типизированный руби?
>>1063152Нет, он компилируемый. Типы указывать в коде не надо.
Сап гайс.Прошу помощи с тестом контроллера на акшон oauth аутетнтификация.на скринах соответственно тест и ошипка.облазил все интернеты, так и не могу понять в чем проблема и что я делаю не так.
>>1063226Судя по скринам ты используешь саблайм и убунту. Надеюсь помог.
>>1063305Это намек на то что еще какая-то инфа нужна?
>>1063226да хз вроде что-то пустое отправляется символы поменять на обьекты
>>1029529 (OP)Ну чё, пагни? RailsClub 2017 уже сегодня!https://habrahabr.ru/company/railsclub/blog/335120/https://habrahabr.ru/company/railsclub/blog/335378/https://habrahabr.ru/company/railsclub/blog/336690/https://habrahabr.ru/company/railsclub/blog/337378/https://habrahabr.ru/company/railsclub/blog/337862/https://habrahabr.ru/company/railsclub/blog/338208/https://habrahabr.ru/company/railsclub/blog/338278/https://habrahabr.ru/company/railsclub/blog/338412/
> Почему твой доклад на RailsClub 2017 называется «Ruby is dead»?У меня есть официальное разрешение от Матца называть Ruby мертвым языком :) Конечно, это провокация. Не новость, что я всегда критикую Ruby и Rails. Мне нравится Ruby, но я всегда сравниваю его с другими языками. В докладе я покажу примеры из Java и PHP, расскажу как они развивались и как сильно улучшились за последнее десятилетие. Но Ruby остался таким же, как 20 лет назад, и это должно быть предупреждением для нас. Я хочу остаться в Ruby, но он должен развиваться! Многие люди переходят на другой стек, потому что хотят работать с языком, который решает их проблемы. Моя проблема — как создать стабильное и надежное коммерческое приложение. Да, в Ruby процесс добавления новых фич, таких как, например, поддержка типизации, идет очень сложно, во многом из за поддержки обратной совместимости. Но ведь другим языкам удалось это сделать!Двачую этого.
> С другой стороны, я думаю что Ruby напрасно лишён интерфейсов. Из-за этого невозможно строго определить, какое именно поведение ожидается от метода, что было бы особенно полезно для авторов библиотек. Я надеюсь когда-нибудь это починят. Также не думаю, что в будущем Ruby сыграют заметную роль библиотеки, в которых будет реализовано то, чего нет в ядре языка. Новые фичи по-настоящему заработают только тогда, когда станут частью ядра Ruby. И конечно, реализация должна быть сделана как следует.И этого тоже
>>1065235>>1065237Ты петух драный, не собираешься ссылку приводить? Тебе хоть интерфейсы, хоть типы дай, один хуй будет непонятно что ты хочешь.Ещё блядь отступы попроси.
>>1065245Братишка, это из статей по ссылкам из >>1065232 Братишка, будь, пожалуйста, менее токсичным.> Ещё блядь отступы попроси.Нет отступы не надо. Я бы ещё попросил библиотек побольше, но слабая экосистема - меньшее из злободневного. Лучше аннотации на уровне языка ( костыльно они реализованы в подделке от джетбрейн).
>>1065247Сам ты братишка, не буду я перебирать все эти статьи, а ты ещё и бака-гайдзин.
Сап, рубяги.Есть вопрос, как лучше реализовать маршрутизацию типа двача,к примеру: /pr/t1, /b/t45 и так далее.
>>1065876У тебя всё получится.
>>1066062У него все получится, просто передай GEM HUIPIZDA INSTALL
Есть кто работал с графовыми БД? Хотел использовать neo4j, а он оказался платным. Следующая по популярности OrientDB не имеет нормальных либ для рубей. Че посоветуете?
>>1068904Ну напиши нормальную либу сам.
В последнее время почитываю блог Ruby-программиста.http://blog.topolyan.com/Просто оставлю это здесь.
Где хранятся токены для сессий на сервере? По идее при каждом запросе должны сверятся ключи из кук и на серваке, так ведь?Хочу сделать отслеживание залогинен пользователь или нет
>>1069806Ну мог бы для приличия бложик свой на рубях запилить, не на вордпресе
>>1071879Как я понял сессии по дефолту хранятся в куках в зашифрованном виде, перенёс всё в редис и стало проще ими оперировать
>>1050704>— Родился и вырос в Москве, либо переехал туда недавно. Засранск на севере. Правда, поступил в мск на бюджет, но вылетел с 6-го или 5-го семестра, потому что не ходил на физ-ру>Далеко не беденСам-то как думаешь?>macBookАнус пятилетней давности с докупленными ssd на 128 и оперативкой до 16.>jiraНа стажировке была, да, но я не знаю как там за нее платили.>herokuЗаливал на фри место псевдопетпроджекты.>Пришёл в руби сразу как минимум на миддлаСначала стажировка я правда думал, что хоть что-то заплатят, съебал через 2 недели, последние пару недель — июнь на удаленке 30-40к, что очень круто в моей ситуации на самом деле по меркам этого города>правда, тесты только недавно научился писать, но неважнохех>Презирает виндовс. Совсем. Даже 10 версиюВ дуалбуте дрисня, но я туда давно не грузился. Игрушки же и все такое прочее. У меня там скайп еще.>Даже с полноценной линупсовой консольюCmder я туда поставил, но, по сути, не пользовал.>Но, при этом привык к лёгкости и простоте установки, отчего и пользуется макбукомАрчиком, где есть yaourt + AUR.>Знает только один фреймовркЭто ты про рельсы, лол? Вообще я пытался реакт/вью учить между собеседованиями, так что не знаю, чек или не чек.>Опционально кодит на js,Что-то околонулевые знания.А еще я не знаю что такое смузи, например.Такие дела.Со мной всё будет хорошо?
Фигасе, ваш тред еще жив. Помню, год назад начинал учить руби ввиду отсутствия вакансий так и не продолжил, что-то сюда спрашивал. Руби, не умирай! кстати, эликсир есть смысл учить в широком смысле?
>>1072672Нахуй нужен. Иди вон CRUDошлёпить на пыхе.
>>1072672Смысл есть. Но если ради денег, то учи джаву.
>>1072755И вкатывайся через пять лет. Нахуй джава не нужна.
Помогите ньюфагу, почему не детектит гем? Ставил руби на мак по гайду с сайта rvm.
Аноны, подскажите, а как эта хуетень на руби зовется, мне нужно что бы на сервере крутилось что-то вроде фонового задания, сервиса или как там его.
>>1073304Крон?
>>1073304сайдкик, рескью?
>>1073304бля, сорян за тупой вопрос, в общем как в терминологии руби называется кусок кода который работает в постоянно режиме, сейчас я вроде все так представляю, зашел пользователь на веб сервер, началась работа в контроллерах, а мне нужно то что бы запускало и работало, в моем случае загоняло данные в БД
>>1074088в руби не знаю, но так демонв рельсах active job
>>1074381ок, спс, наверное действительно то, что мне нужно
Анон, пипец как вакансий мало. Я уже больше полугода мониторю - один треш какой-то:- легаси, "поддержка и развитие"- не ит-конторы- бездушные бади-шопы (которые тоже ит-конторами язык не поворачивается назвать)- удаленщики- просто мутные конторы с мутными командамиМониторю хх, мойкруг и руби-джобс. Что делать, хочется работать в интересном проекте и/или здоровом коллективе, а я сижу тухну в одном болоте и просто некуда уйти даже.Где еще поискать можно? Внезапно в Питере часто мелькают интересные вакансии, но боязно переезжать.
>>1063226Не используй тесты контроллеров, они устарели. Ошибка в том, что параметр provider равен nil, т.е. отсутствует.
>>1062765Я бы не стал так делать, но на двачах так, да.
>>1049160Да что угодно. Сейчас планирую свой VPN-сервис поднимать с фичами, которых нет НИГДЕ, но, по словам знакомого, который подобными сервисами активно пользуется, крайне востребованными. Надеюсь взлетит.
>>1074693На удалёнке иди, 2к баксов за сидение дома изи. Если претендует на большую ЗП, то ничем не помогу.
>>1074693>ькают интересные вакансии, но бояа на чем видишь интересные вакансии?
Что повторить перед собеседование на перекат PHP->RUBY ?
>>1077099Отче Наш.
Котаны я долго не занимался кодингом, но когда-то на руби что-то начинал учить, но из-за личных проблем оставил это, а сейчас совсем делать нечего – стоит допройти рейлс туториал или нет?
>>1077203Стоит всегда что-то делать. А если делать - то делать заебись.
>>1077203Стоит, рельсы сейчас очень даже котируются, т.к. стабильное, проверенное, удобное решение + версия 5.1 наконец-то въехала в современный веб с вебпаком и т.д.
Стоит въезжать в эликсир фор фан, если опыта на руби - ноль? Или там куда важнее знание ерланга? Или он вообще на 95% независим от них всех?
>>1077231скоро выйдет кристалл и все узкие места можно будет писать на нем вместо элексира, так что нет.
>>1077231Больше от эрланга, но вообще можно и с нуля вкатываться.
Посоны, ради фана, вкиньте сюда пару вакансий, которые считаете интересными.Я либо не там ищу, либо в глаза долблюсь - но нет нихуя на рынке вообще.
>>1077399PS: кроме удаленки, там что-то есть, но это не для всех
>>1077319Я, как руби-макака, успел немного разочаровался в кристале. Язык прикольный, ruby inspired, да; но документации, стайл гайдов категорически не хватает. Вкатываться в такое можно, если есть опыт в смежных языках, иначе больно. Вот например, вчера баловался с weak algorithms (GA) на кристале. Для переменной внутри гена объявил union typed variable. Через час выяснилось: union не умеет в многие типы, замыкания. И что тут делать? Обмазываться дженериками? Лепить тысячу классов? Всё не то. Разве что идти искать решения в чужих исходниками — тоже такое. Вот думаю теперь: отложить кристал на пару лет, да попробовать скалу или раст. По скале уже полистал документацию по ней - испытал мультиоргазм - разжевано очень подробно, как раз для таких дурачков как я. Так что не разделяю твой оптимизм на счёт кристала.
>>1077687Наверное ты плохо умеешь гуглить, а это очень важно. Раньше я тоже считал, что по Руби мало инфы, но с ростом опыта начал находить, и очень много.Style guide https://github.com/bbatsov/ruby-style-guideДаже на русский переведен https://github.com/arbox/ruby-style-guide/blob/master/README-ruRU.md
>>1077399hh.ru
>>1078032
>>1078097И что это значит?
>>1077687Что такое дженереки?
>>1078180Обобщенный тип данных в статических ЯП. При приведении (("type erasure") к дженерику, можно использовать один и тот же код для разных типов,
>>1078034Сразу видно типичного программиста. Немножко не от мира сего; "идеальный" код, который делает не то что просили...
Есть класс автомобилей, с атрибутами: позиция и скорость. Я создаю массив объектов этого класса.Затем есть второй класс - симуляция. В нем я в цикле по времени (1 сек) вычитаю расстояние текущего автомобиля из предыдущего. Как это сделать? Делаю через each но там как я понимаю счетчик только для одного объекта, как обратиться к предыдущему объекту?код https://ideone.com/1ETRlT
>>1078238Типа как перегрузка методов в крестинах?
Обращаюсь к мастодонтам разработки.Какое самое больше количество таблиц и размер БД вы встречали в своей практике в веб-приложениях?
>>1079200Нет, в крестах аналог — templates.https://en.wikipedia.org/wiki/Template_(C%2B%2B)
>>1078610Enumerable#each_conshttp://ruby-doc.org/core-2.2.0/Enumerable.html#method-i-each_conshttps://ideone.com/dogXO2
>>1080385>https://ideone.com/dogXO2Что означают скобки в: «|(prev, nxt)|» ?
>>1081142Очевидно присвоение массива в переменные типа `a, b = [1, 2]`. Не знал про это, где можно почитать про конструкцию?
Насколько же некоторые люди промытые, пиздец простоhttps://github.com/thoughtbot/factory_bot/issues/921#issuecomment-231569572А вообще там все issue достойно отдельной статьи
Мне, ньюфагу, сказали, что подобная строка вызовет смех у тех, кто будет проверять мое тетсовое. Не могу понять... почему? params[:status].empty? ? @item.update_attributes(is_admin?: false) : @item.update_attributes(is_admin?: true )
>>1082668*тестовое
>>1082668Нет, смех, конечно, не вызовет, то что джуны пишут лютое говно в тестовых привыкаешь быстро, но я бы тебе не перезвонил. Самый минимум можно переписать вот так @item.update(is_admin: params[:status].empty?). Еще в руби обычно называют булевые поля без префикса is, то есть не is_admin, а просто admin. Хотя даже после этих исправлений строчка бы попахивала: обновление поля с именем admin в зависимости от пустоты параметра, который, судя по названию, никак не относится к администрированию. Но что бы понять как конкретно ее можно переписать нужно видеть остальной код.
>>1082708я так понял, что ко мне приебались не из-за способа обновления поля, а именно из-за синаксиса... спасибо
>>1082708Не поверишь. Меня взяли на испытательный срок, во время которого, едиснтвенное, что я делаю- пишу тестовое. Как только напишу- испытательный срок закроют. И мне за это даже немного платят. И это при том, что у меня опыта ноль. Я в ахуе.
>>1082708>Еще в руби обычно называют булевые поля без префикса is, то есть не is_admin, а просто admin.Причем тут руби, если он обращается к ActiveRecord? Ты там поля в базах данных по конвенции Бацова называешь?
>>1082725При том что названия методов генерятся из названий полей. Хочешь названия метод по конвенции -> называешь поля в базе по конвенции.
>>1082823> называешь поля в базе по конвенцииЯсно, всё с тобой, называтель. Хочешь красивые названия для методов-предикаты используй http://www.chrisrolle.com/en/blog/aliasing-the-rails-way
>>1082834>называешь поля в базе по конвенцииА собственно почему бы и нет? А alias_attribute так себе штука, особенно когда у тебя куча овердохуя сложных запросов, путаться начинаешь, когда одна и та же колонка называется по-разному в руби коде и sql.
Ну что, рубаны, в руби 2.5 (https://blog.jetbrains.com/ruby/2017/10/10-new-features-in-ruby-2-5/) вместо нормальных изменений опять завезли только сахарок. Сколько еще будем это терпеть?
>>1082857>А собственно почему бы и нет? Ты ведь в курсе на backend'e зачастую используется больше одного ЯП? Предлагаешь писать на го/эликсире/whatever с нотациями из руби?
>>1082866Я прямо сейчас так пишу, какой-то конвенции в именование полей в базе в любом случае нужно придерживаться же. На беке в проекте используется руби, джава и немного эликсир, никто не жалуется (разработчиков чуть больше 30).Тем более, что за руби-нотация? Выбор-то не очень большой или underscore или camelcase, плюс мелочи вроде постфикса _at для полей с датами.
>>1082668>params[:status].empty? ? @item.update_attributes(is_admin?: false) : @item.update_attributes(is_admin?: true ) Потому что если хочешь тернарник использовать, то> @item.update_attributes(is_admin?: params[:status].empty? ? false : true)А так у тебя ни хуй, ни пизда, говно блядь
>>1082875>Я прямо сейчас так пишу, какой-то конвенции в именование полей в базе в любом случае нужно придерживаться же.В конвенции руби нет понятия суффикса в имени переменной. Без суффикса поля sql нормально не именуются. Так что не думаю, что вы используете конвенцию руби в чистом её виде; полагаю используете смесь стайл-гайда по sql, типа http://www.sqlstyle.guide и отдельных нотаций из рубиновского стайл-гайда. Хотите так писать - ок, однако в базах данных, на мой взгляд, допустимо использовать префиксы is_ для булева типа данных, вот и всё.
>>1082708>Еще в руби обычно называют булевые поля без префикса isБля, а где это интересно написано, что в руби поля называют без префикса is_? Может быть ты хотел сказать в рельсе? Так в рельсе дохуя чего делают, от чего цивилизованный мир уже давно отказался. Уже тошнит всех от этой магии и бесконечного синтаксического сахара.
>>1082999>Бля, а где это интересно написано, что в руби поля называют без префикса is_? Посмотри на стандартную библиотеку руби, например, ни одного метода с префиксом is_ ты там не найдешь.>Уже тошнит всех от этой магии и бесконечного синтаксического сахара. Сам с собой споришь? Я не утверждал, что тонны синтаксического сахара это хорошо, я бы и сам с удовольствием выпилил бы процентов 70 всех методов из рельс, да и вот это >>1082860 меня расстраивает. Но это не отменяет того, что многие вещи в руби сделаны вполне годно, а совсем без синтаксического сахара может получится JavaScript.
Какой дистрибутив и DE посоветуете новичку в прыщах?
>>1083218rails
>>1083029Методы с полями не путай. Где ты видел чтобы писали `admin? = true`? Мне нахуй не уперлось, чтобы фремворк добавлял мне говнометодов на основе типа данных. Были же раньше в рельсах find_by_zalupa_color('red'). Сейчас вот повзрослели. И эта хуйня из той же оперы.is_ так же хорош, как _at. Охуенно удобно читается. В отличии от какого-нибудь active - чего блять эктив, лезь в базу смотри.
Анон, знаешь что-нибудь про эту контору? Годная или бадишоп?
У меня есть model1, у нее has_many model2, а у нее attached_file.Все это на mongoid. Когда файлы приходят из формы, я хочу их все записать в model1.models2 а потом все вместе сохранить, а то у меня сейчас каждый файл пишется отдельно... так можно сделать? что-то не пойму как
>>1084224я все осознал, не бейте, просто обоссыте
Юзаю will_paginate-bootstrap. Все делаю по инструкции. Все работает, страницы листаются, но... кнопки "вперед" и "назад" пустые и схлопнутые, хотя рабочие. Как поправить?
>>1084399>Как поправить?Использовать каминари.
>>1084641Я вынужден писать на старых рельсах, каминари с ними не пашет
>>1084782На первых что-ли? Я помню еще в третьей версии их использовал.Или может просто новые версии со старыми не работают, тогда можно поставить старую же версию каминарей.
Мне нужен одинаковый фильтр для двух контроллеров. Что-то мне подсказывает что должно быть решение, чтобы не дублировать код. Подскажи анон.
>>1085385Вынеси метод в парку concerns.
>>1085574Сдохни, тварь!>>1085385Точнее пиши, какой фильтр?
>>1086504Чому ты такой злой? Почему мой ответ неверный?
У меня есть model A has many model B, model B belongs to A.Для каждой из моделей есть контроллер. В контроллере А в встречается действие которое логичнее было бы вынести в контроллер B. Т.е. я хотел бы из контроллера А вызывать метод, который бы хранился в контроллере B. Это возможно?
>>1086648Возможно. Контроллер инкапсулируется в класс, стало быть напиши что-то Controller1 cnt1= new Controller1;
Опять же есть model A has many model B, model B belongs to A.У модели B есть файл прикрепленный с помощью paperclip. Теоретически у разных экземпляров модели этот файл может быть одинаковым. И тогда удалив один экзмепляр модели, в других экземплярах этот же файл становится недоступен, так как удаляется сам файл с диска. Как этого избежать?
>>1086720вопрос снимается, я нашел
>>1086648ActiveSupport::Concern
Правдивая статистика о зарплатах и вакансиях:https://hype.codes/ruby-rails-developer-salary-russia-october-2017Что бы там ни пиздели про нормальные зарплаты у рубистов, правда в том, что 40% работают за 60 тыр., и еще 27% - за 100 тыр. Т.е. 67% рубистов, работающих в РФ, живут за чертой бедности.
>>1087011Такова участь людей, пишущих на скриптоговне.Есть сиартап перерастает в проект, то все нахуй с рубец переписывается на божественную джаву/задротоплюсы с шарповой оберткой.
>>1086592Извини, анон. Я сейчас работаю в такой параше, где была эпидемия концернов головного мозга и проект натурально невозможно поддерживать, потому что там такая КОНТЕКСТНАЯ ЗАВИСИМОСТЬ, что пиздец просто.>>1086592>>1087010Вообще с концернами нужно работать очень аккуратно. Выделение какой-то логики в концерн - это архитектурное решение, гораздо более серьезное чем решение добавить еще один класс. Выделяемый функционал должен быть хорошо отсепарирован, не зависеть от контекста, и выделение должно быть концептуальным, исходя из предметной области (например, Enumerable в руби), а не техническим (как у анона какой-то фильтр два раза встречается или как некоторые долбоебы модели "сокращают" унося валидации в концерн).
>>1087058приведи пример страшной контекстной зависимости.
>>1086699Я нуб и нихуя не понял, но почитаю про это на досуге
В модели есть метод self.do_huynyaЯ его вызываю из контроллера Model.do_huynyaМожно ли сделать ему доступными переменные кнтролера не передавая их в него как параметры?
>>1087509И еще один вопрос. Опять же model A has many model B, model B belongs to A. У модели B прикрепленный файл.Я прикрепляю невалидный файл.Запихиваю ModelA.modelsb << невалидная хуита. И пытаюсь сохранить. Он не сохраняет. С одной стороны все логично. Но я думал, что это происходит из-за наличия строчки validates_associated :modelsB, оказалось же, что эта строчка не при чем. Что тогда делает validates_associated?
>>1079097 (OP)Всем привет!Хочу писать на Ruby приложения для Android.Есть ли для этого возможность без глючных гемов и т.п., чтобы я просто в Rubymine или другом редакторе захуярил код, а потом сделал apk и протестил на своём телефоне?Вопросы настолько простые, потому что я нуб в программировании, просто есть идеи приложений, которые я хочу сделать.Если ruboto не работает, то что использовать вместо него?
>>1087529мертвая тема, на ruby только веб - 90% Rails, 10%-всякие другие веб-фреймворки и поделия. Можешь попробовать чисто по фану, но смысла в этом никакого нет.
>>1087509Зачем такой ерундой заниматься? Контроллер и модель являются классами. Классы не должны протекать друг в друга, иначе получится нетестируемая, неподдерживаемая лапша. То, что скаффолд генерирует к модели одноименный контроллер - это просто для удобства. Они ничего не должны друг про друга знать и никак друг к другу не относятся.
>>1087626Смотри. У меня есть модель и контроллер Article. Есть модель и контроллер Picture. У Picture есть файл. В нескольких экшенах контроллера Article у меня происходит некоторое действие, которое1. Хотелось бы сделать каким-то отдельным методом, а не повторять несколько раз2. Оно по сути относится к Picture. Я могу его сделать например приватным методом Articles контроллера. Все будет прекрасно работать, но меня старший разработчик уверяет, что это некошерно совсем-совсем. Ок, я взял и вынес это в модель. Но тогда, мне надо вызывать этот метод с параметрами. Этот же разработчик посмотрел и сказал, что в принципе разместить этот метод в модели возможно. Но вызывать с параметрами это тоже пищдец как некошерно. янихуянепонимаю
>>1087659еще проще: в Articles контроллере при создании и обновлении статей должен быть код, который добавляет картинки в статью. Где ему место и почему? А то я совсем запутался.
>>1087659>вызывать с параметрами это тоже пищдец как некошерноПочему так решил? В экшенах контроллера не используют параметры, а в остальных местах очень даже ок. Это же галимое ruby всего лишь.class ArticlesController def update @article = Article.find(params[:id]) success = PictureUploader.call(@article, params[:attachments]) if success head 200 else head 422 end end def create @article = Article.find(params[:id]) success = PictureUploader.call(@article, params[:attachments]) if success render json: @article.as_json, status: :ok else render json: @article.errors, status: :unprocessable_entity end endendА этот самый PictureUploader размещаешь в любой папке из autoload path, чаще всего кидают в app/services. Это и будет код, который будет использоваться хоть несколькими контроллерами, хоть еще как. А можно пока и не выносить в отдельный класс, а просто оставить в одной из моделей.@article = Article.find(params[:id])@article.add_pictures(params[:attachments])class Article < ActiveRecord::Base def add_pictures(attachments) pictures.concat(attachments) endend
>>1087834Бро, а я могу этот пикче аплоадер тупо сделать приватным методом контроллера? В этом какого-то серьезного зашквара не будет?
>>1087844Я изначально сделал тупо приватным методом контроллера. Мне по месту его размещения проверяющие замечания не сделали, но старший разраб сказал, что пиздец зашквар и надо вынести. Я вынес в модель, точно так как у тебя с параметрами, но тот же старший сказал мне, что это блядь зашквар не меньший. Я думаю положить на него хуй, оставить приватным методом контроллера и не ебать себе мозг
>>1087846Пускай тогда старшак конкретно скажет, куда его воткнуть. А то туда нельзя, сюда нельзя, а как именно надо, не говорит. Он может угорает просто? Да и вообще лучше просить у него, чтобы он объяснял, почему считает то или иное зашкваром, а то так чему научишься - просто повторяя его прихоти, но не понимая смысла.
>>1087850Он вообще какой-то странный. Он почти ничего не говорит прямо. То ли религия не позволяет, то ли еще что. Я думаю, что раз проверяющие не приебались то и не надо это править. Он как-то упоминал, что разместить это в модели возможно. Но бляд как я без параметров буду это вызывать из модели???
Вопросы от самых маленьких: мне нужнео получить хеш, но один из ключей должен быть в наличии только при условии. Как записать? Все время ошибку выдает. Пробую что-то вроде{a: 1, b:2, c:3 if x>y}
И последний нубский вопрос. Все тот же Articles и Pictures. Я бы хотел просто передать в update_attributes хэш, вида {text: 'sometext', title:'sometitle', pictures: 'some pictures'}. Но... нужно сделать так, чтобы существующие pictures(если есть) не перезаписывались, а добавлялись. Это возможно?
>>1087946Кажется я совсем тупой. Не прошло и полгода, но дошло в делать в хеше не "some pictures", а "current_pictures"+"some_pictures"
Всплыл еще один вопрос. Записал что-то в @article.pictures. А теперь беру и делаю update_attributes, записывая новые пикчи вместо старых. Старые что, автоматически удаляются? Если да, то хорошо. Вроде как Picture.all.count говорит о том, что лишее удаляется, хотя мне интуитивно кажется, что не должны удаляться
Так, анон, забудь про всю хуйню, которую я спрашивал выше. Все свелось к одному вопросу. У меня есть мой хэш my_huynya. В нем три поля, в первых двух- текст, в третьем- массив. Я хочу сделать что-то типа @article.update_attributes(my_huynya), но первые два поля должны сработать как есть, просто обновиться, а третье, которое массив- должно не обновить, а добавить к уже сущсетвующему. Как это сделать наиболее коротко, четко и деркзо?
Посоны, какая-то херня с Elasticsearch, помогите. Вроде все работало, но потом по некоторым причинам пришлось сгенерировать новое приложение и в него переносить код из существующего. Пустая база. Создаю три объекта. Начинаю искать. По любым полям корректно находит любой объект. Добавляю четвертый. Начинаю искать и бац, один объект(не тот, что попал в базу последним) по одному полю не находится, хотя по другому- без проблем. С добавлением новых объектов все больше и больше тех, которые не находятся. Что это может быть?
>>1089126Кажется нашел. Надо было новое имя индекса задать.
>>1089126> ElasticsearchА че эластик на руби переписали? Офигеть
Такой вопрос: мне сказали, что мое тестовое говноприложение не соответсвует CRUD. Посмотрел, понял, что для одной из моделе вместо стандартного update я использую свой экшн. Если по нажатию кнопки у меня управление пойдет в экшн update, минуя экшен edit(судя по всему он мне тут нах не нужен, мне не нужно редактировать текстовые поля, мне надо поле boolean менять с одного занчения на другое) не будет ли это опять несоответствием CRUD?
>>1089616не будет. Но про нарушение CRUD смешно конечно - им надо проверить, что соискатель умеет в команду rails g scaffold?
>>1089770Я скаффолдом не пользовался. Я вручную сгенерировал нужные мне файлы с нудными экшенами. А этот экшн, который не вписался в CRUD, я создавал сам, руками. И я его сделал не стандартным не потому, что я не знаю как выглядят стандартные, а потому-что до меня сначала не дошло, что он делает ровно то, же что и обычный edit, как только намекнули про CRUD, то сразу понял и исправил.
>>1090017..."этот экшн", забыл сказать, что нашел в чем ошибка, но ты уже понял из моего предыдущего сообщения
https://www.youtube.com/watch?v=MQko1rnkL7w
Ой, а может кто чуть подфиксить игруху https://github.com/yhara/down ? Там через минуту афк включается бот, так вот хочется, чтобы он включался только по нажатию какой-нибудь клавиши, и чтобы его результаты в топ-лист записывались ускорю читэнжином в 100 раз и гляну, сколько за день наберёт
Анон, подскажи нубу. Есть приложение, пусть это будет блог. Если сделать МНОГО записей, то главная страница в первый раз открывается очень долго, несколько минут. Как ускорить процесс?
>>1091120В таких случаях надо показывать код. Скорее всего, ты просто чрезвычайно жопорукий.
>>1091143Index: @list = Article.order_by(created_at: :desc).paginate(:page => params[:page], :per_page => 10)
>>1091147Я так понимаю, что мне надо загружать не все разом, а только то, что запрашивает пользователь. Но что-то я не ебу как это делается. Помоги, анон
Есть родительский метод, в котором я хочу инициализировать общие для наследников переменные.Наследники не видят их. Как пофиксить?https://pastebin.com/Lc13g6dF
Две модели связаны через has many belongs_to. С помощью гема dynamic_form отлично выводятся ошибки родительской модели. Ошибки же дочерней выводятся как-то хуево. Хотя если посмотреть объект ошибок именно дочерних объектов, то там все ок. МОжно ли как-то поправить без танцев с бубном?
>>1087930if x > y hash[:c] = 4end
>>1091486orhash[:c] = 4 if x > y
>>1091120>>1091147Выручайте
>>1091309Уточняю вопрос.Есть модель Parent, которая has_many childs. Во время валидации есть ошибки как родительской так и дочерней модели. Как ни делаю, все равно получается, что выводится лишнее. Ошибки полей родительской модели- ок, ошибки из дочерней- ок, но еще выводится из родительской ошибка вида child is invalid... хотя она мне нах не нужна, так как выводятся напрямую из дочерней нужные сообщения. Так как их красиво вывести?
>>1091665Уточняю вопрос, заданный выше:У меня в базе mongodb есть большая коллекция, несколько миллионов записей.Запускаю сервер. Первый запрос который требует запроса в эту коллекцию выполняется ОЧЕНЬ долго, минут по 5. Даже если это банальный show. Но все последующие выполняются быстро. В чем дело?
>>1090023Я Матц-то разжирел!
>>1092440>В чем дело? «в базе mongodb»
>>1093070И что делать?
>>1093082Снимать штаны и бегать.
>>1093088Так я хочу программистом быть, а не гей-шлюхой
>>1093450Стандартный совет: использовать индексы, и посмотри, что там гугл пишет про "MondoDB First query is slow".
>>1093472индексы есть, гугл пока не помогает
Бесплатные выходные в Code School!!! Т.е., бесплатно можно потыкать и пройти любые из их курсов (сколько успеете). Возможно вы помните эту компанию по курсам Rails for Zombies. Обычно курсы небольшие — на час-полтора. По сути дела курс — несколько уроков (уровней), состоящих из теории (видео + слайды) и практики (решение задач прямо в браузере). Уровень тоже разный. По руби и рельсам курсы начинались где-то на самых основах языка и фреймворка, заканчивались где-то на метапрограммировании и rails-API, rails patterns.Ознакомиться со списком курсов:https://www.codeschool.com/coursesКурсы, на которых написано FREE, являются бесплатными и в любое другое время.Как видите, много курсов по JS, есть пара курсов по всяким модным штукам типа Elixir и Go.How long does Free Weekend last?Free Weekend starts on Friday, November 17, at 10 a.m. and ends on Sunday, November 19, at 11:59 p.m. in Eastern Standard Time (UTC-5). It's a 61 hours long weekend so you should have enough time to learn about your favorite technologies, but remember to take a nap once in a while.(пятница 17 ноября 18:00 по Москве — понедельник 20 ноября 8:00 по Москве)На этой страницу нужно нажать кнопку «Create a free account to get access» (даже если у вас есть аккаунт) — будет написано что-то в духе «You're in!»https://www.codeschool.com/free-weekend
>>1093548Возможно ты на бесплатном хероку а он первый запрос делает медленно
can :access, :ws_return_and_transfer_document if user.rights.include?('ws_return_and_transfer_document')что происходит в этой строчке? что такое access и ws_return_and_transfer_document? Это экшены, или что это такое?
>>1095059lmgtfyhttps://github.com/CanCanCommunity/cancancan/wiki/Defining-Abilities#the-can-method
>>1095151Я это видел. Но нихуя понятнее не стало. По идее первыйм аргементом должен идти экшн, а вторым объект. Я нигде не могу найти экшн acceess, но ок, может быть он есть. А вот название второго аргемента ну вообще никак не похоже на объект...
>>1029529 (OP)помогите мне пожалуйста, читаю Ruby on Rails Tutorial Хартла. Там нужно установить git и heroku. Так вот, у меня такая проблемау меня windows 7, и когда я пишу в командной строке windows "heroku create" у меня вроде как создаётся приложение, но выскакивает ошибка "ENOENT: spawn git ENOENT", и дальше когда я пишу "git push heroku master" в командной строке windows у меня выдаёт ошибку что git не является внутренней командой, но даже когда я в path прописываю путь до git, у меня не работает ничего, то есть на сайте heroku создаётся эта папка приложения, но отправить уже существующие файлы я не могу через командную строку windows, между тем когда я в bit bash пишу "heroku create" теперь уже git не знает про heroku. Эти две программы просто не знают друг про друга, и соответственно у меня не получается запустить приложение на heroku. Подскажите пожалуйста, как решить эту программу.
>>1095706На скриншоте bash, а не командная строка Windows (cmd).Попробуй набрать cmd /c heroky.cmd create
>>1095725спасибо огромное , заработало. То есть чтобы в windows работать в heroku(не обязательно create) через bash нужно всегда сначала писать cmd /c heroku.cmd?
>>1095753Правильный вывод скорее такой - windows не очень-то подходит для разработки на чем-то, кроме .NET
Нужна помощь с dry-rb. Конкретно с тем, как правильно работать с dry-transactions.Вопрос на конкретном примере:- Есть чистая модель Payment, без валидаций и колбеков.- Валидации вынесены в форму.- Есть операция CreatePayment, в нее передается результат формы.Дальше начинается операция, состоящая из нескольких действий: создаем запись в БД, создаем дочерние записи (проводки, например), обновляем счетчики, обновляем статистику, ставим джобы, шлем уведомления, пишем в лог. Часть операций нужно делать внутри СУБД-транзакции (создание, дочерние записи, счетчики, стата).То есть по сути это колбеки before_create, after_save, after_commit и т.п.И плюс ко всему - допустим в зависимости от контекста эти колбеки разные (например, когда делаем из админки, то не шлем уведомления, а в случае импорта не логируем. Ну условно.)Вопрос: как должна выглядеть такая операция? Как ее бить на степы? Как оборачивать в субд-транзакцию часть степов? Как менять состав операций в зависимости от контекста?inb4: делать различные оперейшены. Да, может быть. Но предположим такой момент, что набор степов идентичный, а отличается только состав "колбеков" и то не всегда и не сильно.
>>1029529 (OP)помогите мне пожалуйстая создаю в одной папке 2 проекта, блог(blog) и плагин(wellspring), в блоге(blog) в gemfile прописываю название моего плагина и путь к нему, то есть gem 'wellspring', path: '../wellspring/', когда я пишу "bundle install" у меня выдаёт ошибку что-то вроде: "cannot load such file... Does it try to require a relative path? That's been removed in Ruby 1.9. Bundler cannot continue."В общем нельзя так писать в gemfile путь "../wellspring". Объясните пожалуйста, как мне написать путь к этому плагину чтобы он установился?
>>1098469ну помогите пожалуйстав командной строке написано, что в файле моего gemspec не работает 4 строка, то есть require"wellspring/version", что-то про относительный путьно я не знаю, почему и как исправить путь к этому файлу так, чтобы оно подключилось. Подскажите пожалуйста, как поправить.Может мне нужно написать в первой строке что-нибудь другое, какой-то другой путь?
>>1029529 (OP)Где почитать про экосистему Руби? Чтобы понять какие тулзы сейчас используют, а какие подходы уже устарели. Знаю что есть RVM, Rack, - вроде их всегда и везде юзают. Какие еще тулзы?
<%= form_tag "/common/reports/#{report_id}.js", :format => :js, remote: true, class: 'form-horizontal', id: "#{report_id}_form" do%>Эта форма работает, но... 1. Я не понимаю откуда берется *.js, такого файла нет, точнее есть но он не js2. В экшене, куда попадают данные этой формы, есть respond_to для js и docx. Как сделать так, чтобы управление попадало в docx?
>>1098522ну неужели никто не знает?
>>1099016Попробуй в 4 строчке твоего gemspec'a прописать абсолютный путь:> require File.join(File.expand_path("../lib", __FILE__), "wellspring", "version")
Есть API, во вьюхах есть файл с раширением json.jbuilder и там есть например такая строчкаjson.comment decision.commentчто тут вообще происходит? В ответ на запрос отдается json-объект, в который в своейство comment записывается результат выполнения decision.comment?
Народ, последний месяц 2к17Rails API онли апликейшены и микросервисы.есть гуру этого дела? кто осветит темку?
>>1101882Есть на английском языке http://www.r-5.org/books/computers/all/ книги Pragmatic Programmers.Освящать нечего, вакансий в этой стране — с гулькин хер.
>>1101885thxу нас сейчас жуткий дефицит на рельсовиков (внезапно оказалось) и именно на бэкендвот думаю вкатится
Рельсаны, нужно изящное решение следующей задачи. Изящное, — скажем, гем небольшой или встроенный, может, какой-то метод, в общем, чтобы кодовую базу это не нагрузило.Имеется строка. Она может содержать как русские, так и английские символы. Мне нужно, чтобы решение сделало так, что английские буквы, имеющие такой же аналог на русском заменятся русскими буквами. Другими словами, буквы, допустим, «o», «a», «c», «e», «p» из английского алфавита заменятся, а буквы «q», «b», «v», «h» останутся нетронутыми. Был опыт у кого? Да-да, еще раз, мне нужно обернутое в гем решение, я знаю про ascii таблицу или как она там называется, по которой я мог бы каждый символ проверить.Заранее спасибо, анон! И да, если то, что мне нужно, гуглится, то скажите каким именно запросом.
>>1102870Есть на пыхапэ, https://pastebin.com/xGanVr8c
>>1102946Транслит полностью и в рельсах есть, а мне бы только отдельные буквы. И да, если помимо английского будут и другие локали, то вообще заебись.
>>1029529 (OP)Хотел писать на руби, слышал много хвалебных отзывов. Потом понял что в руби все какое то неправильное. ФВП неправильные, в JS с этим лучше. Объекты первого класса какие то неправильные, чтобы передавать их в функции нужны преобразования. Короче разочарование. Почему так, зачем все это?
>>1102999>Почему так, зачем все это? Таков автор языка, Мацушита. Он даже высказывался против функций внутри других функций, вот как-то так:https://stackoverflow.com/questions/4864191/
Собираю компьютер, встал выбор между i7 и рязанями. Для погромирования что будет лучше (у меня рубимайн, браузеры, плеер, GUI для гита и просмотра бд плюс какая-нибудь компиляция изредка)?Склоняюсь к рязани, как более дешевому варианту, но боюсь прогадать, ведь встройки в ней нет, как и видеокарты у меня, плюс не знаю, нужен ли для рубей/рельс/программирования синглкор перформанс. Что скажете вообще? На тредриппер и i9 бюджета нет.
>>1102999>Почему так, зачем все это?Пробовал одевать трусы через голову. Оказалось неудобно. Разочаровался в трусах, тряпка оказалась удобнее. Почему так, зачем вообще нужны трусы?
Господа рубисты. Волею судьбы мне нужно познать руби, и вот читаю я эту вашу книгу из шапки programming ruby the pragmatic programmer guide и в разделе Virtual Attributes мне попадается следующий код https://ideone.com/nXEDQnТак вот вопрос. Каким образом в этом кодеdef price_in_cents Integer price*100+0.5endпеременная price ссылается на инстансную переменную @price? Я так понимаю это из-за attr_accessor? но ведь если присвоить в каком-то методе, например, price = 333, это не изменит инстансную переменную @price. WTF?
>>1103203либо же это связано с какой-нибудь хитрой реализацией области видимости?
>>1103205>>1103203я понял почему! всем спасибо
>>1103222Пожалуйста, обращайся ещё.
>>1103012Пичалька.
>>1103203>>1103205attr_accesor - объявляет геттер и сеттер для одноименной @переменной. Есть так же attr_reader и attr_writer для геттера и сеттера по отдельности.Одна из бесячих фич рубей, потому что куча долбоебов считает долгом объявить каждой переменной аттр_ридер, им кто-то сказал так делать.
>>1103696Тебе жалко штоле?
>>1103696Именно так и делаю, когда не наследую класс от структуры trollface.
>>1103696И хорошо, что сказал, так никакой другой долбоёб например, ты не сможет где-нибудь посередине эту хуету перезаписать.
>>1104084Таки сможет, интерпретатору похуй на рефлексию. Кроме обмазывания паттернами, аргумент за аксессоры: рубимайн (через жопу) умеет в аннотацию типов, ну и ещё - доки - это типа круто.
>>1104093Как он сможет? Я имею в виду что-то типа такого:class Aattr_reader :do_not_writedef initialize@do_not_write = trueenddef nasty_thingdo_not_write = false # => NoMethodError@do_not_write = 'fucked up'endend
>>1104098А не, NoMethodError не будет, но хотя бы это будет локальная переменная, а не перезапись.
>>1104102В твоем случае NoMethodError будет когда ты попробуешь написать «self.do_not_write = false», чтобы этот код сработал нужно поменять attr_reader на attr_accessor. Если говорить вообще, то перезапись в руби возможно для всего и вся, за исключением констант. На них ругается варнингами.
>>1104120Так в этом и суть. Где-нибудь в дебрях или по тупости можно легко перезаписать собачью инстанс-переменную, а через attr_reader - никак.
>>1104127На этот счет есть довольно простое правило: инициализируй переменные либо через метод инстанса #initialize, либо лениво, в одноименном методе.
>>1104138Правило есть, но не все о нем знают и помнят, когда вокруг пестрят собаки.
test
Типа перекат:https://2ch.hk/pr/res/1104216.htmlhttps://2ch.hk/pr/res/1104216.htmlhttps://2ch.hk/pr/res/1104216.htmlhttps://2ch.hk/pr/res/1104216.html
>>1104218Да кому он нахуй нужен.