Это копия, сохраненная 2 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
Принимаются изменения в шапку треда в виде пулл-реквестов:
https://github.com/meoweg/2ch-pr-ruby
Как показывать код:
Быстро - https://pastebin.com
С исполнением - https://ideone.com
Требуется аккаунт GitHub - https://gist.github.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 Grimm
Practical Object-Oriented Design in Ruby
Refactoring Ruby Edition
Ruby 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 (одобренный). Впрочем, писать приложение с GUI на серверной технологии - плохая идея.
4. Можно ли писать на руби мобильное ПО?
Да. Для iOS есть RubyMotion терпимого качества, для Android - лагающий и падающий, но всеми силами развивающийся ruboto. Для WinPhone до сих пор ничего не завезли.
5. Как установить разные версии рубей?
Легко и просто: https://github.com/sstephenson/rbenv
И это тоже, легко и просто: https://rvm.io
6. Что почитать по рельсам?
http://guides.rubyonrails.org
http://ruby.railstutorial.org
API: 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.com
9. Я не могу в английский, что делать, анон?
Идти учить английский, без него тут делать нечего.
10. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - rub\~QyANUSi#6jabberPUNCTUMrD`_u
А еще есть русская слак конфа - https://invite-me-to-2chpr.herokuapp.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.com
12. Зачем нужны тесты и как их писать?
http://rusrails.ru/a-guide-to-testing-rails-applications
http://habrahabr.ru/post/163597/
Вместо этого можно прочитать классную книгу Everyday Rails Testing
13. Где можно задать глупые и не очень вопросы?
- здесь
- stackoverflow.com
- тематические slack-конфы
- а вообще, гугли, с вероятностью в 90% ответ на твой вопрос уже висит на stackoverflow.
14. Как фокнуть\сделать фичу\исправить баг, сложно ли это?
Нет, не сложно. На rubyflow появляется много новостей с реализацией новой библиотеки, вы можете сделать тесты, фичу для него, старые либы также обрастают багами, улучшайте их! пишите код.
15. В чём писать код?
Atom, Brackets, Sublime Text, TextMate, Vim, GNU Emacs. Для особо упоротых энтерпрайз-макак есть rubymine, плагины к эклипс и нетбинс.
16. Можно ли писать на руби с под windows?
Можно, но придется обрасти костылями в виде виртуальной машины, придется сходу разбираться с Vagrant и многим другим. Чем дальше ты продвигаешься, тем ближе становится ясно, что пора перекатываться на linux/mac
17. Руби язык одного фреймворка?
Есть еще Sinatra, Hanami (ранее Lotus), Volt, Grape, отличные штуки для DevOps - Chef, Puppet и годные генераторы для бложиков - Jekyll, Middleman, всё это активно используется в продакшене
18. Можно ли делать игры на Ruby?
Можно, но не нужно. Гем Gosu.
19. Ютуб каналы
Youtube driven development...
Вот тебе пара каналов, но никому не говори что учишься по видео.
https://www.youtube.com/channel/UCIQmhQxCvLHRr3Beku77tww/videos
https://www.youtube.com/channel/UCfWZwsP8trUy5uHJg8gcGIQ
https://www.youtube.com/channel/UCSI77lJlzlCFPLdV1RSAoYQ
https://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_2ch
4. Не стесняемся постить свои репозитории, наши эксперты с радостью отревьювят вас.
После этого тебе будут нужны паттерны, без них твой код превратится в говно. Впрочем, с ними тоже превратится. Один из часто используемых - 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://gist.github.com/wojtekmach/c54d8e25de4cccbcf6450087084f362c
Надо было по-нашему - нахуй послать сразу, забиться на Петровско-Разумовской, конструктивно пояснить по ебалу за гнилой базар.
ЭЛИКСИР СИЛА
синатру первой попробуй. она довольно простая.
взять небольшой гем с гитхаба (поищи, их ебаные тыщи, уж какой нибудь интересный найдешь), поиграйся. авось функционал полезный добавишь.
в рельсовом ActiveRecord? http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-joins
Советую для упрощения запросов ActiveRecord юзать squeel.
Если не зависишь от ActiveRecord, используй Sequel, он заебатый.
Охуеть.
есть тред по ерлангу, все шизики там
>The Elixir community has still not recognized Canonical Model problems as the root cause of most of their woes in Rails. Furthermore, it has not started to embrace the event-centric and event stream-centric approach to architecture that at once eliminates the possibility for Canonical Model to crop up (even unintentionally), and leverages OTP for its intended strengths.
все правильно мужик сказал, поддерживаю
Может и правильно, но на личности не надо было переходить - будто это как-то поможет. Опенсорс же, возьми и захуячь правильно, хули выебываться.
>пок кукарек нимагли как рельсах сделать кокок
ясно, как по мне наоборот, чем меньше в элихире от рубей, тем лучше
Там и так от них нихуя кроме do-end.
За форс эрланга не платят
как дебагил? скриншоты делал?
Если, че, добавь в spec/support
module WaitForAjax
def wait_for_ajax
Timeout.timeout(Capybara.default_max_wait_time) do
loop until finished_all_ajax_requests?
end
end
def finished_all_ajax_requests?
page.evaluate_script('jQuery.active').zero?
end
end
RSpec.configure do |config|
config.include WaitForAjax, type: :feature
end
и юзай в тестах.
>config.before(:each) { stub_request(:any, /api.com/).to_rack(FakeAPI) }
Проблема заключается в том, что в продакшене ответ будет чистым JSON, а в тестовом окружении это JSON, завёрнутый в Rack::MockResponse, плюс хедеры etc. Естественно, весь код любезно заточен под один тип ответа.
Никак не соображу, куда и как вставить костыль, чтобы унифицировать данные.
>используется сторонний API. Чтобы тестировать код, я создал фейковое приложение на синатре
Поехавший? VCR же есть
Для начала ты пояснишь почему тебе не подходит очевидное, а потом мы, возможно, начнём тратить свои мозговые ресурсы.
>ясно, как по мне наоборот, чем меньше в элихире от рубей, тем лучше
я хуй знает что тебе ясно стало, но там с точностью наоборот, он жаловался что вместо нормальной современной архитектуры хосе пилит клон рельсов на эрланге, повторяя ошибки рэилс-комьюнити
И какие в рельсах ошибки? То чтотам нет ивент драйвен архитектуры?
но ивент-дривен сосёт, в илонге/элихире как раз не инвент-дривен, ивент-дривен - это нода/твистед/ивентмашин
Скажи пример не монолитного фреймворка? Микросервисов можно и на рельсах наебашить.
Садись на миллион потоков сразу.
Не совсем понимаю концепцию работы с ним. Посмотрим на картинку - примерно так я представляю архитектуру проекта.
Вот у нас есть ngnix, который работает с http запросами, http-кеширование вот это всё.
Так же есть App сервер с puma и рельсами, собственно само предложение. Amazon вежливо предлагает обернуть приложение в beanstalk - легко задеплоить, масштабирование из коробки и вот это всё. То есть как бы puma преднастроена и сама все круто сделает.
Остались web сервера, которые я не знаю, как размещать. Просто запилить обычные инстансы и настроить там кеширование и т.д.? Или их тоже можно куда-нибудь завернуть?
Олсо, я не знаю куда воткнуть сервер memcached. Где он должен быть в идеале?
Также есть проблема с размещением API сервера. У него два назначения.
1. Отдавать обычным пользователям контент (как на харкаче json формат) + принимать какие-нибудь post запросы.
2. Работа с БД для внутреннего приложения, которое не доступно из-вне.
В итоге я решил пользовательский функционал оставить в приложении, а для внутреннего сервиса запилить личный API сервер, который будет использоваться внутри облака 2-3 приложениями. Однако я не знаю куда его воткнуть.
причем здесь микросервисы? нужна нормальная модульная архитектура.
Я не знаю, бамп что ли.
Рельсы, джанго и подобное - это скорее готовая CMS, которую нужно обмазать под себя. К программированию это имеет мало отношения.
Я и говорю, здорово шаришь! Молодец!
Основные критерии - максимально быстро вкатиться в уровень джуна, и потом максимально быстро дорасти до хорошего уровня зп. Желательно с вариантами работать по удаленке - не хиккан, но схема "утро роллтон метро офис" - вгоняет в депрессию. Руби вроде подходит под эти критерии лучше, но смущает то, что рабочих вакансий мало и так же мало обучающих материалов и проч. Ну и "это же скриптовый говноязык, то ли дело си-подобные боги"
Прошу ссаными тряпками не гнать, маней не обзывать - мне главное определиться что изучать, а там понять - моё это или не моё. Готов к тяжелому труду работы над собой, осознаю что легким путь не будет.
Что скажете?
Джава. И выйди из треда.
Жава и руби неудачные варианты для новичка. Языки сложные, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит жаву или раби, а потом не знает что делать с ними. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. В Sublime Text как раз есть режим для него. По книгам. Если есть хоть немного знаний программирования, читай это: http://www.ozon.ru/context/detail/id/30425643/ Если совсем новичок, пойдет эта книга: http://www.ozon.ru/context/detail/id/28346038/ Ну и куча онлайн-учебников. Вот, например: https://anton-k.github.io/ru-haskell-book/book/home.html Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Иди лечись, если везде пхпшники мерещатся. Особенно учитывая, что рабирельсы имеет гораздо больше общего с пхп, чем другие языки.
Что, котаны, совсем никаких идей?
Толсто и баянисто.
Бампусик.
На самом деле да. Я когда изучал руби всё больше осознавал, что он ещё больше пехепе, чем сам пехепе.
А какова ПДК у пехепе? И где чистый найти?
Ну хуй знает анончик, похоже ты один среди нас такой йоба архитектор. И вопрос скорее общий чем конкретно по рельсам. Надо найти слак, гиттер где тусуются такие же. Если найдешь, кино ссылочку сюда, мне тоже интересно почитать что они пишут. Но к сожалению на твой вопрос мне ответить нечего.
Спасибо, а где найти хороший и простой пример? И почему сажа
спасибо за помощь.
умирает, уходи в пхп
да нихуя он не умирает, как же вы заебали.
я джуниором нашел работу за 1 день на реддите.
150-300$ в неделю, опыт 3 года, на гитхабе шаром покати.
Да ты неудачник. Я за час нашёл работу на дваче. 500$ в неделю стабильно. Опыта нет, из проектов - только визитка для себя.
что за платежка?
уже в паре тредов писал же
Нет, в программаче иногда мелькают предложения. Некоторые прямо в тред нужного языка пишут, некоторые свой тред создают, который быстро трут.
Эйчары сидят на двощах? Ну это вообще пушка.
Сижу как то в /б/, проигрываю с пикч с говном. Вдруг смотрю, новый тред. В нём какой то эйчар крупной компании (не буду называть, деанон), жаловался, как мало рельсокодеров. Говорит уже зарплату в три раза поднял, согласился на дополнительные премии и удаленку, а никто не идёт, кругом одни пхпшники. Ну я ему отписал, что могу поработать, скинул почту. Он мне отписал, обещал чуть ли не отсосать и отдать мне девственность его первой дочери, если я соглашусь поработать. Я зарплату выпросил побольше. Ну он мне дал задание, сказал выбирать подход и гемы самому, лишь бы работало. В начале недели он мне присылает список заданий, в основном простые. Я их за пару дней делаю и в конце недели отправляю готовый код, а он присылает деньги. По компании - аутсорсовая компания на шведов, продажи одной узкоспециализированной дорогой хуйни.
я тебе атвичаю, но не отвечаю
Пиздец, каждый раз захожу в пр, а тут такой манямирок цветет и благоухает.
три года занимаюсь программированием еще ни копейки этим говном не заработал
Пока штат укомплектован, но если будут места, я отпишу в тред.
т.е. тебе похуй, что чел на тебе зарабытывает раз в 5 больше + у тебя социалки и нихуя нет.
Все проекты под NDA, портфолио нет. Чтобы доказать свою состоятельность, готов поработать за еду пару недель.
sh]#ledaruANUSgmax$wilPUNCTUMcoWEDm
Я тут сейчас уже охуею. Нет, я не пилю суппет твиттер с охуенной пропускной способностью. Пока просто интересуюсь, как реализовать все это в теории.
Вот анон, есть приложение на рельсах. В нем фрагментное кеширование - первая стратегия.
Потом предположим есть memcached, который кеширует http запросы.
По логике вещей. Я делаю как?
Приходит запрос -> он идет на баланс нагрузки.
Баланс нагрузки отправаяет его на один из серверов, где крутится ngnix. Он смотрит в кеше, есть ли совпадающий результат.
Если нет, то отправляет запрос к серверам, на которых крутится puma + rails приложение. И оно выполняет.
Все верно?
>чел на тебе зарабытывает раз в 5 больше
Начальник зарабатывает на работнике в 5 раз больше, заказчик зарабатывает на начальнике в 10 раз больше, чиновник получает с заказчика в 15 раз больше, а депутат имеет их всех. Ты что, предлагаешь мне бросить работу потому, что кто-то зарабатывает больше меня?
>социалки и нихуя нет
Мне хватает. Социалку и подобное я могу себе позволить сам. А касательно опыта и легальности - две волшебные буквы: ИП.
Бля, ахуительное резюме, пожалуй скопирую его.
>Все проекты под NDA
Двачую братиш, я тоже помогал гуглу разрабатывать поисковик, писал ядро Windows у Microsoft, а по вечерам делал социалочки Цукербергу и Дурову. Просто всё под NDA, поэтому доказать не могу.
Вот нахуй ты об этом думаешь?
Сначала запусти потом когда будет лежать проект будешь думать, все это можно сделать разными методами но тебе это нафиг не нужно
>отправляет запрос к серверам, на которых крутится puma + rails приложение
Ты написал почему-то rails вместо go.
скилы какие у тебя? какие задания дают?
Блядь, вот когда ляжет, как-то думать не хочется. Все же сейчас хочется теорию изучить.
>>721442
А какие проблемы?
скинь пример заданий плз, чтоб знать какие бабки требовать с заказчиков
Пили свой Двач и запускай, потом думать будешь
https://www.digitalocean.com/community/tutorials/how-to-scale-ruby-on-rails-applications-across-multiple-droplets-part-1
https://www.nateberkopec.com/2015/07/29/scaling-ruby-apps-to-1000-rpm.html
Во. Уже какие-то понятные вещи.
На самом деле в целом я концепцию уловил. Только сейчас столкнулся с тем, что не совсем понимаю, как в инфраструктуре Amazon развернуть этот проект.
Сервера приложения можно завернуть в beanstalk и там маштабирование из коробки.
А вот куда запихнуть ngnix - без понятия.
Амазон дорогой и голимый, лучше узай DO
А вообще есть OVH которому нет конкурентов
Почитай о Docker
У меня просто только на Amazon есть куча денег для тестов. Поэтому выбирать не приходится.
Собственно, Синатра превосходит рельсы почти по всем параметрам. Но у Синатры есть один фатальный недостаток - быдлу её выучить гораздо сложней, чем зазубрить одинаковые действия в рельсах и повторять их. Рельсы - это просто триумф манки-патча, неудивительно, что быдлу так нравится.
пиздуй писать твиттер на синатре, посмотрим как быстро ты изобретешь рельсы... а нет, не изобретешь, ибо слишком тупой.
Рельсодебил думает, что все задачи заключаются в написании твиттеров.
нужно понимать пределы того или иного инструмента. Сейчас админку пишут на rails/pg оттуда выгружают, скажем в redis/mongo и раздают чем-то более легковесным.
Ну, допустим, я знаю номер строки, которая мне нужна. Как мне к ней обратиться?!
Только если ты знаешь длины всех строк в файле. Тогда можно прочитать нужные байты по смещению, которое нужно рассчитать. Да, так делают. Придумай свой формат, работай с оглавлением, угорай по байтоёбству.
Файлы не хранятся на диске как массивы строк. Файлы хранятся тупо как последовательность байт.
Ну и ещё вспомним, что utf8 - ебанутая кодировка с переменным количеством байт (в общем случае) на символ.
Штатными средствами руби этого никак не сделать, лучшее что можно предложить, это лишь читать файл (File.open и .gets/.readline; вместо File.read) до тех пор пока не будет получена нужная строка и сразу прекратить чтение.
Или пилить своё расширение на сишке для чтения нужного смещения в файле.
>>722180
Норм кодировка, не гони. Всяко лучше богомерзких cp1251, koi8-r и прочих iso. Все минусы для программистов с лихвой искупаются плюсами для всего мирового сообщества.
Мыши против сыра, пользователи интернета против возможности забыть о ебле с кодировками ._.
Я это к тому что ничего лучше UTF-8 нет, а с кодировками должны ебаться мы (разработчики), чтобы этого потом не делали энд юзвери.
на самом деле чечня[/spoier] UTF-8 круто
но эта переменная длина символа в байтах в неожиданных местах вылезает боком (см. семитские языки, модификаторы слева-направо + подгон под ширину экрана)
>но эта переменная длина символа в байтах в неожиданных местах вылезает боком
В каких неожиданных местах? Если ты работаешь с текстом с известной кодировкой или технологией в которой по стандарту используется UTF-8, то неожиданных мест у тебя нет.
>см. семитские языки, модификаторы слева-направо
Ну вот опять жиды-рептилоиды виноваты!
>подгон под ширину экрана
Меняешь лоджик на работу с символами, а не байтами и всё.
EventMachine is an event-driven I/O and lightweight concurrency library for Ruby. It provides event-driven I/O using the Reactor pattern, much like JBoss Netty, Apache MINA, Python's Twisted, Node.js, libevent and libev.
EventMachine is designed to simultaneously meet two key needs:
Extremely high scalability, performance and stability for the most demanding production environments.
An API that eliminates the complexities of high-performance threaded network programming, allowing engineers to concentrate on their application logic.
хотел бы уточнить при каких нагрузках и условиях приходилось применять ивент-машину?
>жиды
тащемта я арабский имел в виду в основном
>Меняешь лоджик на работу с символами,
ладно
http://appleinsider.com/articles/15/05/26/bug-in-ios-notifications-handling-crashes-iphones-with-a-simple-text
Прекратить усложнять предметную область. А вообще фронтовать и CQRS-ить вместо серверного рендеринга форм и ебли с моделями.
я бы рад, но придумываю поеботу эту не я, а заказчик
>>722983
Это я, само собой, читал. Только все равно непонятно. Ну веб-сервера там, тот же thin, еще faye знаю, на нем работает. А куда еще его засунуть можно?
>>722987
Да.
Очень классно отправлять пользователям всякие нотификации и обновления данных в реальном времени. Если же вместо вебсокетов долбить бэкэнд поллингом, сервер ляжет уже при сотне онлайна.
Если заморочиться, можно ещё и принимать с клиента данные и обрабатывать на бэке. Аутентификации из коробки нет, нихуя нет, ведь твой EM\Faye сервер - это по сути отдельный скрипт вообще, самостоятельный и без рельсоокружения. Хотя для Faye есть джем faye-rails, который предоставляет какую-то интеграцию, но я не пробовал.
А в пятых рельсах вон сделали ActionCable. Вполне себе симпатичный такой код выходит, и код выполняется в контексте рельсоприложения без танцев с бубном. Т. е. хорошо сделали, годно, можно юзать не парясь особо. Реализация использует потоки, т. е. это не самая эффективная реализация, но зато можно писать код не парясь по поводу асинхронного цирка (как если бы писать на EM\faye). И по бенчмаркам вполне сносно работает - для запредельного хайлоада не подходит, но потребности 99% сайтов вполне удовлетворит - держит порядка нескольких тысяч подключений. Есть ньюансы для задротов... https://blog.ably.io/rails-5-actioncable-the-good-and-bad-parts-1b56c3b31404
Кстати этот ActionCable все на ноде сделан или они его на Руби переписали? я понмю раньше в релсах нода была
мима давно на говно рельсах не ездил
Обычная контрактная работа. Просто обычно контрактникам не платят всякие соцпакеты и подобную поеботу, поэтому твои 120к в год резко теряют пару десятков процентов на налогах, страховках, етц. Но если ты живучий русский Иван и тебе это нахуй не нужно, можешь нихуя не платить и получать свои 500 фунтов в день.
а ещё контрактники обычно не имеют карьерного роста и контракты максимум на год, которые могут ещё и в любой момент разорвать без каких-либо обязательств, карочи такое
>apple
>bug-in-ios-notifications-handling-crashes-iphones-with-a-simple-text
Ну баг и что? Все данные нужно проверять. Ты же пытаешься защититься от SQL-иньекций проверяя ввод пользователя, так и здесь. Такая же ситуация со всякими игровыми консолями, которые ломают картинками(!), потому что в bsd'шной libpng(tiff/gif) лежит древний баг, который никто не чинит.
Сделали тяп-ляп и потом исправили, дело-то житейское. Стандарт UTF-8 это благо.
>Ты же пытаешься защититься от SQL-иньекций проверяя ввод пользователя,
нит рельсо магия меня и так защитит
тип игра в монетку, в угадай число
Напиши простой like на AR. Магии мало, надо ещё знать как.
roll
хайп в каждом новом треде проходит лол, пока будут хомяки учиться только по Хартлу, то работы будет овердахуя.
Хартл же крут разве нет?
Как раз его собирался сейчас пройти, а ты меня опечалил анон.
Что же делать?
>Рабисты верят, что если несколько раз повторить, что работы много, то работы правда станет много. Главное почаще повторять.
Для всех этих языков не могут найти программистов, вот и всё))) Труп няшечкиперла насилуют только в яндексе каком-нибудь и букингкоме.
Интересно что в роскосмосе юзают и евро/джапокосмосах тоже.
это для тех кто живет в US, попробуй потребуй такой рейт и скажи что ты хохол.
Представь, что ты CEO, а к тебе приходит обоссаный чурка и просит ЗП 100к рублей. Да, он внезапно демонстрирует навыки крепкого рельсо-миддла. Но это ЧУРКА, БЛЯДЬ. КАКИЕ 100К НАХУЙ. ПОШЁЛ ВОН, ПОШЁЛ ВОН!..
Это украинский манямир, в Рашке расизма нет (не считая кучки поехавших скинхедов, с которыми жестко борются).
>украинский манямир
Кстати, какого хуя он проскакивает в треде. И сюда тянут свою политхуйню.
http://pastebin.com/qBu3xWSj
>>725900
Блядь, я мечтаю чтобы все вендоблядки сдохли к хуям собачим в муках и боли, суки. Какие вы тупорылые мрази всё таки.
Даааа. Поскорее бы.
Вот вот есть у меня crud приложение. Добавляет записи. Например, складывает значения первой и второй колонки, затем заносит в третью. Это уже бизнес логика? А как её отделяют? Создают отдельный класс, который это делает или как?
Да, начни тупо пилить классы на каждый экшен. В контроллере у тебя останется обработка параметров, рендеринг результата и, возможно, редиректы. Всё что между этим - бизнес-логика.
Спустя время ты войдёшь во вкус и начнёшь понимать, как это всё грамотно организовывать.
Классы "операций" получаются хорошо тестируемые, повторно используемые, а также их можно друг с другом комбинировать. Кто-то называет это "сервисы", кто-то "юзкейсы". Кто-то именует такие классы глаголами, типа CreateUser (кстати, збс идея, мне очень импонирует). У нас в проектах мы называем "операции".
Есть даже микрофреймворки для организации таких классов. https://github.com/markets/awesome-ruby#abstraction Вот в этой секции есть парочка, а также релейтед джемы.
Фреймворк trailblazer вообще полностью посвящён этой методологии. (И не только этой, но слой классов-экшенов там централен).
Ну, по хорошему, модели должны быть плоскими как сиськи твоей девушки, и иметь в себе лишь логику сохранения данных. Даже валидации выносят из моделей, если они сложные.
Сложение выносишь в какой нибудь сервисный объект, и вызываешь оттуда model.create с уже посчитаннымии Полями. Представьте, что рельсы - это способ доставки, один из многих. Сегодня ты юзаешь rails, а завтра переедаешь другой объект с тем же интерфейс от в сервисный объект, допустим сохранение в текстовый файл. Полиморфизм жи.
Попробуй gem reform для начала, поможет с формами разобраться, если сложные.
Я тебе завтра кучу ссылок скину, как домой пРиду, по теме.
Эта хрень называется CQRS.
http://blog.byndyu.ru/2014/07/command-and-query-responsibility.html
Ну и сервис-обджекты конечно, куда без них. Туда я кладу всякие калькуляторы и т.п. - всё что без побочных эффектов.
http://pastebin.com/RZaNmWj2
Как это сделать? Как написать миграцию? Я пытаюсь. В роутах невероятный ужас получается: http://pastebin.com/eiDfisVR который идет в контроллер Shoe и распидорасивает методы create и update
Чую, что есть кошерный путь. Наведите на мысль. Полиморфность не подходит, там одна модель belongs_to разным. А у меня одна модель дважды belongs_to одной.
rvm install ruby 2.3.1
Я за то, чтобы ты написал её хорошо.
к тебе приходил чурка на собес?
Js, Python, Ruby? На данный момент всего знаю на базовом уровне.
Куда лучше углубляться для заработка программированием?
платят за них практически одинаково, но на жсе тебе ждет куда большее количество головной боли и баттхерт.
хз насчет других стран, но в сшашке начальная зарплата джуниора руби - 60-70к в год. Ниже - зашквар.
>джуниора руби - 60-70к в год
Да, а ещё отсосут на собеседовании! Это деньги миддла, и то 70 уже высоковато. Ниже 50 зашквар вот, и он предназначен для тех самых джуниоров. Но на самом деле все эти космические цифры из американского манямира не работают нигде, кроме как там. Во вне ты будешь в лучшем случае получать 40 миддлом, а 50 и выше - это уже ебать сеньор.
рейт анкету на риелс погроммиста.
Про "Помимо MVC я использовал паттерны, которые сделали мою жизнь легче" вопрос вообще пушка. Что за buzzwords? поясните
Мою жизнь уже ничего легче не сделает, с тех пор как я стал динамопетушком, зачем на больное давить-то.
Не хватает поля "Желаемая зарплата".
это если на контрактную работу с американскими заказчиками не идти, а сосать задешево у европейцев.
Так и я тоже не о техасском ранчо говорю. Редко кто ищет джуниоров за такие деньги.
>>729681
Ещё б кто взял. Сказали: разговорный хуевый и теперь ты нинужен, хотя думали, что раз грамотно пишешь, то и говоришь так же. Другие так вообще не отвечают даже не предложения. Трустори, пойду "сосать".
бери убунту в виртуалку через вагрант, не ошибешься. в сети куча готовых конфигов. или скачай превью виндоус 10, где линукс встроен.
рекомендую еще сверху обмазаться docker/ansible
уже выпускали превью
Ну ты круче зделал.
Я сначала массив в переменную забил, потом сохранил результат acc = array.pop.length
И итерировал с reverse, сохраняя в acc значение acc word.length
поэтому мне не напишут
Ты на этом ничего не сэкономишь, наркоман. Не говоря уж о том, что меришь неправильно, надо через bmbm.
Лан, сорри, пожалуй, ты прав.
Хотя при увеличении итераций таки мой метод немного быстрее. Если же итераций мало и строки более-менее длинные, то одинаково.
Допустим, у меня есть гем (Rails Engine), где мне надо создать несколько презентеров (обычные PORO). Я вижу несколько вариантов как это организовать:
1. Как в рельсах: app/presenters/my_gem/user_presenter.rb и класс MyGem::UserPresenter
2. В гем раз: lib/my_gem/presenters/user_presenter.rb и класс MyGem::UserPresenter
3. В гем два: lib/my_gem/presenters/user.rb и класс MyGem::Presenters::User
Как, на ваш взгляд, лучше сделать?
1
2
у меня получается
1
2
Короче говоря как сделать чтобы трифорс был правильный?
nbsp
Что их них следует выбрать, чтобы как можно быстрее вкатиться во фриланс за еду? Работа в офисе не интересует - живу в лютой мухосрани и переездов пока не планирую.
Сам в программировании не полный ноль, раньше довольно много писал на питоне, ну и инглиш знаю хорошо.
Не знаю, в какой тред писать, поэтому не обессудьте.
Я умею натягивать шаблоны на быдлопрессы, если ты об этом
Синтаксис языка поприятнее. И на питоне нет рельс кококо джанга кудах кудах, НО НЕТ
А вообще вся скриптопараша по сути похожая.
С руби на фриланс хуй вкатишься. С руби вообще хуй куда вкатишься в 2016.
Лучше иди жс учи, React Native и Electron, например.
неудачник, че.
серьезно, блять. джуниоров не хватает, спамьте на джобспоттинге, линкедине, реддите, просто ЗАГУГЛИТЕ RAILS JOBS
кококо работы нету. вам бы только на пехапе, неосиляторы
Но я осилятор, а у тебя детектор сломан, мелкобуквенный еблан. Пишу 4 года на рельсах и вообще в вебе лет 10 уже. Просто уходи.
тогда чего говоришь, что работы нету? руби постоянно в десятке самых популярных языков.
или тебе нужен ХАЙП? Он у рельс прошел, и слава богу.
он сейчас у жаваскрипта, адок с ебаной кучей приходяще-уходящих библиотек и системами сборки
аргументный аргумент. пришел на двачи ради грамматики.
Ruby/RoR тред и ни слова про CoC (convention over configuration). Краеугольный камень это.
Единственное что я отрывочно слышал, так что питоноебы говорят что у них там развитый хайлоад, дохера всяких гайдов а на рубях нельзя.
Не знаю мифы это или правда, недостаточно знаний
Возможно это просто питонохайп так влияет.
Я помню писал раньше не питоне.
Тоже какие-то отрывочные знание.
Но очень очень нехватало bundle и gem из коробки, единствено что я помню.
Все это хождение по сайтом, скачивание инсталеров всяких библиотек, особенно на windows просто бесило.
Там уже что нибудь удобное завезли?
Лол нет.
Ну впринципе если привыкнуть к этому говну, то довольно удобно становится. на ноль делю, да
Плюс я не знаю как с рубином, но в питоне вкатываться на работу достаточно тяжело.
Ну вот что дейсвтиетльно не завезли.
Ну вот я накачал этих wishmaster.exe у меня скрипт работает.
Посылаю по почте скрипт, у заказчика не работат.
Мне нужно ещё интсрукцию приложить, где все эти wishmaster.exe скачать, чтобы заработало?
Ну или объяснить как эти костыли запускать
бтв решил к вам в руби вкатиться, пожелайте мне удачи и веселого говнокода
пиши на питоне, задрал
На PHP гораздол легче найти работу за еду, уровня джумлы, вордпреса и прочих битрисков.
Но тебе это работа не понравиться.
Там всего несколько позиций с возможностью удалённой работы.
А на биржах фриланса тысячи открытых вакансий рельсовиков.
взлольнул
Опишите в двух словах. Или дайте ссылку на пример.
vk = VokntakteApi::Client.new(token)
user_data = vk.users.get(user_id = 1)[0]
puts user_data['first_name'] + ' ' + user_data['last_name']
#=> Павел Дуров
Спасибо за ответ. Только сейчас заметил. Как проверю - отпишу, помогло или нет.
>Эктиврекорд
Не пользуйся. Альтернативы: ROM, паттерн репозиторий.
>Убогие хелперы
Не пользуйся
>Отсутствие view models.
Есть. Гем Draper.
>>716446
>Манки патчинг.
Чем плохо в контексте крупного фреймворка?
>Монолитная архитектура.
Создай свою архитектуру. Придётся написать много кода и надо немного знать внутренности рельс. Но в итоге кода всё равно будет меньше, чем на других фреймворках.
Ты так все интересно расписал, нет ли у тебя ссылок на подробнее почитать про эту архитектуру выше?
Я ньюфаг, опыта программирования практически нет (только базовые знания что такое переменная, словарь, массив и т.д).
>опыта программирования практически нет
>английский не знаешь
Всё очень плохо. Я например с дипломом погромиста и хуевым знанием английского. Читаю доки, но медленно. В айти так и не вошел, хотя некоторое время работал.
Пиздуй к репетитору английского, если есть деньги. Если нет - самообразование.
И вообще зря ты сразу в руби пошел, если до этого не кодил.
>паттерн репозиторий.
Разве это не функциональный паттерн? Удобно ли с будет с ним жить в ООП среде?
лол, покажи мне адаптеры популярных библиотек к rom или sequel. хз где ты работаешь, но мне не позволяют стать астронавтом архитектуры.
и драпер это ебаное кривое говно, которое ломается как копейка. загляни в исходный код - оно на соплях, криво висит привязанное к рельсам
Двачую, да и декораторы в логике вывода нахрен не нужны, одна путаница от них. Лучше просто тупые хелперы использовать, без побочных эффектов.
Lingualeo.
То есть отдельный проект с RailsAPI и отдельный проект с каким нибудь хипстерским JS-фронтентдом.
Делается это для того чтобы делать несколько(неопредленное количество) сайтов на разных доменах и хостингах, которые в целом имеют одинаковые функионал, но разные роут, дизайн, сео.
А так же чтобы не плодить на каждом хостинге по инстансу сервера котоорая будет жрать память, деньги за хостинг, синхронизацией данных между друг другом и т.п.
В целом хочу один ёба хостинг с рельсами и куча всяких говнохостингов, которые возможно даже PHP не воспринмют, на которых лежит html+js+css, которые соеденяется по REST API с главным.
Просто опыта такого нет, фремворков JS не знаю вообще(кроме жеквери), когда смотрю на список этих фреймворков просто не понимаю что из них можно выбрать, что говно, что нет, что поддерживает, что нет.
Ты можешь это сделать и без хипстерских js фреймворков.
http://guides.rubyonrails.org/engines.html
Если хочешь просто поиграться - то возможно pascal. Если же нет - тогда мб питон, тут хуй знает.
Это все равно система с бэкндом, у меня задача полнстью отделенный фронтенд, способный работать на хостинге вообще без серверного языка.
зарепортил толстого.
Руби придумали умные люди, которым надоело конкурировать с Рафой в пхп.
Основная задача рубиста - найти лоха, который поверит в революционность и необходимость этой замечательной технологии.
Хех, спасибо что сообщил что ты в курсе. Держи в курсе, что ты в курсе, няш:3
Бери любой новомодный ангуляр, а в рельсах отдавай данные json. Для четвертых рельс https://github.com/rails-api/rails-api
А в пятых можно будет сгенерировать API-приложение из коробки.
в его случае ==.
ну я так и понял. поэтому и учу, кстати. пока что там все как в уи фреймворке - модели, контроллеры генерируются.
ЮИ ФРЕЙМВОРК АБСОЛЮТНАЯ КОПИЯ РЕЛЬСОВ ТОЛЬКО БЕЗ РУБИМАГИИ и RUBYTOOLBOX
ОТ PHP МАГИИ ХОЧЕТСЯ БЛЕВАТЬ
То есть если убрать миллионов гемов, а руби заменить на пхп, получится УЮ ФРЕЙМВОРК, где конечно же нужно велосипедить на каждый чих
PHP МАГИЯ ЭТО КОГДА
<?php ?>?>?>?><?php <?php ?>?><?php <?php ?>?><?php <?php ?>?><?php <?php ?>?><?php <?php >?>?><?php <?php ?>?><?php <?php ?>?><?php <?php >?>?><?php <?php ?>?><?php <?php ?>?><?php <?php php <?php ?>?><?php <?php ?>?><?php <?php >?>?><?php <?php ?>?><?php <?php ?>?><?php <?php >?>?><?php <?php ?>?><?php <?php ?>?><?php <?php >?>?><?
Не знаю как в Yii, но в Rails миллион гемов из-за разбивки на эти самые миллион гемов, модульность и другая культура разработки.
Если убрать гемы и юйки, то у руби останется няшная рубимагия, а у PHP набор багов заложенных ещё на ранних стадиях разработки языка. Незакрытый тег "<?php" яркий пример.
бля, я фшоке, ебу бабу. в чем смысл ваших баб? все то же самое, как и в мужиках, только хуй не торчит. вообще ахуеть.
Итт пхпблядки даже не знают, как правильно произносится их любимый говнофреймворк.
http://www.yiiframework.com/forum/index.php/topic/1031-how-to-correctly-pronounce-yii/
А "и".
Ии фреймворк.
Лол, блядь. И фреймворк нахуй. Пиздос блядь. Просто пиздос.
Потому что автор - ебаный китаец-шизофреник.
А код внутри - говно. Я изучал и допиливал его в своё время. Это ад и погибель.
Не знаю что за баг, но современные бест практисы наоборот говорят, что нахрен не нужно его закрывать, настраивайте нормально конфиги. Отчего пхп конечно же не перестает быть говном
бест практисы для пхп как фантик вокруг говна.
Лол, так я говорю про незакрытость тега "<?php". Зачем открывающий тег если нет закрывающего, выкинули бы и начальный тогда уж.
Бест-практисы PHP это борьба с совершенно нелепыми багами. И это не от конфигов зависит (ну может можно конфигами поправить, но это отдельный пиздец, конфиг_ини, лол)
Не китаец, а бурят.
Ну тут скорее не баги даже, а плохая проработка архитектуры языка и самого интерпретатора.
фрактал плохого дизайна.свг
будто что-то другое не перепишут
>Так получается, что тут один семенящий дибил форсит про работы-нет на руби?
получается тут один семенящий дибил форсит про то что работа есть
>>733819
А вы не один человек случаем? В каждом треде один говорит, что работы нет, другой спрашивает про семёна.
тоже вариант
Имеем класс со следующей ботвой.
before_save :grow_penis
private
def grow_penis
unless self.penis_size > 25
self.save
else
self.destroy
end
end
как правильно заставить коллбек before_save не сейвить модель без её удаления?
Во-первых, коллбэки говно и не нужны, во-вторых, используй правильный коллбэк before_create и возвращай в нем false, чтоб не сохранять. А если хочешь удалить всех с "неправильными" членами - просто выполни соответствующий запрос один раз. В-третьих, никогда не пиши unless-else.
На английском тоже хуйня тащемта. Норм когда там нет else.
Так ты сам к языку конструкцию свел, лалка. Еще и перевел неправильно.
Правильнее так
Если ложно, что член больше 25, то
Твое "если не-не-больше 25, то" в коде так выглядит:
if !( !( penis_size > 25 ))
что действительно не очень для понимания.
private
def grow_penis
false if self.penis_size <= 25
end
>Если ложно, что член больше 25, то
Это просто unless, а не unless-else. Людям проще думать положительными условиями, потому что они без дополнительных слов работают. Если член, то 1, иначе 2, а не "Если ложно, что член". Это как негативы смотреть, вместо фотографий, вроде понятно, а всё равно какая-то хуйня.
Если ложно, что член больше 25, то вырасти член, а иначе, если не-ложно, что член больше 25...[/b] Давайте так не жить, короче.
«if !( !( penis_size > 25 ))» — это конечно дичь, но имхо unless это как-то уже слишком сахарно. Хотя может сказывается мой опыт начального знания паскаля и си.
Люблю картинки как на 4 ветвёртой, стена текста в растре, с длинющими строками чтобы уж точно пришлось увеличивать и елозить мышкой по столу.
Ну это американская/гейропейская специфика.
Не виноваты же мы что когда общество имеет денег хоть жопой жуй, у них возникают затруднения с определением собственного пола и ориентации.
Нет. Мем пошёл из-за того, что среди инженеров очень мало женщин.
Anyone who still believes in the meme only has to look at a biology classroom. It smells of old unused pussy.
Math is at 50% female, so is physics, chem, etc.
The only place where there are relatively no females in engineering, where they make up a solid 10% but that has reason.
You know that thing about pulling your pants down in prison to signal that you are open to get fucked in the ass? Majoring in engineering is literally the same thing, but for college students.
Women just recognize the gay men club engineering is and step aside, but of course, the really big fucking sluts can't help but include themselves in the neverending ass fucking so they make up that 10% of women hoping that one day an engineer will mistake them for a guy and fuck them too.
What is true, according to the regressive left, is that being female is no longer 'enough' minority status. I mean, you need to at least be gay.
Нет и приводит пасту на английском языке. Я прям не знаю, честное слово, дьюд, ватафак? Просто признай, что это западная специфика.
Понятно.
бля, ну никто?(
А вообще я вот я учу дохуя всего и делаю какие-то вещи для себя, так я когда перечисляю все это и говорю, что нет опыта коммерческой разработке, но есть какие-то мелкие поделки на перечисленных вещах, то все почему-то так удивляются и не верят. Это нормально?
можно, уже сделал. has_attachment :file, styles: lamdba { |file| file.shit? { thumb: '100x100#'} : {} }
>А вообще я вот я учу дохуя всего и делаю какие-то вещи для себя, так я когда перечисляю все это и говорю, что нет опыта коммерческой разработке, но есть какие-то мелкие поделки на перечисленных вещах, то все почему-то так удивляются и не верят. Это нормально?
Предложение звучит как набор оправданий для себя и для других, даже через двач видно.
Заказчику в целом все равно какие ты там переделки умеешь использовать, ему скучно это слушать в целом, ему нужно знать что ты сможешь сделать результат который принесет ему прибыль, а то что у тебя там полон гитхаб переделок законченных на 5%, но очень интересных, это хорошо, но не прибыльно.
Когда спрашивают про коммерческую разраобтку, спрашивают, знаешь ли ты про сроки, планирование, поддержку, и все остальное.
я даже не знаю, как можно сделать проект коммерческим. заделать что-то типа платной системы отзывов с базой данных на моем серваке? но это же надо дохуя за бд платить. в голове у меня только крутятся вещи, которые можно делать в рамках хобби - всякие там гостевухи и браузерки, но их на хлеб не намажешь. я не оправдываюсь, просто я наверное тупой, медленный или от жизни отстал. все-таки кодинг - это уже больше для шустрых мальчиков-хипстеров из больших городов, которые ваяют что-то свое в перерывах между игрой в дотку. я в эту картину не вписываюсь.
Законченный проект, это коммерчески успешный проект.
Посмотри на nginx например, Сысоев в опенсорсе его допилил и бесплатно выложил и ему всё равно денег предложили.
В твоём случае ты должен сделать в своей репе законченный проект, с хорошим README.md, чтобы в нём были значки о прохождении тестов и сборки и некая документация. Короче всё как в лучших домах европы.
Коммерческий человек не может посмотреть в код и разобраться какой-ты охуенный, а вот на README.md посмотрит с интересом и там должна быть конфетка.
Ну да, мне кажется 90% опенсорса никогда не дорастут до nginx, ведь нет дяди, который стоит и подгоняет сроками и quality test.
Люди останавливаются, когда попенсорс не приносит удовольствия, приятные фичи закончились, осталась ебля.
Ну я говорил скорее про портфолио, в роли которого обычно выступает опенсорс для своих разработчиков.
Но ведь этот законченный проект тоже не будет коммерческим. Таких высот, как написание своего сервера мне все равно не достигнуть. А очередную гостевуху или браузерку вряд ли кто-то оценит. А других идей у меня все равно нет. Да и надоело уже писать всякое говно и выкладывать на гитхаб, прям как бомж с протянутой рукой трачу свое время годами: нуууу возьмииитеее ну плиииз.
Нормальные чуваки создают такие проекты, на которые быдло само тянется и умоляет взять деньги, чтобы им попользоваться. надо какую-то голден идею, хуй знает.
Я считаю тут нужно сразу понять кому ты себя продаёшь.
Крутой охуенный проект это для конечных пользователей.
А тебе как начинающему разработчику, надо продавать себя работодателю, которому прежде всего нужен компетентный человек, готовый работать как профессионал.
Именно поэтому у тебя должен быть гитхаб с твоим самописным блогом, где человек работодателя сможет взглянуть на твой код, оформление и проработку ридмишки, коммиты (их атомарность и осмысленность) — тогда проверяющий скажет, этот человек начинающий, но видно что не валенок и знает как и с чем работать.
В живописи есть такая фигня, которая отличат картину от наброска. Набросок может быть нарисован красками, проработан, но с какими-то отогнутыми углами холста (или о ужас просто листа).
А картина же будет на идеально ровном холсте, а лучше в рамке, как законченное произведение.
Баклана у которого в коде охуенный код, а в ридми «Readme supposed to be here...» очень часто с работой прокатят. Мир поменялся за прошедшие десять лет, у индустрии появились стандарты, стайлгайды и прочая муть, а я ведь просто хотел писать видеоигры, а не решать задачки матановые.
Можно, в самом простом случае тебе надо будет дать деньги и получить html/css/js файлики. Можешь поискать исполнителя знакомого с рельсой, который будет верстать и собирать под всякие less/sass/haml и прочие фронт-проессоры для рельсы.
Ага, отлично. Меня первый вариант устраивает, я сам учу рельсу, хочу запилить кое-что.
Возраст?
20
Местоположение
Рашка
Сколько времени знакомы с рельсами?
Пошел 4й год.
Сколько времени работаете, используя рельсы? (за бабло т.е.)?
3й месяц
Какой часовой рейт/зарплата?
15$, 20 часов в неделю
Куда планируете свалить?
США, флорида/джорджия/южная калифорния.
Мало что понял, благодарю в любом случае.
>>735455
17
ДС
3 дня, а так я андроид макака(2 года)
4 месяца(опять же, андроид)
25к в месяц за 1-2 часа в сутки
США, Канада, Франция
Задумался, вот, что лучше - скаффолдинг и потом допиливать его, или модели с контроллерами отдельно генерить и на них уже всё что надо вешать?
Есть ли сейчас смысол заниматься конкретно рельсами? Какая сейчас востребованность этой технологии? Если, например, я хочу свалить за бугор, найду ли я там себе пристанище со своими рубями?
Да. Еще пара лет и его заменят хаскелем в элитных проектах, а гостевухи будут делать на джаваскрипте и голанге.
Ну например, скаффолдить можно то, что подлежит редактированию пользователем. (таблицу статей, пользователей, категорий).
ВОт ещё... связную таблицу для has_many :through (что бы связать категории с материалом например) через g migration делать? Модель же не нужна под неё?
>возраст
21
>местоположение
Страна без газа, Крыма и Донбасса
>сколько времени знакомы с рельсами?
Немного, был раньше питон-адептом
>Сколько времени работаете, используя рельсы? (за бабло т.е.)?
Еще не работаю
>Куда планируете свалить?
Планирую выпиливаться, а не сваливать куда-то
Просто торжество феминотолерастии.
А хотя там одна Акира затесалась, мимикрируя, лол. Возможно, отбой тревоги тогда.
Чет проиграл с этих тянок с репами с 0 звездами.
0) Симпатичные ретро end, заместо вечно просирающихся отступов
1) Статические методы без костылей
2) @, @@ и т.д.
3) Крутые разделители в виде ::
4) Тернарий ? : , святое дерьмо иисуса, как же я люблю этот оператор!
мимо-питонист-со-стажем
>0) Симпатичные ретро end, заместо вечно просирающихся отступов
Хуйня. Скобки читаемее портянок из эндов.
>1) Статические методы без костылей
Норм.
>2) @, @@ и т.д.
Норм.
>3) Крутые разделители в виде ::
Хуйня.
>4) Тернарий ? : , святое дерьмо иисуса, как же я люблю этот оператор!
Нечитаемая хуйня. В своем коде нормально, чужой еод с этим говном нечитаем.
Он про скобки ничего не говорил, он в принципе сравнивал. Чё ты как валенок себя ведёшь.
Какие подводные камни?
Картинка явно зашоплена, синего и рыжего там не могло быть.
нахуй ты сюда минифай засунул, ещё влупи байткод для большей жести.
>второй квартал 2016 года
>все места заняты
Лел.
Кстати, за что они туда попадают-то? За написание очередной очень нужной книжки "рабе длйа детеий" и хэловорлд на гитхабе?
Так я не понял. Значет это бывший жирный мужик, который сделал операцию и стал жирной телкой, при этом он ещё теперь он ещё топит за феминизм.
таких дофига в ойти последнее время
А чё вам трансгендерный феминизм не нравится?
Ватники дофига, флюродросите Путину В.В.?????
У американцев анусы разбиты, а у вас дороги — сами подумайте кому хуже живётся.
Всем похуй на чужие анусы, горит от ебаного форса этого мусора. Тот(та) же Коралайн – не пишет нихуя, но "кококо я погроммистКА" и работает в житхабе просто по тому, что форсила эту хуйню.
В опенсорсе теперь есть два вида мудаков – самолично Торвальдс который кладёт всех хуями и всем похуй, либо феменистки/трансфеменистки, которые увидев что-то что им не нравится в твоём твиттере могут начать ебать мозги, и эта хуйня только усиляется. Скоро начнут из корпораций выгонять за их репорты, тут конечно Путины и прочие личности виноваты.
НО. В некоторых коммитах все работает нормально. Коммиты вообще никак друг с другом не связаны. Я нашел два таких методом тыка.
Как только переключаешься с "рабочего" коммита на нерабочий — бектрейс ломается. Разница между коммитами (рабочим и нерабочим) в одном файле, который вообще к делу не относится.
Этот файл можно взять с нерабочего коммита, тем самым сделав рабочий и нерабочий коммиты идентичными, но ничего не ломается. Нужно сделать именно чекаут, чтобы сломалось.
В интернетах нашел только предложение апгрейдить рельсы (не помогло) и выставить _в каждом_ .rb файле кодировку, мол, кто-то там у вас `ActionView::Template::Error` портит. У остальных кодеров в проекте такой проблемы нет. Пробовал полностью клонировать проект в новое место — там то же самое.
В итоге после установки джема `better_errors` проблема исчезла, но... Что за хуйня??
Вспомню традиции русских форумов и скажу одно:
"Телепаты в отпуске".
Мы не можем посмотреть в чем там проблема без исходников, которые ты конечно же не дашь, так что вопрос закрыт.
Что если logger проставить? попробуй на другом сервере запустить, thin напрмер
Лол, я думал ты оценишь мою толстоту.
Так-то я тоже за Путина и сам офигеваю со всей это ЛГБТ-шумихи. Просто интересно когда они программировать-то успевают?
Ещё кстати у них фишка это волосы в кричащие цвета красить.
А что там у тебя вместо веб-сервера? Поищи error.log какой-нибудь. Вдруг там что-то на уровне интерпретатора (правда у меня было такое только когда писал в cgi-стиле).
Но я прыщеблядь.
>>736696
И что ты в исходниках смотреть будешь?
>>736697
В контроллерах логи не работают. В `development.rb` работает. Видимо, где-то на пути к контроллерам все ломается..
Сервер и так thin стоял. На пуме запустил, такая же ситуация.
>>736698
thin только в `development.log` пишет, вроде бы. Оно же в консольку уходит.
Короче, для начала делаешь git bisect пока не находишь коммит, в котором впервые произошла эта хуита. Ну и если он прямо текущий, я бы попробовал его разрушить и заново закоммитить.
Пацаны не поймут если я с мастером что-то делать начну, у них-то все работает.
Вот так сейчас мастер у меня работает:
sdflk43 HEAD - нерабочий
qweasdf - нерабочий
awef3 - рабочий
asdf34 - нерабочий
asfe432r - не рабочий
разница между этими коммитами уровня "переименовал переменную в тесте"
если чекаутить файл из нерабочего коммита (а там разница только в этом файле), то все продолжает работать
32asdfwe - рабочий
На других бранчах тоже не работает (на каких-то, наверное, работает).
Пробовал создавать бранч от рабочего коммита и мержить туда остальной мастер и тогда оно ломается.
В крайнем случае, раз чекаут нормально работает, можно было бы взять рабочий коммит и отчекаутить весь вообще проект рекурсивно, но пока что и так работает, с `better_errors`.
>Нужно сделать именно чекаут, чтобы сломалось.
Не то имел ввиду. Нужно сделать чекаут "нерабочего" коммита чтобы все сломалось. Если сделать чекаут файла из нерабочего коммита (а один единственный файл это и есть разница между этими двумя коммитами) — то логи работают. Это мне так повезло и я нашел коммиты с разницой в один файл, так-то есть и коммиты с разницей в охуилион файлов.
В общем, раз в development.rb логи работают, а в контроллерах уже не работают, то остается только расставлять логи во всем порядке загрузки рельс и смотреть где они сломаются.
Зачем тратить часы на выяснения этого говна, займись работой.
если CRUD'о ебашилово назвать кодингом, то..
На слиме классные шаблончики получаются, слим няшка же. И быстро работает, но это вторично.
пук ты хотел сказать
В слиме исправлены многие неудобства хамла. Слим более богат фичами. В новых проектах популярнее слим. Хамла много в легаси-говне.
сейчас глянул, да слим реально быстр, даже догнал по сути hamlit, причём пол года назад ещё существенно отставал.
свежее: https://travis-ci.org/k0kubun/hamlit/jobs/125316387
На реальных в шаблоны иногда лезут верстальщики и фронтенд-макаки. В какой рот они дружно твой хамл со слимом, можешь сам догадаться.
Въёбаныйврот? Похоже у нас рекурсия каламбуров.
В какой рот нужны такие работники - сам знаешь. Нахер с ними работать?
Хз, у нас верстальщики норм с haml, но slim не знают, или делают вид, что не знают.
разница между ними в разы меньше, чем между erb
Если бэк не знает ерб, ему просто ставится задача на 4 часа "выучить ерб", а хипстерское говно вроде слима остается для домашних проектов.
Ну это ты глупость какую-то по-детсадовски в ответ кукарекнул. Что за бэк не знает ерб? И слим не хипстерское, не говно, и не для домашних проектов. Все свежие проекты деляются на слиме, погугли, блядь, тупой болван.
Ну я например. Я до него с питоном не был знаком, поэтому к ебаным отступам привыкал несколько дней.
метод модели
def generate_file
data = []
file = File.new("#{Rails.root}/public/files/#{self.id}.txt", "w+")
self.books.each do |book|
data << book.author.to_s
end
File.open(file, "w+") do |f|
f.write(data.join("\n#\n"))
end
end
Ты открываешь файл, но не закрываешь. Алсо, у тебя какая-то ёбань в коде, так не делают обычно.
Хм, действительно. Добавил f.close, и вроде удалилось.Думал что если записать в файл в блоке то он автоматически закроется.
>Алсо, у тебя какая-то ёбань в коде, так не делают обычно.
А как? Мне нужно чтобы кнопкой генерировался файл на сервере с данными из таблицы, а потом я отправляю его через send_file.
Не делай File.new отдельно. Оставь только File.open.
А лучше вообще замени на IO.write или IO.binwrite.
Это не "короче", а "по-нормальному".
как вас унииизили, субханАлла, короче!
Столько разных библиотек, что я даже хз
Этому не место в модели, вынеси в отдельный класс и вызывай, хотя бы, в контроллере.
Вопрос "а нахуя тащить это в продашкн и ебать мозги фронтам и тянке-верстальщице с 8 классами образования" остается открытым.
Сочувствую долбоебам, которые тащат слим без причин, просто НУ ВЕДЬ ТАМ ЖИ ОТСТУПЫ!!1
Какие отступы, что ты несёшь? У тебя персональный бугурт, видимо. И да, ваши фронты дно и даже глубже дна, если для них лаконичность синтаксиса шаблонов = ёбля мозгов.
В руби есть перегрузка операторов. Например, можно объявить метод "плюс" и написать кастомную логику сложения объекта заданного класса с другим объектом. Точный список доступных для перегрузки методов где-то есть, почти все можно перегружать. Метод с названием "-@" - это метод операции "унарный минус".
Амперсанд перед объектом при вызове методов пытается конвертировать объект в Proc. Можно определить метод to_proc у класса и использовать его, типа, вот так: array.map(&my_object).
to_proc у символов определён примерно так:
def to_proc
proc { |arg| arg.send(self) }
end
Что мы и любим постоянно использовать в конструкциях типа User.all.map(&:full_name)
Соответственно arr.map(&:-@) эквивалентно arr.map { |x| x.send(:-@) } или arr.map { |x| -x }
домо оригато годзаймаста
чтобы отличить бинарный минус от унарного
Матц так решил. Назвать метод унарного минуса -@. Чтоб можно было писать смайлики в коде.
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
Rendered collection (0.0ms)
??? появилось после { includes :model_name }
ладно похуй, как я понял этот трюк что-то вроде ленивой загрузки, хотя вроде как АR быстрее высрал.
Олсо параллельно ПОДРАБАТЫВАЮ за гроши - верстаю (и бек тоже) маленького сайта одной местной фармакомпании.
А компы настраиваешь бухгалтерии?
Л. О. Л.
После Java (я начинающая андроид-макака на удалёнке) рельсы - это как перейти с Gta V на сапёра.
ИМХО рельсы настолько легки, что мне они кажутся нереально сложными. Объявил переменную - обращаешься к ней отовсюду, нет скобок у методов, бла, бла, бла...
https://www.railstutorial.org/book/
Ты же тут учишь, да? Я тоже. 9.3.3, идёт третий день обучения.
ты сейчас смешал синтаксис руби и рельсы, и вообще хуй пойми какое сравнение.
Двачую.
Я просто аутист, простите.
джва года ждал
Не вижу ничего сложного в пике, 80% знания уровня "хело ворлд", погалеришь на дядю пару месяцев и все узнаешь
и поймешь что принцип 80/20 очень даже правдив.
дебаггинг какой-нибудь лютой хуйни, поддержка легаси, попытка вызывать какой-то кривой сервис, нужный заказчику...
если тебе приходится писать такой код, у тебя дома что-то не так.
Вообще-то больше одного трая за раз говорит о том, что ты делаешь что-то не так.
А серьезно, нахуй? Типа глянте у нас в руби есть телочки, так клево. Я блядь на них посмотрел и захотелось в пхп съебать.
самое забавное в прошлые года вполне ебабельные тянучки были, а теперь все скатилось в sjw, в общем сраная америка катится в сраное говно
Типа "мы ничего такого в виду не имели, мы толерантны, нинад в полицию, только не по лицу плес(((".
Симпатичные девушки нужны только для парней без фантазии.
Вылизал бы им письки.
Я воспринимаю это как популяризацию руби за счёт совеременных толерастных тенденций. Вот самый влиятельный трап руби-сообщества (пикрел) придумал Code of Conduct, в котором по сути прописные истины, и теперь эта хуйня используется в кадом проекте (CoC есть в репе Go, Rust, Node.js). Зато руби пропиарился, мол, мы впереди планеты всей не только по инфраструктуре и экстремальному программированию, но и по толерастии.
>В опенсорсе теперь есть два вида мудаков – самолично Торвальдс который кладёт всех хуями и всем похуй
Торвальдс охуенен. Во многом его характеру и стилю как общения, так и управления проектом, Линукс так взлетел.
fix
Во многом БЛАГОДАРЯ его характеру и стилю как общения, так и управления проектом, Линукс так взлетел.
т.е. у меня есть documents#action (GET). Какой-нибудь токен можно сгенерировать на сервере, чтобы запрос из емейла выглядел /documents?token=blabla, и потом расшифровать, и убедиться, что он верный?
А причем здесь devise вообще? Сохраняй токен и проверяй, делов-то.
ну я вечером захожу, днем работаю, так что ты прав.
Да что подробнее, человек мучается на винде с вагрантами.
>Как с помощью devise разрешить пользователю совершить действие из емейла?
Во-первых, для авторизации юзай Pundit, в Devise только аутентификация.
Во-вторых, выкинь Devise на помойку, пока не поздно. Используй Authlogic или Sorcery.
Во-первых, ты меня не понял, мне нужно было провести аутентификацию с помощью GET запроса из емейла. Pundit и так юзаю.
Во-вторых, выкидывать devise мне никто не даст, хотя меня он уже заебал, ибо легаси.
В третьих, проблема решается с помощью prepend_before_action :shit в нужном контроллере
def shit
user = ...
sign_in(user, event: authentication)
end
Че эт devise не модный стал?
Вот если просто в рут запрашивать модели таким образом:
[CODE]
def index
@examples = Example.includes(:association, :another_association)
.page(params[:number])
.per(20)
respond_to do |format|
format.html
format.json { render json: @examples }
end
end
[/CODE]
то вызывается сериалайзер, все has_many и belongs_to мапятся в готовый джсон и просто охуеть как круто.
Но если в таком виде:
[CODE]
def index
@examples = Example.includes(:association, :another_association)
.page(params[:number])
.per(20)
respond_to do |format|
format.html
format.json { render :json => { examples: @examples, next: @examples.next_page } }
end
end
[/CODE]
то сериалайзер не вызывается, т.е. сериализируется сама модель без ассоциаций и нужный мне next_page. Подскажите пожалуйста, как можно этот вопрос разрешить правильным образом, чтобы и через актив модел сериалайзер, и некст пейдж, и ДХХ одобрил, и вообще. А то сейчас я держу стейт пагинации на клиенте, что само по себе уже неприятно и непрактично.
Вот если просто в рут запрашивать модели таким образом:
[CODE]
def index
@examples = Example.includes(:association, :another_association)
.page(params[:number])
.per(20)
respond_to do |format|
format.html
format.json { render json: @examples }
end
end
[/CODE]
то вызывается сериалайзер, все has_many и belongs_to мапятся в готовый джсон и просто охуеть как круто.
Но если в таком виде:
[CODE]
def index
@examples = Example.includes(:association, :another_association)
.page(params[:number])
.per(20)
respond_to do |format|
format.html
format.json { render :json => { examples: @examples, next: @examples.next_page } }
end
end
[/CODE]
то сериалайзер не вызывается, т.е. сериализируется сама модель без ассоциаций и нужный мне next_page. Подскажите пожалуйста, как можно этот вопрос разрешить правильным образом, чтобы и через актив модел сериалайзер, и некст пейдж, и ДХХ одобрил, и вообще. А то сейчас я держу стейт пагинации на клиенте, что само по себе уже неприятно и непрактично.
он популярный, но ебать кривой.
Да чет куклоскрипт меня подвел с коде тегом. Я так-то что-то нашманил уже вроде. На Аппликейшн контроллере сделал метод pagination и там извлекаю next_page: object.next_page. А потом на любом контроллере format.json { render json: @collection, meta: pagination(@collection), adapter: :json }. Магия жи есть. Это конечно всё круто, когда просто работает. Особенно после нода или гоу, где простыни писать надо по малейшему поводу.
Платина.
Насколько сложно перекатиться из PHP разработки (yii2) в Ruby? Насколько сложно найти удаленную/постоянную работу новичку?
В вакансиях почти всегда пишут опыт разработки Ruby 2+ года. В настоящее время пол года кодил хэлоу ворды на PHP, в т.ч. на yii2, до этого освоил верстку и делал сайты на wp, в качестве дизайнера (программирование отдавал фрилансерам).
Недавно разместил резюме на hh, откликнулся на 20+ вакансий с hh и weblancer.net. Прошел два удаленных собеседования, выполнил тестовое задание, на этой недели приступаю "PHP web программистом", если все будет ок. В противном случае, буду рассылать дальше резюме. Судя по отклику работодателей, и по сравнению с рассылкой резюме дизайнера (лол), я смогу найти работу. Планирую полгода работать на данной должности, копить деньги и параллельно повышать скилл.
Поэтому выбор, либо углубиться в PHP и понаехать в ДС в поисках работы в более-менее серьезной компании, либо выучить новый язык, не меняя сферы Web.
Рассматриваю Ruby(RoR)/Python(Django)/C#(ASP.NET).
Сколько часов мне потребуется, чтобы пройти все задачи и прочитать всю литературу из ОП поста, занимаясь этим в свободное от основной работы времени, с учетом того, что у меня уже базовые навыки (ООП, базы данных, MVC, DOM/HTML/CSS)?
Какие реальные задания, проекты мне нужно выполнить, чтобы получить работу?
Так ли важен опыт разработки именно на Ruby, зачтется ли реальный опыт PHP разработки?
Каков уровень зарплат по сравнению с другими языками, может быть тут есть тот, кто уже перекатывался, и может ответить?
Большое спасибо.
>Насколько сложно перекатиться из PHP разработки (yii2) в Ruby? Насколько сложно найти удаленную/постоянную работу новичку?
Новичку - вкатиться в руби сложно, а работу найти не реально.
Платиновый ответ на платиновый вопрос.
Ты прошел все задачи, прочел литературы из оп поста? Сколько времени изучал? Расскажи про свой опыт.
иди-ка ты нахуй. google hacker news who is hiring; ctrl+f rails>>744078
https://news.ycombinator.com/item?id=11611867
113 результатов, 1 минута поиска.
мой совет - как только получится, вали с русскоязычных бирж труда и всегда работай с зарубежными заказчиками. Для них 2k$ в месяц для программиста это пиздец как мало, столько даун в макдаке получает. Тут важнее продать себя, чем быть охуенным программистом.
Пример: http://pastebin.com/v7q5KA7Q
Насколько это практично, в плане будет ли GC освобождать память и в целом является ли такой подход анти паттерном?
чет мне мои 15$ кажутся плохой оплатой, пойду заказчика уламывать на 20$ (будет 1600$ в месяц на полставки)
ебать говнокод :) юзай activemodel serializers, и какой-нибудь responders по желанию.
Нинужно, если там только не over 9000 круда.
1. В чем говнокод?
2. Это и есть активмодел сериалайзер, какое это отношене имеет к ситуации?
у тебя должно быть все настроено так, чтобы было просто `respond_to :html, :json`.
>>744078
>>744018
Везде нужны звёздные сеньоры-комбайны с 5 лет опыта и портфолио. Вакансии есть, но нигде не берут новичков.
А охуительные ебланы с ctrl+f ссылками могут соснуть. Почти все вакансии там on site. Вы понимаете, что это значит? Нет, вам не предложат релокейшен. Просто это вакансии для белых людей, пусть даже они тупые. А если ты сеньор из отсталой раисси, тебя шлют на хуй. А вакансий на удалёнку там 3.5 штуки, понимаете, да? Не надо тыкать в сотни результатов по ctrl+f, там нет сотни подходящих вакансий, там свободных вообще нет. Придурок тупой, зла не хватает блядь, умничает тут.
ты чего думаешь, тебе будет на блюде с голубой каемочкой написано junior remote rails?
лол
прикинь, можно попытаться с ними добазариться, показать профиль, а не ныть на дваче, и сосать рашкины зарпалаты по 40к. это вообще только 1 несчастный линк, ты другие вообще открывал?
>>744325
>>744312
>>744309
Кто из вас до кодил коммерческие проекты на других языках, кроме Ruby?
неа.
[1, 'shit'], [2, 'shit']?
Есть модели
Document
has_many :responses
Field
has_many :responses
Response
belongs_to :document
belongs_to :field
value(string)
Как сделать такой поиск по документам? можно юзать squeel
Чет в голосину с этой хуйни. Белым людям похуй, а пидорахену с не менее хуевым английским глаза видите ли режет.
Но там ведь правда текст весь состоит из ошибок...
Это копия, сохраненная 2 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.