Это копия, сохраненная 30 июня 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 (одобренный).
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. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - ruN:\byANUSj>9,abberPUNCTUMnb:ru
А еще есть русская слак конфа - 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.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.
possal na animu debila
Так то смотрю за тредом и понимаю, что походу в Руби и Рельсы смысла вкатываться нет. Деманд слабенький. Наверное, лучше пхп джаваскрепт макакой стану.
Да, так и сделай.
Всё правильно сделал, а ruby можно и для души юзать.
Допустим, у меня есть куча изображений, специфичных для конкретного пользователя или группы пользователей (аватары, например). Мне эти изображения скармливать пайплайну не нужно? (чтобы не грузить неиспользуемые файлы)
Пользователь ничего лишнего грузить не будет, assets pipeline просто прекомпилирует всё в папку public/assets. В браузер что-либо загрузится только при первом просмотре данной картинки/стилей/скрипта. Если речь идешь про совсем большое количество картинок, которые еще и могут менеджиться через некую админку, то использовать надо какой-нибудь гем для загрузки файлов, типа paperclip или carrierwave. К Assets Piperline он отношения не имеет.
>>744939
Это же тривиальная задача. По такому тебе сюда http://google.com и сюда http://stackoverflow.com
Например, http://stackoverflow.com/questions/17481812/dynamically-add-active-class-to-bootstrap-li-in-rails
Уже несколько лет слышу, что похапе вот-вот нагнется, но что-то никак не загибается. Возможно ты и прав.
нет, поэтому учу руби. но я не такой даун, чтобы говорить, что пхп завтра умрет.
Куда ты тогда предлагаешь вкатываться, если не в руби и не в похапе?
Смешно. На деле вижу несколько вариантов. Js (так и так понадобиться), Python (котовасия с ветками), Go.
>Js (так и так понадобиться),
Ок.
>Python (котовасия с ветками),
Пишешь на третьей и не ебёшь мозг. Двойка мертва.
>Go
Разве что как задел не будущее. Работы то не завезли.
ниасиляторы, бгг
> Development felt cool
Тащем-та вся суть статьи в одной фразе. Хипстору было охуенно ебаться с всратыми рельсами версии так второй до мержа с Merb-ом, а потом когда самые охуительные косяки в дизайне починили, запилили Arel вместо ста нерасширяемых ad-hoc велосипедов, потом год фиксили баги и ими наконец стало можно пользоваться без анальных спазмов, ему стало "ne cool". Это ж теперь бля работу придётся работать, а не анус себе расширять. Пойду искать новый фреймворк, хуле.
Проиграл.
>>745211
Годная статься, но по-моему проблема рельсов в другом совсем, я только не знаю в чем.
Мне очень нравится руби, гемчики, МВС модель, но мне нужна работа, возможно руби станет просто хобби.
Подумал примерно так же. Смутила дата написания статьи, слишком далеко уже от времен второй версии.
>Мне очень нравится руби, гемчики, МВС модель, но мне нужна работа, возможно руби станет просто хобби.
Работы жопой жуй. Или это вечный семен решил действовать более аккуратно и начал говорить намёками?
Можно ли в форме для редактирования записи из модели А сделать селект для выбора ассоциации из модели В? Для has_many вот был бы метод b_ids, но для has_one ничего такого не могу найти.
Нет.
Руби неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит руби, а потом не знает что делать с ней. Плюс вся инфа на английском, заебёшься переводить. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell. После него другие языки будут учиться за неделю. Работы полно, платят отлично. Много инфы на русском. По книгам. Если есть хоть немного знаний программирования, читай это: 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 Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Благодарю.
вот палишь годноту всякому быдлу, ща все хомяки набегут на хаскель и зарплаты упадут, будут джуны меньше 150к получать.
Тебе сюда: http://stackoverflow.com/questions/5572665/how-do-i-create-the-view-for-the-has-one-association
Важно здесь наличие метода allow_nested_attributes_for в модели А, ибо модифицировать придется поле в B (has_one - ассоциация, при котором внешний ключ находится в аасоциируемой "справа" модели)
А ничего что на вакансиях хаскелистов смотрят на знание теории алгоритмов и структур данных?
так тонко что даже толсто.
серьезно, вы ему поверили? на хаскеле найти работу проще, чем на руби, ага.
>14634798532460.jpg
А чего там такого непонятно? Я думаю, даже 9-классник осилит основные моменты, если попутно будет изучать основы так называемой дискретки.
Ну ты писал что за 15 минут можно всё это изучить. Я если что имел ввиду именно эту книгу.
Ещё гревне-дреческий алфавит надо выучить и книжку по дискретной алджебре.
Да и через 3 года после ВУЗа я уже не могу ничего вспомнить пор матешу.
Двачую, при том книгу писало четыре человека, четыре!
Да и теории категорий там нет. В хаскеле нельзя сделать свою собственную категорию. Даже свой собственный функтор (в математическом смысле) нельзя ввести.
List - это категория, Maybe - это категория, любой кастомный data - категория, все остальные примитивные типы - лежат в Hask категории. Функтор в хаскеле отличается от теоркатного только тем, что он переводит морфизмы и объекты не из произвольной категории в привольную, а только из Hask в произвольную.
>>745936
Вы заставляете меня и остальных находящихся здесь рубистов чувствовать себя неполноценными неучами, которым никогда не суждено оказаться среди хаскелл-элиты. Пожалуйста, перенеситесь в соответствующий тред
Почему? Судя по названиям уроков, просмотрев это всё от начала до конца, ты увидишь приблизительно 100% базовых и чуть более продвинутых вещей, которыми придется заниматься практически при разработке любого приложения. Всё, что выше - частные вещи, уникальные для конкретных задач, туториалы или статьи по которым либо не найти вообще (читай документацию и делай сам), либо их мало. Начать можно с этой пачки видеоуроков (за качество которых ничего сказать не могу, не смотрел)
Спасибо, бро.
По мне так удобно, быстро и красиво. У меня лицензия как студенту. Чяднт?
Многие начинают с саблайма, так как качать много гигов ради попробовать покодить - глупо. Ну а потом привычка, вот и остаются. И начинают другим срать в уши, мол я сижу и ты так делай.
заебешься настраивать. будет куча свободного времени летом - тогда попробую вкатиться. и то в rubymine есть плагин vim, лол.
Только emacs. А так да, настраивать долго.
Так нет же, это вы постоянно срёте своими IDE - ну там жи автокомплит, можно найти этот клас и кнопка рифакторинг еба, сразу как прафсианал))). Это стоит денег, времени и зависонов, о да.
В рубимайне есть не менее 10 крупных функций, значительно повышающих удобство при разработке, а также десятки вспомогательных плюшек. Ключевые из функций настолько полезны и удобны, что пересаживаясь в простой текстовый редактор, где их нет, чувствуешь себя словно без одной руки. Я могу начать перечислять, если кому-то реально интересно.
Мелкие скрипты удобнее делать в атоме каком-нибудь, это да, потому что часто лень проект поднимать в рубимайне, да и незачем это делать, если работы на полчаса.
Но что-то хоть немного регулярное или длительное, среднего или более размера делать без рубимайна... очень не комфортно. Я честно пытался в своё время пилить среднего размера проект исключительно в саблайме, обмазался плагинами там... выдержал две недели и дропнул это самоистязание к хуям.
По поводу тормозов, зависонов, трудностей настройки и денег - это всё враки и хейтерская антипропаганда. Рубимайн работает очень шустренько, настроить его нужно всего один раз, ну и китайские публичные серверы лицензий никто не отменял пока.
Тебе реально интересно и ты рассматриваешь возможность вкатиться на рубимайн, или тебе нужен просто повод посрать в тред?
Не думаю, что я на него пересяду(примерно раз в год пробую ставить, трачу минут 10 на настройку и удаляю к хуям), но узнать, что же там такого есть, было бы интересно.
Когда-то давно пускал емакс по вене, но у меня от него реально заболел мизинец на левой руке. В 21 год нахуй, я охуел и удалил его навсегда к хуям. Потом года четыре сидел на саблайме, пока прошлой осенью после очередного обновления либ он не развалился нахуй. Можно было откатиться обратно и подождать, но саблайм вонял мертвичиной и надежды на новый билд не было. Перекатился на моднявый атом, в принципе меня бы все устраивало, если бы это говно не падало к хуям примерно два раза в день. В рот ебал такую жизнь, но альтернатив-то нет. Короче везде полное говно и в ебаном 2016 мне нечем редактировать ебаный текст без анальной боли. Пиздос просто.
Странно слышать об удовлетворении Атомом после саблайма. Этот браузерный сблёв по своей "отзывчивости" - как КПК на Windows Mobile рядом с iPhone в свое время.
А что именно ты там настраивал в Rubymine? Я почти не меняю дефолтные настройки, ставлю Darkula тему и вперед + парочку плагинов, которые даже не смогу вспомнить сейчас.
Двачую, вообще не понял что там "настраивать" надо.
А Атом просто пиздец, вот его как раз-таки не осилил, неудобно.
Я не чувствую принципиальной разницы в отзывчивости. Подсветка и (по-моему самый большой косяк, ибо блокирует весь интерфейс) перенос строк на файлах в 3к+ строк занимаюе 2-3 секунды после открытия, но такие файлы лично я открываю редко и поэтому лично меня это не ебет.
Хуже конечно чем у саблайма, лучше чем обвешанный плагинами емакс. Насчет рубимайна не скажу, потому что никогда подолгу им не пользовался, но по-моему там охуительной отзывчивости тоже не чувствуется.
> А что именно ты там настраивал в Rubymine?
Все, начиная от хоткеев и заканчивая назойливым автокомплитом.
Алсо, что скажете на счет Руби на винде? Старые форумы 2008 годов плевались, что руби на винде это тормознутый провал, но сейчас вроде как все ок?
Не, хуевый детектор.
Може и ОК, но разработчику сидеть на винде это ПРОВАЛ.
Тебе сделали линукс, запили мак ос (или хакинтош), но нет хочу жрать виндус. Пора переставать быть необучаемым и выбирать нормальные системы, а не прошивки для игр. если надо играться собирай отдельную пекарню с прошивкой или покупай PS4
Хуй знает, но мой хозяин хочет, чтобы к осени наша с ним гостевуха заработала под спермой на IIS. Выдержит ли это моя жопа не знаю, но думаю на пару охуительных историй хватит.
Никаких охуительных историй на самом деле, если не будешь использовать особо шизанутые или заброшенные джемы. Из особо шизанутых я встречал только libv8 (в зависимостях therubyracer) и unicorn, которые под винду собираться не умеют. Но ассеты последнее время модно вытаскивать из рельс и собирать через gulp\webpack, так что необходимость в libv8 остаётся только для ОСОБЫХ проектов, которые реально интегрируются с сим замечательным движком js. А unicorn на девелопменте не нужен, а на продакшене вместо него сносно работает thin, если сильно приспичит.
Продакшен под виндой - это, конечно, вопрос спорный. Я бы не стал так делать.
Ну и зависимости от линуксового софта могут ещё стать непреодолимым препятствием.
В обычных проектах под виндой ВСЁ НОРМАЛЬНО. Ну, почти всё. Но обычно работать вполне можно. Все популярные джемы, даже нативные, могут в винду. Для сборки нужно установить ruby-devkit, о существовании которого многие почему-то не подозревают.
Руби тормозит раза в 2 по сравнению с линупсом. Не критично на самом деле. Ах да, ещё не дадут обмазаться spring - для запуска тестов приходится использовать spork, а запуски rake терпеть по 5-10 секунд в зависимости от жирноты инициализации вашего environment.
Для некоторых проектов я держу рабочее окружение в виртуалочке, а работаю в рубимайне в режиме deployment. Это такая достаточно успешная попытка seamless интеграции IDE с удалённой средой, в которой запускается проект. Работаем как с локальным проектом, но вертится всё под виртуалочкой, мне очень нравится. И даже отладчик работает :3
> Продакшен под виндой - это, конечно, вопрос спорный.
Тащем-та это и нужно, какие-то клиенты-ретрограды не доверяют интернетам и хотят держать гостевуху у себя в локалке. И шоб обязательно под видной и IIS, развернуть докер это бля сложно и непонятно.
Можно ещё попробовать клиенту предложить миниатюрную виртуалку под майкрософтовским гипервизором или вибоксом.
Языки для разных целей, мася.
Больше доверяй «Get the facts».
мимо эстет
http://color-themes.com/?view=index
Настраивать у него целый день, блять.
Визуальная часть настраиватся за три минуты.
в спеллинге убери галочки чтобы убрать всякие ебаные линии.
ну йобанныйврот, для вас же сделали вагрант, в 2 клика из коробки всё работает, а потом начинают срать вопросами как блядь им никсы настроить, потому что привыкли дабл клик на десктопе.
гемы установи епт, и дождись пока рубимайн их подхватит.
>>746960
Кекнул с вас.
мимо элита с Lady Night
в рубимайне такое же, прост леньки включать, а джавахуета уже
https://github.com/hanami
http://hanamirb.org/
Я тоже заметил его еще когда он был лотусом, но так и не попробовал
Я как-то хотел по работе запилить на этой хуйне небольшой микросервис. Дочитал до Entity/Repository, охуел сколько говна мне надо будет из себя выдавить, чтобы замапать несколько таблиц на сраные модели, и расчехлил рельсы.
>>747052
Тоже считаю, что если сейчас что-то принципиально новое осваивать, то лучше выбирать что-то, что сейчас традиционно считается "высоконагруженным". Какое-нибудь джаваскриптообразное говнецо, или хотя бы Phoenix (который по большей части - копия рельс, но, вроде как, за счет того, что написан на Elixir, охуенно многопоточно)
нахуй этот элексир, когда может подтянут rust-bridge(helix), к тому же https://habrahabr.ru/post/300954/ отлично, сам думаю что может нахуй я решил делать приложение на express, когда тут всё кошерно.
>может подтянут
А эликсир уже работает. Че хотел сказать этой статьей? Вообще ничего нового оттуда не узнал, еще и ангуляр используют в 2016..
А че еще в 2016 году использовать? инб4 ты мне щас предложишь обмазаться ублюдочным высером от пыхомак с фейсбука, которым в приступе белой горячки пришла охуительная идея не только на серверсайде использовать шаблонизатор вместо языка программирования, но и на клиенте точно так же блевать разметкой внутри кода.
Я не буду тебе ничего объяснять. Считай слился.
Ну, я знаю что там nginx как-то используется, но как в руби-коде это выражается?
от вагранта у меня COLLECTING FILES
никак, он статику отдает, всякие ассеты, картинки, ну и запросы через него в рельсовый сервер.
Ты позволишь рубимайну обнаружить и установить новые источники данных?
Сука заорал почему-то.
>>747585
Довольно годно, но цвета надо чуть-чуть подкоректировать для няшности. Красный я бы чуть-чуть осветлил.
Хуярю формы с помощью чистеньких AR-моделей без бизнес-логики, как в учебнике от dhh написано. А всю логику вывел в insert/update/delete rules, хранимки и вьюшки.
Боже, какое job security.
Это все равно до тех пор, пока не попалась сложная форма, создающая больше одной модели.
А что конкретно тебе нужно в настройках?
Проигрыш.
Блин наверное я неправильно понял вопрос, на картинке рубимайн уже задолбал этими своими:
«Псс, пссс, чувак-чувак давай я найду тебе дополнительные источники данных. Хочешь апдейты тебе подгоню!? МНЕ СКУЧНО»
content_tag, как и все остальные _tag, вынесли в отдельный гем, так как многим сейчас от рельс нужна только генерация json.
Если ты генерируешь HTML, какие проблемы подключить гем и юзать content_tag? Или у тебя есть варианты поудобнее?
Двачую, лень было даже объяснять ему.
Но разве здесь не филиал б с примесью руби?
Алсо мой друг, который тоже учится на потоке, на руби говорил РАБИ пока я ему не сказал как правильно.
Проверочные слова: раб, работа, ребе (раби).
Source Code Pro
>Тоже считаю, что если сейчас что-то принципиально новое осваивать, то лучше выбирать что-то, что сейчас традиционно считается "высоконагруженным"
>хотя бы Phoenix (который по большей части - копия рельс, но, вроде как, за счет того, что написан на Elixir, охуенно многопоточно)
Или перестать ебать мозги и взять JRuby, который в продакшене давнее ноды.
Руки на стол и в зубы палку. А то еще язык откусишь.
>за хтмл вне вьюхи нужно рюки отрывать
В хелпере можно. Впрочем, это именно то, что мне не нравится в рельсах по-умолчанию - мешанина самого разного кода в хелперах. Есть какие-то современные шаблоны проектирования на замену хелперам? Потихоньку переходу на view models (decorators), но там получается тот же html, размазанный по файлам.
ты опять делаешь все не так.
там не должно быть html, а вспомогательные методы. а потом уже во вьюхе
h2= header
Поток студентов специальности компьютерная инженерия.
Пояснишь чем?
>Когда-то давно пускал емакс по вене, но у меня от него реально заболел мизинец на левой руке. В 21 год нахуй, я охуел и удалил его навсегда к хуям
Радикальненько ты с мизинцем обошелся.
Россия это Украина
Чувак не знал что через мизинец надо вим пускать.
Удаленку и фриланс видимо не придумали. И не надо начинать, что на удаленку джуниоров не берут, ни дня в офисе разработчиком не проработал. С самого начала на удаленке.
https://habrahabr.ru/company/latera/blog/301338/
ААЕЕЕЕ ВНЕДРЕНИЕ ЗАВИСИМОСТИ КОНТЕЙНЕРЫ ПАТТЕРН КОМАНДА ИНВЕРСИЯ УПРАВЛЕНИЯ АУТОИНЖЕКШН МММММ ПАТТЕРННЫ НАКАНЕЦТА ЕЕЕЕ
Даже не знаю, что на это сказать. Мой начальник, обмазавшись es6, зачем-то тоже запилил импорты в руби, хотя пока меня они не коснулись. Кому они упрощают жизнь - честно, так и не понял. Просто импортишь всё как дурак постоянно, будто если захочешь узнать откуда берётся та или иная хрень - без импортов не сможешь. Не сможет в это только полный нубас.
Чем плох DI?
Бог дал им динамичность в руби, а они, дебилы, топором шурупы вкручивают.
Пиздец блядь. Добавлю в вопросы на собеседовании: "как подменять классы при тестировании" и всё релевантное.
привет html injection
ну давай, предлагай свое решение.
А как надо в руби, что именно в этом плане дает динамичность? Я с Java просто, там DI везде используется.
называется синдром dhh - люди боятся всего, связанного с java, даже если это good parts.
Например, в rspec можно стабить и мокать методы как отдельных экземпляров, так и классов, можно переопределять константы (а классы - тоже константы). Потому что руби почти полностью динамичен и позволяет делать такие трюки в рантайме.
https://relishapp.com/rspec/rspec-mocks/v/3-4/docs Оглавление слева - читайте все пункты.
Применимость DI - это только ко-ко-ко-конфигурабельность классов-сервисов и подмена классов в тестах. Но это говно нужно только в джавке и пхп, где классы прибиты гвоздями.
Т. е. когда вы, петухи, притаскиваете DI в руби, знайте, что оправдываете полезность этого лишь исходя из привычного вам порядка вещей и из религиозных убеждений. Либо от неопытности.
В джаве нет good parts кроме богатой библиотеки компонентов и огромного legacy (ну, наличие работы тоже сорт оф good part). Сам язык - убогое говнище, сишарп и то повеселее будет. Я бы ещё понял, если бы ты упомянул scala или groovy, но джава...
Ну, все те разы, что я откликался на вакансии 4 переписка заканчивалась после того, что я сообщал о своей ньюфажности и отсутствии коммерческого опыта. При том, что имею опыт в других языках, который честно написал
Так что и правда, не нужно проецировать. Я вообще не ебу, как можно найти удалённую работу, будучи без опыта. Ну а про невозможность набежать в ДС я вообще молчу.
Все верно, так же делаю, но это не тот DI, который выносит мозг в руби.
>>749951
Энжой ё каплинг. Программирование на уровне интерфейсов никак не зависит от конкретной реализации ООП. В руби интерфейсы не завезли вот, но код все равно их подразумевает.
Непонел-начальника
Приведи примеры из жизни, где IoC тебе реально помог в рельсопроекте. Вне контекста тестов.
> я сообщал о своей ньюфажности и отсутствии коммерческого опыта.
Ты совсем ебло что ли?
а) Тебя не спрашивают про опыт. Ты молчи сука.
б) Спрашивают, но не очень настойчиво. Ты гостевуху по книжке dhh делал? Делал. Ну так спиздани, что насосал джуниором год-два.
в) До тебя реально доебываются, чем ты занимался. Или ссылки на гитхаб требуют. Ну тогда хуй знает, можешь попробовать напиздеть что-нибудь или в конце концов слиться. С гитхабом кстати смело нахуй посылай, либо у тебя квалификации не хватит, либо(скорее всего) работодатель - охуевшее мудило, которое за $20 в час хочет раба c топ-100 http://contributors.rubyonrails.org
И вообще сразу же переводи разговор со своей сукаличности(поверь, всем нормальным людям на тебя глубоко похуй, ты кто такой вообще для рандомного дядьки из интернетов?) на то, что что ты полезного можешь сделать. Задавай больше вопросов про проект куда тебя берут, быстро прикидывай возможные решения, можешь припиздеть что ты такое уже делал. Учись продавать свою жопу, сука, и подороже.
И это, не перегибай палку, когда пиздишь.
Ну вот смотри, одно из последних писем Переведу на русский сразу :
- Вы работаете сейчас? Какой у вас в данный момент уровень занятости?
- Работе в сити_нейм на полный день. Вы можете позволить себе работать полный день?
- Где вы работали ранее? Укажите список фирм Блядь, я в CV всё написал, хуле так сложно посмотреть?
- Проекты, в которых вы участвовали и ваша роль в них.
- Какие финансовые ожидания?
Ну вот как думаешь, что ответить, чтобы он не слился, как это случилось со мной?
Например, пополнение баланса пользователя. Способов оплаты может быть сколько угодно, но сам сервис пополнения не должен от них зависеть, поэтому он просто подразумевает общий интерфейс этих сервисов, которые могут быть переданы ему в конструктор. А как б бы ты это сделал без IoC? И как потом было бы с переиспользуемостью и гибкостью таких связанных конструкций?
Он хочет патчить в рантайме, лол.
IoC не нужен для решения этой проблемы. Фасад + адаптеры + стратегии, чтобы уменьшить связность. Мы не переключаем систему оплаты каждый день, так что изменение пройдёт в рамках планового апдейта.
И подобных примеров - единицы. И обычно всё касается какого-то внешнего сервиса, который может ко-ко-ко-поменяться ВНЕЗАПНО блядь.
Давай, ну покажи же мне. Какой профит ВСЁ ГОВНО ДО КУДА ДОТЯНЕМСЯ укладывать в IoC контейнер? В рельсопроектах, где вообще строгая ООП-архитектура не практикуется в целом?
>стратегии
Ничего, что стратегия реализуется с помощью IoC?
>Мы не переключаем систему оплаты каждый день, так что изменение пройдёт в рамках планового апдейта.
Никто не может этого знать в общем случае.
Я тебе привёл пример, ты начал маняврировать про ВСЁ ГОВНО ДО КУДА ДОТЯНЕМСЯ. Понятно.
Мы тут говорили, вроде, про повсеместное внедрение IoC + DI в рельсопроектах. Я спросил пример и ожидал увидеть что-то, что откроет мне глаза и подтвердит всю разумность и философию того подхода. А в ответ вижу типичное кукареканье про внезапную гибкую замену одного из центральных компонентов системы.
В рельсопроектах она не проектируется потому, что dhh и rails core team долбоебы которые плевали на заветы ооп.
Видели ActiveRecord::Supress в 5 рельсах? это как открывать окно, когда у тебя газ утекает.
а кто говорил про повсеместное? только там, где нужно.
Но ведь строгое ооп нинужно. На рельсах писать охуенно. На аналогичном джаваговне - муки адские. Почему же так? Говорю про крупные проекты.
да нахуй строгое, хотя бы минимальное. а в рельсах все вокруг эктиврекорда строится.
посмотри на крупный проект - gitlab - там в коде ебаная мешанина потому что rails way. никто не говорит про то, что нужно быть architecture astronauts, но блять, не такой же говнокод проповедовать. кэлбак на кэлбаке и method_mssing подгоняет.
Про повсеместное было написано в статье, алё. Мы здесь говорили про использование элементарного DI в сервисных объектах для упрощения жизни, а некоторые почему-то начали гореть и визжать что в руби оно нинужно, мы всё застабим, потому что можем.
ты передергиваешь.
хорошее замечание. одно дело передать зависимости в конструктор, другое дело ебаться с мокингом и стабами.
это как говорить, "да похуй, что у нас воруют, У МЕНЯ ТО НИКТО НЕ ВОРОВАЛ".
Вместо того, чтобы начать признавать свои ошибки, они блять обмазались говном, и примотали костыль синей изолентой. ну а хуле, работает же! удачного дебаггинга, блять
Ну это рельсы, и это dhh, хули ты хотел? Не нравится ActiveRecord - пользуйся альтернативами. Я уже заебался пиарить тут http://rom-rb.org/
Мой пресловутый начальник как раз его выбрал вместо рома. Попробуй.
Он вроде достаточно популярен
> начать признавать свои ошибки
Какие ошибки-то блять? Это AR, хули ты хочешь? Можешь оборачивать всё сервисными объектами, а можешь как DHH говно по своей груди сапрессом растереть и широко улыбнуться.
Хули тебе не нравится-то, пидор?
http://www.martinfowler.com/eaaCatalog/activeRecord.html
> An object carries both data and behavior. Much of this data is persistent and needs to be stored in a database. Active Record uses the most obvious approach, putting data access logic in the domain object. This way all people know how to read and write their data to and from the database.
Что хотел-то, ептабля?
Вот я другой пидор, а дхх хуйню сморозил какую-то. Зачем запиливать во фреймворк общего назначения костыль под конкретный юзкейс (ещё и основанный на плохой практике использования коллбэков) - мне тоже непонятно. Не хотел бы я в подобном потом копаться. А активрекорд как паттерн здесь вообще не причем.
Склоняюсь к ActiveModelSerializers, что думаете?
https://github.com/rails/rails/issues/18847
> You're a year late to the discussion and you didn't bring any new arguments to the party. Feel free to write your own code without callbacks, but this chef's knife is staying in the drawer.
:-1: 32 :+1: 5 :thinking_face: 5
Глядя на тенденции треда, могу предположить, что сейчас сюда набежит какой-нибудь непризнанный гуру программирования и насоветует тебе какую-нибудь малоизвестную неюзабельную хуйню. А нормальные люди сейчас используют ActiveModelSerializers, а с выходом Rails 5 их станет еще больше, ибо AMS будет включен в Core
Всегда лучше использовать стоковый функционал. Из соображений поддерживаемости и заменяемости специалистов.
Например, мне очень жаль, что в рельсах нет из коробки вменяемого фреймворка для аутентификации и авторизации.
Согласен, но мои познанания показывают, что этого фреймворка нет как правило, а если есть, то заебешься городить костыли, чтобы заточить под свои нужды.
> фреймворк общего назначения
Совсем ебанулся? Рельсы - это фреймворк, на котором DHH пишет себе бейскемп.
С каких это пор DHH стало ебать мнение плебеев или рельсы вдруг стали "общего назначения"?
> ActiveModelSerializers
Нормальные люди ебашат вьюхи на jbuilder-е, а не сериализуют себе анус какой-то малоизвестной неюзабельной хуйней.
Ахахахахха, хорош
Kernel.stub(:rand).and_return(3) и
allow(Kernel).to receive(:rand).and_return(3)
не работают
rspec 3.4
Он вызывается не как метод Kernel, а как метод текущего объекта (Kernel включен во все), соответственно, стабить нужно на вызывающем объекте.
Вообще, используй Random.rand (я до твоего сообщения даже не знал, что он в Kernel ещё есть).
>Он вызывается не как метод Kernel, а как метод текущего объекта (Kernel включен во все), соответственно, стабить нужно на вызывающем объекте.
Хотя наверное я туплю и стаб на Kernel тоже должен работать, потому что он просто включается в цепь наследования. Но тогда непонятно, почему у тебя не работает.
Спасибо.
>Он вызывается не как метод Kernel, а как метод текущего объекта (Kernel включен во все), соответственно, стабить нужно на вызывающем объекте.
Это работает так для всех методов Kernel? Где можно подробнее почитать об этом?
Я немного запутался в начале, но теперь понял, что как раз Kernel.rand - метод класса. По идее твой способ должен работать. Сейчас потестирую немного, мб найду решение
>Это работает так для всех методов Kernel? Где можно подробнее почитать об этом?
Я выше скинул скрин
на HN уже третья статья про "rails пока"
Довольно годная статья. В основном там бугурт на ActiveRecord, с чем я не совсем согласен, посколько сам пока не перешёл ни на ROM, ни на Sequel хотя бы - меня AR устраивает. Но круто то, что автор обозначил, какие именно прблемы решаются в альтернативных решениях и прорекрамировал Hanami :3
Стоит возвращаться? По фану почитывать Рельсы, за которые я так и не успел взяться? Или крики мамкиных икспертов что им скоро конец правда, и лучше уже браться за NodeJS и покорять MEAN Stack?
Прошу прочувствовать всю скорбь моей души, и дать дельного совета.
Че спросить-то хотел?
>Стоит возвращаться? По фану почитывать Рельсы, за которые я так и не успел взяться?
Работа есть. Развитие активное.
А где ES2016 и 2017, почему стандарт только до 2015 дошёл? Уже даже разработчики не спешат воскрешать этот трупешник.
Ну any? но все равно через each работает, я думал может есть что-то побыстрее.
Нет, не через each.
Я ожидал обратно результата.
http://twohlix.com/2014/11/ruby-arrayeach-vs-enumerableany/
Чтобы доказать превосходство JAVA над высранном узкоглазыми недо-ЯП. JAVA JAVA JAVA
Тебе удалось.
У меня такое чувство, что ты неправильно понял инфу по той ссылке. Вариант в any выполняется дольше, чем с each. Но это было в 2014 году, с тех пор многое могло измениться. Советую тебе заюзать те бенчмарки и посмотреть, может быть стало быстрее.
Возможно, тебе поможет trie. И прочие сорта подобного говна.
https://ru.wikipedia.org/wiki/Префиксное_дерево
Т. е. из всех подстрок твоей строки можно построить trie, а потом через него быстренько проверять, есть ли нужная подстрока или нет. Вон, у него там скорость поиска 2 млн в секунду.
Да, ты прав, у меня показало как раз наоборот.
>>754115
Попробую разобраться в этом, спасибо (в который раз).
http://www.rubyinside.com/how-to-create-a-ruby-extension-in-c-in-under-5-minutes-100.html
Интересно, насколько быстрее будет, если ты эту логику напишешь на с?
Нет ты иди в баню. Мелкобуквенный еблан. Либо ты тот единственный придурок, что постит здесь все отмороженные мелкобуквенные посты, либо теория о том, что мелкобуквенность - признак слабоумия, только что ещё раз подтвердилась.
тЫ чЕгО тАкАя ЗлЮка
Контроллеры хуяришь вручную.
JSON выгружаешь вьюхами на jbuilder-е.
Документацию пердолишь тоже вручную как хочешь, лично я со своими пацанами сру доками на http://www.mkdocs.org
Короче как нормальный пацан ебешь в рот систему и педерастов с http://jsonapi.org и подобной хуйней.
Теперь вопрос.
Как мне рендерить вьюшку чтобы пользователь, нажимая кнопку, мог генерировать форму для заполнения новых, связанных с основной моделей?
т.е. нужно вставлять шаблон в уже отрендеренную страничку по клику на кнопку. Наверное, нужно без создания новых экшенов, но хз как канонично.
Пасибк
Ну да, медленный и DSL немного фекалиями попахивает. Но блять разве есть альтернативы, чтобы по-человечески выгружать JSON с вложенными структурами и полями в зависимости от авторизации?
[code]
json.extract! @petuh, :id, :updated_at, :closed_at
if policy(Dildo).show?
json.dildos petuh.dildos, partial: 'api/v3/dildos/dildo', as: :dildo
end
[/code]
Сколько говна мне придется из себя выдавить, чтобы сделать то же самое без высера dhh?
Bump.
Что ты несёшь?
что за хуйня код?
В каких случаях нужно это говно?
Синатрапетухи вместе с рельсопетухами отправляются под шконарь, где на них ссут ханамибоги.
Нет, а зачем? Еще говно какое-нибудь получится, с дивана гораздо надежней кукарекать.
Bloomberg
Cruncbase
GitHub
Groupon
Heroku
Hulu
Imgur
Medhelp
Scribd
Shopify
Slideshare
SoundCloud
Twitch
Zendesk
Ещё?
>capybara, rack, rspec, devise, cancancan, simple_form, solr, sinatra
Описали бы для чего каждый.
> как пидор
> In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of sexual identity and orientation.
Проблемы, гомофоб?
http://rubyonrails.org/conduct/
Твитч хуй знает, саундклауд частично.
И сразу обоссан. Твиттер давно уже переписал всё на скалу, покрыв хуями раби за тормознутость и ущербный дизайн.
http://readwrite.com/2011/07/06/twitter-java-scala/
Тут если покопать, окажется, что минимум половина списка давно уже перешла на другие технологии.
Делать стартапы на "других технологиях" дорого и в целом нинужно, ведь взлетает один из тысячи.
pusher ещё, например, на руби был. У них там eventmachine и в целом всё работало стабильно и с охуенной производительностью. Но потом у них появились клиенты, "онлайн" стал миллионы. И они неторопливо переписали ядро на го, потому что вопрос экономии серверов стал действительно насущным. Алсо, выигрыш там был что-то типа 4х по пропускной способности, т. е. это не так уж и существенно, ну серьёзно блджад, лучше начинать делать проекты на нормальных фреймворках и красивым кодом, а пердолиться в сракотан и угорать по экономии байтов нужно начинать, если проект стал успешен.
Другая история - реальные нагрузочные требования от заказчика. Часто бывает в системах, связанных с бизнесом и автоматизацией. Но эту хуйню на руби никто и не делает.
Ну и у гитхаба емнип только рендеринг хтмл на рельсах остался
"Пидор" - это оскорбление, негативно оценивающее тот факт, что я ебусь в жопу. То есть называя меня пидором ты подразумеваешь не только то, что я ебусь в жопу(тогда бы ты назвал меня нейральным словом "гей"), но и то, что долбиться в сракотан - это что-то плохое.
А это уже предъява к Иэну Маккелейну и Алану Тьюрингу. Так что назвав меня пидором ты на самом деле поставил меня в один ряд с этими великими людьми, подняв мою самооценку.
Да, я еще тот пидор и горжусь этим.
>Тут если покопать, окажется, что минимум половина списка давно уже перешла на другие технологии.
Я не отрицаю, анон.
> а пердолиться в сракотан и угорать по экономии байтов нужно начинать, если проект стал успешен.
Этот в чем-то прав, кстати.
вот есть хэш
b = {:one =>1, :two => 2}
Захуй это?
Что бы означало без этих двоеточий?
b = {one =>1, two=>2}
Какие тут проблемы? one и two могут быть объектами?
Еще поясните пожалуйста, что это за хуйня в циклах с ||, смысл понимаю, но нужно четкое определение. Спасибо, хули.
>пердолиться в сракотан и угорать по экономии байтов нужно начинать, если проект стал успешен.
Или если ты нищееб, который хочет сэкономить на серверах.
не увиливай, пидор.
Во втором случае получится хеш с ключами из значений этих переменных.
2.3.1 :001 > hui = :pizda; { hui => :pizda }
=> {:pizda=>:pizda}
Про || не понял.
> Еще поясните пожалуйста, что это за хуйня в циклах с ||, смысл понимаю, но нужно четкое определение. Спасибо, хули.
пример скинь? и вообще циклы в руби редко используются, вот итераторы - да, повсеместно.
ну да, в итераторах
1.upto(9) {|x| print x}
я так понимаю, |x| - переменная поступающая в блок снаружи? Как это все называется
не понял, что ты написал, но все понял, что ты мне рассказал, т.е. когда пишем :asdf, это означает, что asdf это не переменная, определенная где-то выше, а символьный ключ, так?
Скачай книгу по руби уже...
>Оп, поясни по-хардкору за Chef, Puppet. Что за штуки такие и для чего?
ОП в треде. Chef, Puppet - системы управления конфигурациями серверов. Для небольших проектов тебе хватит Capistrano, но когда серверов тысячи (или хотя бы больше нескольки), Capistrano соснёт, и ты вместе с ним. Из аналогичных проектов моогу назвать ещё Ansible и Salt, обе на питоне. Про Ansible ничего сказать не могу, а вот Salt позиционируется как убийца всех систем конфигураций, потому что он дохрена декларативный и распределённый. Тем не менее, на практике рулят Chef и Puppet. У меня друг работает в Badoo, у них тысячи серверов, вовсю используется Puppet.
А вообще, советую взглянуть на Docker. Его сложновато освоить (сложнее Capistrano), но оно того стоит. Я вот приложение заказчика перевожу на него. Это совсем другой инструмент, используется зачастую вместе с названными, но может выполнять многие из задач того же Capistrano намного эффективней.
Посоны говорят ансибл норм, про salt даже не слышал. Олсо докер с дивана кажется лишним геморроем, вместе с вагрантом.
Но ведь Docker не относится к сonfiguration management tools, как Chef и Puppet.
Docker и Vargant – это инструменты виртуализации, насколько я знаю.
vargant – поднимает полноценную виртуалку (обычно путем virtualbox) c дев-окружением. Есть синхронизация директории на диске и директории в виртуалке. Можно в винде поднять виртуалку с линуксом.
docker – контейнерная виртуализация. Все контейнеры используют одно и то же ядро (хостовой системы). Сможешь в линуксе поднять 10-20 виртуалок с линуксом, при этом будет потребляться меньше ресурсов.
http://bundler.io/
в продакшене вызывает лаги, так что приходится без него. хотя штука прикольная
Слейте плз.
http://mobiruby.org/
Rhodes
http://rhomobile.com/
RubyMotion
http://rubymotion.com/
Ruboto
http://ruboto.org/
>Но ведь Docker не относится к сonfiguration management tools, как Chef и Puppet.
Я же написал
>Это совсем другой инструмент, используется зачастую вместе с названными, но может выполнять многие из задач того же Capistrano намного эффективней.
В задачи докера в определённой степени входит управление конфигурацией (читай, средой выполнения). Имеется ввиду состояние системы, в котором она должна находится для запуска приложения. И с докером это намного проще, чем с капистрано, поэтому я и перехожу на него.
Что "ты написал"?
Ничего в задачи докера не входит. И ничего не проще. Что ты несёшь вообще? Капистрано зачем-то приплёл ещё.
Извини, что заставил ждать.
Держи:
http://cloud.mail.ru/public/MZRP/aNeXpER9J/
Пароль к архиву www.cogamesmoney.ru
Ахаха, да лан, оставь себе. Я пошутил же.
Вводное задание
Занятие 01. Основы Ruby. Часть 1
Занятие 02. Основы Ruby. Часть 2
Занятие 03. Основы ООП в Ruby
Занятие 04. Интерфейсы, наследование и полиморфизм
Занятие 05. Методы класса, Модули и объектная модель Ruby
Занятие 06. Исключения
Занятие 07. Блоки, Proc и lambda
Занятие 08. Идиомы в Ruby и хороший стиль
Занятие 09. Метапрограммирование
Занятие 10. Введение в веб-разработку на RoR
Занятие 11. mvc и rest
Занятие 12. Связи и ассоциации
Занятие 13. Виды
Занятие 14. Ветки в git и pull requests
Занятие 15. Расширенные возможности ActiveRecord
Занятие 16. Контроллеры и нестандартные формы
Занятие 17. Аутентификация пользователей
Занятие 18. Локализация и внешний вид приложения
Занятие 19. Последние штрихи и деплой
Занятие 20. Основы javascript и jQuery
Занятие 21. Javascript в Rails-приложении
И всё - редкостное говно, на котором любая херня сложнее хеллоуворлда будет тормозить.
А что в зип архиве?
rhodes не тормозит, но там апи неполное и собирать в облаке теперь нельзя, прикрыли лавочку.
okk
Я несколько лет назад купил ебучий рубимоушен за 8 тысяч, а теперь они поменяли лицензию и говорят хуй тебе давай плати еще по 200 баксов в год. Я ебал просто.
Лох.
не важно, главное 4 рельса, спасибо анон.
Потому что можем.
Мы элита.
Думаю перекатываться в back-end разработку и пока не могу определиться, что выбрать Ruby(Rails) или Python(Django)?
А может нырнуть с головой в nodejs?
Вообщем, подскажите куда податься? Где больше вакансий и возможностей устроиться джуном?
похапе не предлагать
Вполне жив, не знаю как в замкадье, в ДС и ДС2 работы достаточно. Хотя я бы на твоём месте катился к хуям в сторону ноды, но если больше нравится руби, то это тоже нормальный выбор.
аксиома эскобара.жпг
node > rails > django
это про популярность, но с первым легче работу найти, потому что ты можешь претендовать на фронтенд зная жс, а там работы дохуя и порог вхождения низкий довольно
Для говнопрототипирования рельсы все ещё топчек, джанго не так популярен, хотя сам питон в пару раз популярнее руби.
Попробуй PHP.
Руби - мало кода, локаничный, много магии.
Питон - много кода, топорный, практически нет магии.
Мы так один проект завалили нахуй. Потому что в работу пришёл чужой говнокод на ноде, который, видимо, благодаря волшебству только и работал. Лапша коллбэков ВПЕРЕМЕШКУ с НЕСКОЛЬКИМИ пулами промисов это волшебно...
поискал сайты на ноде на гитхабе - ебаный пиздец
как они вообще туда новый функционал добавляют, не ломая старый
Или не добавляют, или ломают. Такие дела, так вот живём...
Смотрел когда-то этот ваш Ruby (без рельсов), писал скрипты для RPG Maker и сетевых ботов, общее впечатление что это диалект Бейсика.
гугли symbol
Это секретарь backend программиста
Нужна помощь. Написал бота для помощи на экзамене, но совершенно не знаю, где его можно запустить, пока я буду находиться не за ноутбуком.
Какие есть идеи о "деплое" такого вот бота(куска кода) с соответствующим гемом?
heroku, digital ocean
НЕ ВСЕ СРАЗУ
Нехватка рубипидоров на рынке, расхватывают как горячие блинчики. Работаем на двух-трёх работах, времени на бордосрачики совсем не остаётся. Оживёт тредик в выходные.
>Нехватка рубипидоров на рынке
>расхватывают как горячие блинчики
>Работаем на двух-трёх работах
П - Правдоруб.
Заюзал Ruby on Rails в продакшене: http://lavironsoftware.blogspot.ru/2016/03/ruby-on-rails-success-story.html . Такой-то успех!
Почитав статью я понял что он до сих пор на каком-то диалапе сидит и он решил писать на РоР в пхпшторме. Занавес.
пиздец как ты читаешь
root@desktop# rm -r *
root@desktop# gem uninstall rails
Successfully uninstalled rails-4.2.5.2
root@desktop# apt-get remove ruby && apt-get install php5
этот долбаёб мало того что из под рута сидит , так ещё и поставит пхп5, зашквар.
Есть две модели: products и orders.
Заказ может состоять из множества продуктов. Очевидные «has_many» отношения. Если оформить связь, то все будет работать, но products состоит из множества полей, которые будут дублироваться, что не кошерно. Короче говоря, надо оформить has_many связь, чтобы ids product содержались в каком-то поле для orders. И при этом была связь типа has many. Рельса вообще так умеет? Или нужн костыль сделать.
Заказ не из продуктов состоит, а из OrderItem'ов, привязанных к продуктам. Если где-то есть поле ids, значит дизайн хуёвый и рано или поздно придётся всё равно переходить на нормальную связь M:M через кросс-таблицу.
>>760581
Хуже того, дублирование в order_items даже нужно, т.к. товары имеют свойство меняться со временем, а заказы должны показывать историю.
http://guides.rubygems.org/what-is-a-gem/
> Platforms are based on the CPU architecture,
Я думал, что подобное верно только для компилируемых языков, потому что там генерируются ассемблерные команды. А руби же интерпретируемый, почему выполнение кода на руби зависит от архитектуры?
Гем может содержать нативные расширения. Алсо, он может вызывать внешние команды или использовать некие внешние пути, которые от POSIX-платформы к Windows-платформе могут различаться.
> Гем может содержать нативные расширения.
Прикольно, не знал про такое. Сейчас читаю
https://en.wikibooks.org/wiki/Ruby_Programming/C_Extensions
Спасибо.
а можно на лишпе? ну маааам
Выдавите этого анального клоуна нахуй. Заранее спасибо.
Если ты задаешь такие вопросы, то скорее всего не можешь...
На SO слишком неконкретно написано
http://stackoverflow.com/questions/941594/understanding-the-rails-authenticity-token
А да, запрос, если че
localhost:3000/articles/2/comments/1
В браузере это делается нажатием на ссылку
<a data-confirm="Are you sure?" rel="nofollow" data-method="delete" href="/articles/2/comments/1">Delete</a>
Лучше tinymce пока ещё ничего не придумали. Есть море хипстерских редакторов типа MediumEditor, но это уже по обстоятельствам, у них обычно упор на "простоту", которая выражается в отсутствии важных фич.
А, ещё вспомнил из последнего: redactor очень неплох был.
Если бы ты использовал рельсовые хелперы, то нужный параметр добавлялся бы автоматически.
Ну в коде я их использую и он добавляется. Я хотел через postman отправить запрос, чтобы потестить одну вещь.
Пушка, натвитор.
Его стоило влить в апстрим только ради того, чтобы наслаждаться атомными бубарехами кукаретиков от ООП.
>>762857
>ActiveRecord вместо ORM - очевидно, что рельсодауненок не осиливает божественную ORM
Сам понял, что сказал?
>Нет генератора миграций
Вообще-то он есть.
>извольте проебать две недели рабочего времени на очередную велоадминку
http://activeadmin.info/
>Изкоробочные вещи (авторизация/аутентификация), нужные на каждом проекте
Расскажите этому парню кто-нибудь про архитектуру в виде микросервисов (и почему не нужно пихать эту парашу по-умолчанию в каждый микросервис).
Твой удел - делать "сайты" на php
В любом случае, спасибо, что зашёл!
Покрываю код интеграционными тестами. Будут использоваться rspec+factory+capybara.
С технической стороны все понятно, но какие best practices по архитектуре тестов? Ну т.е. объясни анон, как нынче модно группировать такие тесты.
ЯТП нужно по ролям пользователя, а внутри субдиректорий, бахать по одному файлу на сценарий.
пы.сы. прочие виды тястирования (функционал, юнитное) оставим за бортом. Интересует именно структура интеграционного говно-кодинг-тестирования.
Хуй знает, это даже не объяснишь словами. Тут либо книги читать (хз какие), либо с опытом само придёт.
Просто закомментируй его нахуй в АпликейшнКонтроллере. Я так понял, других простых решений нет.
Прост пусть здесь полежит.
Что дальше делать планируешь?
Kndeed.com
>Как и где искать работу?
Вот в этих фирмочках RoR используют:
https://evilmartians.com/
http://uniweb.ru/vacancies
Как бы да.
Хуясты
мимо-прыщеблядь
> capybara
Не рекомендую это дерьмо, братишка. Юнит-тесты писать легко и приятно, а на это говнище дохуя времени уходит(во всех смыслах, писать долго и автотесты запускать тоже пиздос долго), и потом еще хуй проссышь, из-за чего тесты крашатся.
Гораздо проще девочку-тестершу с селениумом за $500 в месяц нанять, день на настройку виртуалки и говноскрипты, а потом один профит.
TDD/BDD — ещё один анальный способ выслужиться перед рабовладельцем.
Ничем не лучше нормальных юнит/интергрейшен тестов, только название громкое.
Я это, чего пришел. Давайте что-ли поделимся лучшими практиками. Я сейчас немного под впечатлением от нового проекта и еще понял, что слишком отстал, такое ощущение, что мир уже довольно давно живет по новым стандартам, а мужики-то и не знают.
Как вы там репозитории свои строите? Как деплоитесь? Как отказоустойчивость обеспечиваете? Как логи ведете? Как бекапы делаете? Отделяете бек от фронта? Припекает ли от микросервисов?
Я помню раньше все настраивали на своих машинах - базу там (хорошо если майскуэль), рвм-ы, гемсеты, имеджмеджики всякие. Не то что верстальщик, девелопер порой приходил и полдня пытался запустить проект. Вместе с каждым проектом шел почти одинаковый капистрано-конфиг, который настраивал вместе с проектом в гите один матерый программист, никто не знал, что там, оно просто работало. Добавление в него всяких хуков вызывало копротивление. Про то как там настроены стейджинг и продакшен тоже никто не знал - воспринималось как данность. Кто-то что-то слышал про вагрант, но на практике особо не юзали. Так это было.
>девочку-тестершу с селениумом
Вау, бывают такие девочки? Почему мне в жизни никогда не попадались? Я бы женился.
Как делали, так и делаем. Одна впска под проект. Дебиан. Скрипт для установки стандартного необходимого говна. Деплой через капистрано.
Проекты новые не каждый день, всё устраивает. Проекты обычные, никакой ёбли не надо, им даже выделенный сервак не нужен обычно, впски хватает, какая уж тут кластеризация и масштабирование...
Докер знаем, можно и через докер деплоить, но и без него норм. Дробление на десять контейнеров не имеет смысла, когда у нас выделенная впска под проект.
Ёба-проектов с миллионной посещаемостью, приватными облаками и десятком инженеров вокруг шефа\ансибла у нас нету, к сожалению. Как будет, так обязательно поиграемся.
Необучаемый.
Да, анон, вот именно так все и происходит как ты описал - ХВАТАЕТ, и все это новомодное не нужно. Но в определенный момент, кажется, начинает работать синергетический эффект от новых технологий и они оказываются лучше даже для старых задач.
Я вот описал, что мол по полдня проект можно поднимать. А просто я внезапно открыл для себя элементарную штуку - докер-компоуз. Теперь в проект кладется один файлик docker-compose.yml, где описаны все компоненты - база, редисы, эластики, логстеши, и любой участник поднимает все окружение в один клик, даже на винде.
Есть вагрант для таких целей, но этот вариант пизже. Когда все компоненты описаны докер-файлами, на сервере можно больше ничего вообще не настраивать, а брать и тупо запускать эти контейнеры.
Дальше больше, лол. Делать это удобнее всяким ансиблами. А там описаны все таски и стенды - стейдж, продакшен. Все разработчики явно видят, как устроена система целиком - от топологии до нюансов настройки репликации. Дев от продакшена при таком подходе почти ни чем не отличается.
Дальше еще больше. Система становится контекстно-независимой. И появляется желание вместо впс-ок, засунуть ее в какой-нибудь мезос-кластер (а там все тоже красиво выглядит - деплой сводится к тому, что нужно отправить json-таск с указанием запустить контейнеры и выделить им ресурсы, система сам рашит на каких машинах ее запустить и перезапустит в случае креша или выхода ноды из строя).
Каждый следующий этам конечно требует некоторых телодвижений и модификации, но проект становится все более целостным.
Я не работал с ними, но есть мнение, что Ансибл пизже. Еще там анон вверху писал про какой-то Salt, вот про него не слышал, может что-то крутое. А вот за папет и чеф слышал что они < ансибла.
По крайней мере знаю что ансибл лучше капистрано. И не понимаю, нахуя капистрано сделали стандартом де-факто в рейлс-мире.
Хотел послать гуглить, загуглил сам и прочел статью в вики, узнал что значит это слово, лол.
Ansible
Ну вообще, да. Их все-таки нужно осваивать. Не думаю, что это стоит делать просто так, без нужды. Просто считаю, что эти вещи гораздо лучше подходят в качестве стандарта, даже для сайтов визиток. Что капистрано, что ансибл нужно просто один раз настроить. Но ансибл гораздо более гибкий.
>Их все-таки нужно осваивать.
Ну если работодатель оплачивает это, то можно и освоить что-то одно из.
ну типа да, можно не шныряться по рсс подпискам на блоги, все новости в одном месте и в переваренном виде.
если у тебя не стопицот серверов то смысла заводить все это девопсовое говнецо не вижу
На русском не советую, непротухшее редко бывает. Советую читать на английском через силу, спустя какое-то время будет намного легче понимать.
>>763413
Ищи на архиваче по словам ruby thread
>>764133
Не согласен. В моей проекте, например, важна консистентность данных в БД, тут без юнит тестов никуда. А благодаря тому, что бизнес-логика из контроллеров убрана, их очень сложно сломать, так что интеграционные тесты не особо нужны (мне).
>>764145
>Помню год назад заходил сюда про докер спросить - либо мычали, либо говном кидались.
Сейчас можно что-то нормально обсудить, только приходится вылавливать сообщения в куче шитпостинга.
>>764150
>девочку-тестершу с селениумом
>Вау, бывают такие девочки?
Тестировщики почти все девочки
>>764164
>Да, анон, вот именно так все и происходит как ты описал - ХВАТАЕТ, и все это новомодное не нужно. Но в определенный момент, кажется, начинает работать синергетический эффект от новых технологий и они оказываются лучше даже для старых задач.
Важно не проебывать такие моменты, чтобы быть в курсе актуальных технологий.
SaltStack так правильнее. Название продукта.
>А благодаря тому, что бизнес-логика из контроллеров убрана, их очень сложно сломать, так что интеграционные тесты не особо нужны (мне).
Но ведь почти все высокоуровневые тесты поведения как раз таки являются интеграционными по сути... При чём тут контроллеры, блядь?
Чому это? Это интеграционные тесты для бедных же. Я вот один раз покрыл полностью небольшой проектик капибарой. Больше не хочется. Чуть что изменилось - переписывай.
А вот важные контроллеры тестирую. Например, что итоговый json со статистикой правильно посчитан, если он считается в контроллере. Ну и так иногда из-за какой-нибудь глупой ошибки где-то появится 500 или 404. Если контроллеры покрыты, это быстро поймается.
Не обращай внимания, это местный BHH-дебил. Он тебе не только работу девочек-тестерш на себя взять предложит, но еще и огурец в жопу вставить и ходить так по офису жопой вверх. Шоб хозяева видели, что раб покладистый.
Нужно в проекте сделать апишку, в общем-то не особо большую и сложную, но тем не менее нормальную, по правилам, с прицелом на будущее.
Собственно как лучше? Знаю что есть active model serializers, а еще есть гем json-api. Второй хорош тем, что полностью соответствует стандартам и не нужно придумывать велосипеды в плане форматов и соглашений. Но слишком высокоуровневый, resource-ориентированный. А первый наоборот низкоуровневый.
Короче посоветуйте, как лучше делать, что использовать, каких стандартов/форматов придерживаться.
Сажи говнофорсеру говносериализаторов.
>json-api-resources
Вот да, я про них и говорю. А не слишком ли они, что называется, овер-инжинеред? От кого-то слышал, что с этим гемом есть какая-то мозгоебля.
Уже больше года как вкатился в кодинг, ебашу фуллстек макакой (бек руби-рельсы очевидно, раз в этот тред пишу), поучаствовал в нескольких проектов разных размеров.
Есть подозрение что я уже перерос свое текущее место работы, и могу получать намного больше денег, но т.к. в моем мухосранске вакансии на рубях появляются раз в год, то сходить на собеседование и проверить это предположение нет возможности. Реквестирую какие-нибудь годные онлайн тесты или другие варианты проверить уровень своих скиллзов, может я уже годен для фриланса/удаленной работы.
Если ты еще спрашиваешь - значит не готов.
около 40к, работал в основном над SPA, ну и над парочкой обычных маленьких сайтов.
И на чем были СПА?
пиздец мало
Я в 2011 на 3 курсе с 0 опыта пошел фрилансить на апворке, в офисе так никогда и не работал.
они не оверинженерд, они недоделаные вроде, т.е. например эмбер к ним не прикрутишь.
в ams как-раз есть JSON-API реализация, их же включили в пятые рельсы. а тот второй гем вроде через жопу сделан.
Потому что там виртуальный ДОМ?
Можно, только если без: "Ребяты, срочно помогите. Не могу посчитать согласные в предложении. Посоветуйте гем для этого".
Могу, но вечерком. Часов в 8 заходи.
Блядь, блядь, блядь.
в чем проблемы? ставишь постргыз, потом rbenv, в нем ставишь руби, потом бандлер, потом рельсы.
алсо половина проблем из-за того что нужных пакетов не ставят, обычно хватает следующую строчку ввести чтобы без проблем все поставить
>sudo apt-get install git-core curl zlib1g-dev build-essential libssl-dev libreadline-dev libyaml-dev libsqlite3-dev sqlite3 libxml2-dev libxslt1-dev libcurl4-openssl-dev python-software-properties libffi-dev nodejs
похоже ты постгрыз криво установил, гем после правильной установки бд устанавливается.
ruby, ror, ostgresql неудачный вариант для новичка. Язык сложный, возможностей мало, работы тоже мало, а на каждую вакансию десяток макак. Сейчас каждый школьник учит ruby, ror, ostgresql, а потом не знает что делать с ней. Лучше попробуй Haskell. На нём и конкуренция пониже, и зарплаты больше, и сам язык понятней. Если никогда не занимался программированием, то начинать лучше всего с Haskell. Работы полно, платят отлично. По книгам. Если есть хоть немного знаний программирования, читай это: 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 Хороший учебник, всё расписано подробно. Сам по нему учился. Рекомендую.
Не все безработные, просто у тех кто работает нет ни времени, ни желания сидеть в бессмысленных социоблядских конфах или разруливать элементарные проблемы в треде. Что значит "поддерживать профессиональные контакты"? "Привет конфа, я прошел railstutor, дайте парочку профессиональных контактов"?
мб удалишь к хуя пакеты и поставишь из репок убунты
sudo apt-get install postgresql postgresql-contrib libpq-dev
потом создаешь пользователя как в мануале
sudo -u postgres createuser -s pidarok228
Эмм, может быть я плохо читал. Я короче работал с ним уже, подключал как гем в 4-х рельсах. И все что он дает это классный инструмент для сериализации объектов - определение атрибутов, методов, короче инкапсуляции логики отображения объекта в json. Но там нет ничего про формат и соглашения. Например, как должен выглядеть json, как должны выглядеть ошибки, форматы ответов при ошибках/успехе и т.п. Все это как решишь, так и будет. А между тем для json-апишек уже есть спецификация http://jsonapi.org/, где все это продумано и регламентировано. Если все ее соблюдают, то клиент-серверное взаимодействие становится универсальным один из секретов успеха рельс - соглашения. Хорошая практика в общем. Но реализовывать спецификацию самостоятельно геморно. Вот гем jsonapi-resources ее реализует. Но он там, насколько я понял, гемор с его высокоуровневостью (типа как формтастик - лепить стандартные формы заебись, но шаг влево-право и нагородишь больше, чем если бы писал все на чистом html).
>>766754
В робототехнике, искуственном интеллекте, космической промышленности, робуст скелейбл веб приложениях и секс-игрушках. В дата саенсе, само собой, и машинном обучении. У многих Fortune 500 компаний бизнес логика написана на Haskell, ровно как и боевые дроны-беспилотники, которые недавно уладили конфликт в Сирии. Благодаря полиморфным контейнерным типам подобный Haskell-дрон может не только уничтожать террористов, но и оказывать секс-услуги в мирное время. Повсеместно Haskell используется в медицине, где программируемые нанодроиды следят за состоянием пациента и при необходимости впрыскивают ему наркотики. Иммутабельность данных и ленивые вычисления позволяют впрыскивать именно те наркотики, которые нужно, еще до того момента, как это стало необходимо.
Лучше спроси, где Haskell не применяется. Бухгалтерию на нем не ведут и гостевух не делают. А ruby сейчас каждый школьник учит, а потом не знает что с ним делать.
Блядь, это СУБД, полудурок.
В том и дело, что нет. username@usernamepc:~$ sudo -u postgres psql
psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
А тебя случайно компьютер не страдал от выключения света или чего-то такого?
Локфайл сокета мог остаться в /var/tmp (в современных системах в оперативке только /tmp) и при загрузке скрипт запуска может думать что постгрес уже стартанул и ничего в итоге не запускать.
Удали "/tmp/.s.PGSQL.5432" и попробуй перезапустить постгрес.
Можно ещё проверить запущен ли процес постгреса:
$ ps -e -o cmd | grep postgresql
/usr/lib/postgresql/9.4/bin/postgres -D /var/lib/postgresql/9.4/main -c config_file=/etc/postgresql/9.4/main/postgresql.conf
Забей.
Вопрос закрыт. Помогли братишки с официального канала irc. Ломаного инглиша хватило...
Ну а что за проблема-то у тебя была?
У тебя psql не пускал вообще, странный ты какой-то пиздюк блядь
С ебаными зависимостями была проблема. не пиздюк
Как-то так надо было ставить: apt-get install postgresql postgresql-contrib postgresql-common postgresql-9.5 libpq5 libpq-dev postgresql-client-9.5
Most of those are dependencies of others. You shouldn't need to specify libpq5 or postgresql-common or postgresql-client.
Неее, он как раз таки лучший инструмент из реляционных СУБД, что сейчас есть. Но какая-то ебля с новыми версиями. Кластеры-хуястеры, сокеты-хуекеты, ещё что-то там, блядь, зависимости. Но сам инструмент мощный и простой в то же время.
Ну а мускуль это говно для говноедов вообще.
Ну да, как бы постгрес зашибенный проект, но тот же psql работает хуй пойми как, какие-то роли непонятные.
В том же мускуле есть утилита mysql, нажимаешь энтер и получаешь консольку и оттуда уже можно соединяться с любой базой без каких либо ролей. Чужими для хищников сделано.
Да, без него гем pg не компилируется
Ой роли, мам сложна( Че ты как не программист?
Ты вендоблядок что-ли? Хули у тебя там везде акцент на то, как работать в шиндовс.
Не знаю как тут у вас, если что не насовывайте хуев
Есть работа, горит дедлайн и я горю пиздец
Сделал в дешборде админки страницу чтобы добавлять в базу заинвайченных юзеров
Надо как-то добавить метод мейлера на экшен по сохранению этой формы в activeadmin а я не ебу как.
Думал еще создать кастомную вьюху для эктивадмина с формой и таблицей, но так и не раздуплился с синтаксисом, потому что для глориус пехопе разработчика ето пиздец.
Превентивно спс за помощь гайс
Это копия, сохраненная 30 июня 2016 года.
Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее
Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.