Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
88 Кб, 959x833
3862 Кб, 3596x1648
Ruby Thread Ruby Thread #964778 В конец треда | Веб
Предыдущий: https://arhivach.org/thread/251176/

Принимаются изменения в шапку треда в виде пулл-реквестов:
https://github.com/meoweg/2ch-pr-ruby

Как показывать код:
Быстро - https://pastebin.com
С исполнением - https://ideone.com
Требуется аккаунт GitHub - https://gist.github.com

Конференция
https://2chpr.slack.com/messages/ruby/
Получить приглашение: https://invite-me-to-2chpr.herokuapp.com/

FAQ:

1. C чего мне начать, чтобы стать рубистом?
Отличным началом будет Programming Ruby (The Pragmatic Programmers Guide), читать Eloquent Ruby и The Well Grounded Rubyist после прочтения первой толку особо не даст, одни и теже вещи, дальше читаем Ruby Way, затем познаем метапрограммирование с Metaprogramming Ruby. А дальше открываем Ruby cookbook 2015 года, Пишем свой код во время чтения.

Следующий уровень, продвинутые книги по руби:
Confident Ruby by Avdi 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. Есть ли у руби русское коммьюнити?
Нет. Вернее есть, но оно протухло и там полно людей у которых чсв высоко.
Яркий пример - rub|mGyANUSconference.jabberW$,PUNCTUMr)'Fu
А еще есть русская слак конфа - 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.
319 Кб, 2556x680
#2 #964886
Взял гем double_entry для работы с внутрисайтовыми платежами, теперь появилась необходимость построить график цены отдельного товара. Думаю сделать отдельную таблицу со средней ценой за день, которую будет считать крон скрипт (гем whenever) на основе данных из таблицы созданной гемом (пикрелейтед). Я все правильно делаю ?
965240968527968549
#3 #965240
>>964886
Я бы не стал доверять непроверенным гемам.
965588
#4 #965262
Сап, анон. Я тут рельсы последние пол года задрачивал, хочу уже собеседования проходить. Расскажи, задают ли ебучие логические задачки на собеседования из разряда ПОЧЕМУ ЛЮКИ КРУГЛЫЕ, или эта хуйня уже в прошлом? Стоит ли задрочить с десяток таких задач, или на теории Руби/Рельс сконцентрироваться? Вообще че джуниору из мухосрани посоветуете?
965862
#5 #965588
>>965240
Envato все-таки не ноунейм контора
965845
#6 #965845
>>965588
Впервые слышу. Чот тухлый у вас тред, рубаны.
#7 #965862
>>965262

>Вообще че джуниору из мухосрани посоветуете?


Переезжать в ДС или учить 1С-битрикс.
966747
#8 #966455
Блять, анон, я нихуя не понимаю этих ваших регулярок.
Делаю коанс.

def test_period_is_a_shortcut_for_any_non_newline_character
assert_equal "abc", "abc\n123"[/a.+/]
end

Это типа правильно, но это же нихуя не правильно.
Потому что онлайн проверщик регулярок говорит мне что должна соответствовать вся строка. Точка это b, + все остальное. Но руби упорно мне продолжает говорить что я хуй и правильно abc. Халп.
966668966930
#9 #966668
>>966455
Регулярки бывают разных "стандартов".
В perl-регулярках точка к символу новой строки вроде как не относится.
Может сюда копнёшь.
#10 #966747
>>965862
Удаленка для джуна фантастика?
#12 #966926
Привет всем, работаю на руби два года, не прочитал до конца нет одной книги. Коллеги постоянно добываются, что я апдейт не делаю, а делать промывание атрибутов модели и сейв. Добываются что я не так формы пишу и тд. Вроде не тупой. В команде все кидают понты. Подскажите книжек, чтобы прочитать и пить смузи как все эти хипстеры. Я по правде никогда веб прогером не был и попал сюда случайно.
1013635
#13 #966930
>>966455
Используй /m
#14 #966954
>>966892
чтобы защитить модель юзера, можешь использовать стрикт парамс.
#15 #966958
>>966892
Алсо, твоя проблема в том, что тебе надо найти автоматом имейл и поставить айди? Либо модифицировать параметры , либо сделать имейл собственно ключом. Не думал об этом, лол?
967045
#16 #967045
>>966958
Спасибо, анон. Лол, я даже забыл, что эмейлы уникальны для юзеров и их можно использовать вместо айдишника для джоин модели.

Я пошел отсыпаться. Мир.
967065
#17 #967065
>>967045
Только тебе все равно так или иначе придется фильтровать входные параметры, потому что если ты просто сделаешь апдейт из параметров формы, я боюсь у тебя образуется либо связи на юзера с несуществующим мылом или , еще хуже, новый юзер с новым имейл, в зависимости как напишешь. Остерегайся, кек
#18 #967320
Почему все используют рубокоп, который превращает мой няшный руби в петон и с каждой новой версией (которые еще постоянно обновляют) энфорсит все новую и новую хуйню? Сколько можно уже? Кодофашизм какой-то.
То есть каждый месяц прилетают какие то охуительные истории от чувака, который указывает нашей команде, как писать простейшие вещи типа %r() vs //, && vs and и приходится подчиняться все новым и новым маразматическим правилам. И все это хавают
#19 #967321
>>967320
Потому что питон - это стандарт в современной разработке
#20 #967324
>>967320
Защита от похапэ-быдла, очевидно же.
И это правильно. Похапэ-быдло — не люди.
967384
#21 #967384
>>967324
вы таки уверены, что нельзя считать быдлом тех, кому каждый день могут указать, что вот такие скобочки в их коде теперь неправославные, причем на прошлой неделе, предположим, неправославными были одни, а теперь другие? Между прочим всякий %w синтаксис при использовании strict параметров выглядит уебищно. К сожалению, опять же, команда это хавает и следует этим копам, переписывая старый код под новые копы.
967391
#22 #967388
>>967320
Потому что всех уже тошнит от руби-выебонов со 100500 способов написать одну и ту же хуйню и хочется порядка и единообразия. Это сначала весело, когда ты у мамы художник и артист, а потом заебывает. Чем крупнее проект и чем больше людей над ним работает - тем больше заебывает.
967399967401
#23 #967391
>>967384
Так пиздуй к ним на гитхаб и открывай обсуждения - мол, заебали скобочки менять и вообще ваши копы говно, если такой умный. Либо меняй конфигурацию копов локально для своей команды и клади хуй на то что там в апстриме происходит - если у вас уже большая и констистентная кодобаза, то скобочки менять мало мысла.
967399967401
#24 #967399
>>967388
>>967391
слюшай. если тебя выворачивает от
if !blah.nil?

то это повод задуматься над бытием.
969404
#25 #967401
>>967388
с одной стороны да, хуй с ним, конечно. Бесит не суть рубокопа а то, что один мужик определяет как мне писать и как мне переписывать уже написанное.

>>967391
Я тут права голоса не имею, зато каждый апдейт рубокопа (обновление последней версии которого еще и в gitlab-ci прописано ) за всю кодовую базу садится сеньор и начинает заменять одни скобочки на другие.
Сраться на гитхабе - есть ли смысл? я особо на гитхабе не зависаю, попал в руби кодинг почти случайно, просто бесит вот эта хуйня. Ну зафиксировали бы версию и все - нет, над душой стоит удаленный вахтер.
1013638
#26 #967429
Здрасте, а можно тут у вас посидеть?
ASP.NET - адепт
#27 #967445
>>967320

пишешь свой проект - пиши как хочешь.
контрибьютишь в опен-сорс - смотри как автор пишет.
на работе - настроенный под вашу команду рубокоп.

'охуительные истории' от чуваков нужны для новичков, чтобы те дичь не городили.
#29 #967976
>>967826

> В отклике, пожалуйста, подтвердите готовность пройти техническое тестовое задание



Спасибо, нет.
#30 #967999
>>967826
БЛЯЯЯДЬ И ТУТ ХИПСТОРЫ ДОКОЛЕ БЛЯДЬ СМУЗИ БОРОДЫ МАКБУК Я ПРОСТОЙ ПАРЕНЬ ИЗ СЕЛА ДА Я ТОЖЕ ЗНАЮ РУБИ И ЧТО Я НЕДОСТОИН ПУФИКА АААА БЛЯДЬ СРАНЫЕ ХИПСТОРЫ
44 Кб, 498x230
#31 #968315
Посоны, можете подсказать по статик-хостингу?

В общем нужно микро-сайт на джекилле где-то захостить, хотелось изящного решения. Дело в том, что раньше у битбакета была такая штука как aerobatic.io, это был полный аналог github pages только еще и с поддержкой плагинов и с приватными репами. Такая няшота.
А сейчас они отделились и отобрали кастомные домены для бесплатных аккаунтов.
Хочу что-нибудь дешевое придумать, чтобы и приватная репа была, и кастомный домен и деплой из CI-ки.
Что там сейчас есть, гитлаб пейдж, хероку (но спит в бездействии), амазон (?), диджитал ошен?
968325
#32 #968325
>>968315
Гитлаб пейджс есть с жекилом. Есть битбакет пейджс, но там хз. Не занимайся халявной ерундой и захости по человечески.
#33 #968527
>>964886
А мне ответит кто-то ?
968541
#34 #968541
>>968527
Утро вечера мудренее.
974131
#35 #968549
>>964886

>double_entry


Чет я не догоняю при чем тут гем бухгалтерской записи и график средней цены товара?

Кстати, расскажи про гем, зечем его понадобилось использовать, в чем профиты этой системы. Всегда было интересно про двойную запись, но никогда не встречал на практике.
969667
#36 #969177
Поясните, а почему нельзя кодить на руби сидя в окошках?
969248969254
#37 #969248
>>969177
Можно, используй BashOnWindows -
https://msdn.microsoft.com/en-us/commandline/wsl/about
#38 #969254
969314
#39 #969314
>>969254
Даже cock.li не хочет регистрировать, не говоря уже о временной почте. Да и оно платное, наверное?

мимо
969318969336
#40 #969318
>>969314
Это просто облачная иде с обрезком линукс-машины. В бесплатной версии после 24 часов простоя выключается.
Проще запустить свою машину в виртуалочке или купить дешевый впс, если не хочешь перекатываться на мак/линукс.
969359
#41 #969336
>>969314

вот обзор ( https://habrahabr.ru/company/mr_gefest/blog/247147/ ) за 14 год, рассказывают про альтернативы, тарифы, для ценителей были какие-то приложения и под андроид.
969345
#42 #969345
>>969336
Koding был единственный с полноценной рутовой машиной, но умер.
И тарифы сейчас у всех эти сервисов такие, что проще купить впску.
969349
#43 #969349
>>969345

ты же понимаешь, сравнивать надо с ide + хостингом. Подписка на рубимайн стоит около 12 долларов в месяц, бтв.
969351
#44 #969351
>>969349

>рубимайн


А он то зачем нужен? Там что, такой же вендерлок, как и с джавой? Уж на руби можно писать где угодно, хоть в саблайме или виме.
969355
#45 #969355
>>969351

но я хочу пить смузи, а не трахаться с настройкой очередного сломавшегося плагина в сублайм-виме!
969357
#46 #969357
>>969355
Хипсторы вообще на атоме пишут. На жетбрейнсах сидят только старые пердуны.
969358
#47 #969358
>>969357

Саша, ой всё!
#48 #969359
>>969318
А я есть редактор под тот же линух, в котором не надо пердолиться?
969363969365
41 Кб, 904x531
#49 #969363
>>969359

>линух


>не надо пердолиться



Там чтобы вим не печатал хуйню при нажатии на стрелочки и удалял символы уже нужно конфиги прописывать
969367
#50 #969365
>>969359
Саблайм, атом.
#51 #969367
>>969363
Не нужно ничего прописывать, нужно пропустить через себя философию вим.
Алсо, программировать и ничего не настраивать - это оксюморон какой-то.
969370969382
#52 #969370
>>969367
Не настраивать - это нормально, но конкретно от вима я пригорел
#53 #969382
>>969367

Написание скриптов интегрируюших rvm в сублайм - это красноглазие, а не коммерческое программирование, увы.
969385
#54 #969385
>>969382
А зачем их писать, если и так всё написано? Ты что, йоба-хацкер и тебе нужны какие-то особые сниппеты и изъебы?
969399
#55 #969399
>>969385

Затем что автоматизация. Что сублайм, что тем более вим - нужно достраивать и если ты делаешь это в рабочее время, то ты какой-то хуевый работник.
969409
#56 #969404
>>967399
Меня выворачивает когда Васян пишет if !blah.nil?, а Петян - unless blah.nil?, в одном и том же проекте, в одном и том же файле.
#57 #969409
>>969399

>саблайм не может настроить


Кекнул с этого пахрамиста.
969418
#58 #969418
>>969409

анус себе настрой, пёс.
969423
#59 #969423
>>969418
В понедельник настрою, товарищ начальник
#60 #969667
983634
#61 #970233
Рубаны, нужен совет. Есть один content_tag, в data аттрибут которого я передаю переменную, которая содержит n количесво записей из бд. Все это выглядит так:

<%= content_tag :div, "", id: "my_id", data: { houses: @houses } %>
где @houses это что-то вроде House.last(15)

Затем я на одной из джаваскрипт библиотек из data-houses
атрибута извлекаю в жс файле информацию, делаю с ней всякие манипуляции и тд.
Но мне нужно, чтобы ActionCable следил за этим data-houses атрибутом и в случае обновления (появления новых иснтансов модели Ноuse), снова обновлял этот дата атрибут, запуская жс скрипт, в результате чего ререндерилась и вьюха. Как это сделать? С actioncable знаком, но кроме чатика и комментов на нем ничего такого не делал,
#62 #970456
Котаны, я только начал руби подучать, попытался написать парсер, и вроде все работает, но почему-то блядь ключ [:description] выводит nil при том, что если просто обратиться к ["agi"] - все видно. И ключ, и значение. Код прилагаю:
https://pastebin.com/7tdn1VTh
970461
#63 #970461
>>970456
Вопрос отпал. Это я, долбоеб, русскую "с" написал в слове. Грустнопиздец.
970671
#64 #970671
>>970461
Рубанок / рубероид, хули.
970809
#65 #970809
>>970671
Это локальные оскорбления?
#66 #970983
Поставил PaperСlip с сохранением локально.
Всё работает, но адрес изображения типа 'localhost\......\1231.jpg' из за чего на другой пекарне картинок не видно. Как пофиксить? Чтобы был локальный ip-адрес типа 192.168.1.2?
971549971733
#67 #971549
>>970983
попробуй сделать на aws s3
Загугли и почитай - сделать это проще, чем кажется
#68 #971733
>>970983
Или на google cloud storage еще можно
#69 #971755
по поводу замены sprockets на gulp. проблема: пилить js без знания руби и что бы не иметь в двух местах: bootstrap через sprockets, а остальное в gulp. пусть будет в одном месте.
статья как подружить js/css asset digest c gulp:
https://blog.bugsnag.com/replacing-the-rails-asset-pipeline-with-gulp/#monkeypatching-rails

нет уже готового?
что с иконками которые раньше были в app/assets/images?
971760
#70 #971760
>>971755
а напомните, зачем asset digest?
перед тем как использовать документ из кэша, браузер разве не шлет запрос - content modified? if no -> fetch the document from the server.
971879
#71 #971764
Как сделать, чтобы гет на какую-то страницу показывал index, а гет с параметром на тот же адрес - create? Понимаю, что это немного не по договоренности в рельсомирке, но легаси говно такое легаси.
971784
#72 #971784
>>971764
в config/routes.rb
match "my_action", via: :all # post and get

def my_action
if params[:param]; create; else; blah; end
971786
#73 #971786
>>971784
Спасибо. А на уровне роутов это не решается?
971796
#75 #971797
>>971796
Как раз только что сделал через эти constraints. Странно, все работает, но роутинг спек все равно говорит, что я не прав.
#76 #971879
>>971760
немного разобрался. у документа в кэше есть параметр, max-age который контролирует длительность кэширования. max-age можно выслать веб сервером для js, и других статических документов.

если документ был получен ранее чем max-age назад, то браузер пошлет запрос серверу.
у запроса есть заголовок:
If-Modified-Science: time

https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/If-Modified-Since

>makes the request conditional: the server will send back the requested resource, with a 200 status, only if it has been last modified after the given date. If the request has not been modified since, the response will be a 304 without any body;



для не нагруженной херни можно и без digest обойтись, установив max-age в несколько мин.
#77 #972376
Как врубиться в паттерны программирования? Желательно с примерами на руби
972438972606
#78 #972438
>>972376
Просто уходи.
972592
#79 #972592
>>972438
Не прогоняй, плиз. Лучше посоветуй книжку. Вот я нашел design pattern in ruby, она хорошая?
972607972773
#81 #972607
973037
#82 #972773
>>972592

На почитай

http://www.rubyletter.com/newsletter/2017/04/07/patterns.html

На гитхабе можешь подрочить на код postmodern'а
973037
#83 #973037
>>972606
>>972607
>>972773
Всем добра
#84 #973847
minitest или rspec?
когда используешь другие библиотеки, часто бывает что их легче тестировать rspec'ом?

в rspec:
include_examples "blah"

в minitest:
module Blah
... # your tests
end

class Test
__ include Blah
end

в minitest понятнее, что происходит.

с другой стороны, у rspec
есть it_behaves_like, который вместе с форматированием, дает некоторую инфу.
у minitest есть паралельный запускатель тестов. может и у rspec есть.
979269
#85 #974131
#86 #974270
Что почитать по руби на русском языке? Начал путь руби, но он не заходит, изложение ебанутое. Например, начали рассказывать про классы, привели пример класса, а рассказать чем отличаются переменные классы от переменных экземпляра забыли. Ну это пиздец вообще.
975377
#87 #974469
Анон, подскажи за сколько такое делается на рельсах www.washdrop.ru по времени и по цене?
974595
#88 #974595
>>974469
Месяца три
974626
#89 #974626
>>974595
Объясни в чем заключается сложность и почему такой срок? Ну и цену интересно бы услышать
974713
49 Кб, 1295x703
#90 #974713
>>974626
ангуляр
974727
#91 #974727
>>974713
Я что, в филиал /b попал что-ли? Причем тут ангуляр поехавший? Ты можешь, блядь, писать более развернуто чем одно - два слова? Ты блядь слышал что спрашивалось вообще? Меня не ебет на чем это сделано, в качестве бэкенда у подобного говна обязательно будет рельса пусть и ангуляр на фронтенде (про это будет отдельный ответ).

Вопрос остается тем же. Сколько по времени делать подобное говно для погромиста на рельсах и сколько это говно собственно может стоить если ты конечно не совсем хуй мамин а немного шаришь в вопросе.
974735
69 Кб, 819x737
#92 #974735
>>974727
я не он но отвечу
смари бэк там простой, очень простой сделать его на рубях можно, но смысел нанимать узкого относительно спеца для почти одностраничника ? Хочешь заплатить больше

далее по фронту
я с угловым мало работал но принцип думаю один и тот же:
для начала пикрил
это плохо

во вторых я бы взял тысяч 50 за все под ключ
дизайн, верстка, бэкенд
и по времени месяца два ( просто чтоб можно было поебланить и не загоняться по поводу дедлайнов ) за 80 тысяч сделал бы такое за месяц но это я макаки с fl.ru сделают на стэке WP+JQ за две недели и 10к

проблема не в сложности а в том, что заказов обычно у сколько нибудь нормального спеца столько, что можно на подобные одностраничники выставлять прайс в разы превосходящий реальную стоимость/сроки
975100998170998172
#93 #975100
>>974735
Вообще я думал такое делается на базе какой-нибудь Spree если речь идет о рельсах. В качестве фронтенда Bootstrap который там уже есть к тому же. Заодно и платежные системы подключить не проблема будет. корзина и все остальное там уже реализовано, так что останется только настроить функционал. Плюс административная часть в которой будут проходить все заказы с состоянием доставки и всего подобного. Срок на все про все с учетом уточнений - месяц максимум, осталось определиться с ценой.
#94 #975132
>>964778 (OP)
Хочу встать на рельсы, в данный момент знаю C#, могу в верстку. ASP.NET MVC по паре причин забросил, но о MVC в целом имею представление.
Такие вопросы:
1) С какой книги начинать читать, чтобы для меня не разжевывали с нуля переменные, коллекции и прочее. Могу разбираться на примерах. Желательно, чтобы сразу начать пилить сайт.
2) Есть ли у какой-нибудь IDE аналог IntelliSence для Ruby?
975377
#95 #975377
>>974270
Учи английский, иначе так и будешь

>экземплярами


оперировать вместо нормального языка. Ну и информация двухлетней давности в лучшем случае прилагается как должное. Технический английский на самом деле элементарный, поначалу туго, но дальше как по маслу.
>>975132
http://stackoverflow.com/questions/55574/learning-ruby-on-rails
#96 #975516
Арон, как сделать так, чтоб ruby шел на сайт, копировал <head>Вот это </head> и вставил в .txt док. Какие гемы поставить, если с ванилы не может? Заранее спасибо.
С .txt, все понятно
975554975735981350
#97 #975554
>>975516
nokogiri
975721
#98 #975721
>>975554
А если мне нужно просто вывести название сайта в блокнот?
#99 #975735
>>975516
Ставь правильные вопросы и задавай их гуглу.

1) Как запросить html по url.
2) Как парсить строку.
3) Как выводить в файл.
975744
#100 #975744
>>975735
1.+
2. Искал, но там относительно сложные примеры с большим кодом. И поиск идет по css.
3.+
Я бы и сам сюда за помощью не шел(анон, занятой человек, а не я высокомерная мразь), но понимание, так и не приходит...
975862
#101 #975862
>>975744
[code]
html = %{
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>OP XYU</head>
<body></body>
</html>
}

html.match(/<head>(.*?)<\/head>/m).captures # => ["OP XYU"]
[/code]
975893
#102 #975893
>>975862
[CODE]require 'open-uri'
require 'nokogiri'
url = 'http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html'
html = open(url)
html.match(/<title>(.*?)<\/title>/m).captures
[/CODE]
Подскажешь, где ошибочка?
975899
#103 #975899
>>975893
C:/Ruby/lib/ruby/2.3.0/delegate.rb:87:in `method_missing': undefined method `match' for #<Tempfile:0x0000000331ef18> (NoMethodError)
from C:/Work/rb/testing.rb:5:in `<main>'
Вот такая.
Я знаю, что даун, раз на винде руби знаю, знаю...
975920975922
#104 #975920
>>975899
А где у тебя вызов этой самой Nokogiri?
#105 #975922
>>975899
open(url) возвращает не строку, а файл, который нужно прочитать через read

nokogiri -это библиотека для парсинга html/xml документов. Если у тебя такой простой пример, то можно обойтись без нее:

require 'open-uri'
url = 'http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html'
html = open(url).read
html.match(/<title>(.?)<\/title>/m).captures.first

С nokogiri:*

require 'open-uri'
require 'nokogiri'
url = 'http://www.nokogiri.org/tutorials/searching_a_xml_html_document.html'
file = open(url)
doc = Nokogiri::HTML(file)
doc.css('head').children.to_html
975923975932
#106 #975923
>>975922
Фикс, макаба распидорасила:
html.match(/<title>(.*?)<\/title>/m).captures.first
#107 #975932
>>975922
Огромное спасибо тебе!
977234
95 Кб, 600x800
#108 #976430
А как обычно в рельсах назначают выполнение действий в определенное время, вот допустим у меня есть поле с датой в бд и я хочу именно в это время отправить смс/письмо/сделать что-то еще? Очевидно что можно написать простой крон скрипт который будет дергать анус бд каждые n минут, но это ведь нихуя не правильно, всякие delayed job вроде позволяют ставить конкретное время запуска задания, но как они будут дружить с тем что в бд могут быть тысячи записей ? Вообщем в гугле не нашел, пришел сюда. пик стронгли анрилейтед
976472977884
#109 #976472
>>976430
sidekiq вполне быстый
977229977506
#110 #977229
>>976472
плюсую также за sidekiq
977506
#111 #977234
>>975932
можно вместо 'open-uri' пользовать gem 'httparty'.
почитай в документации nokogiri как парсить по css элементы, свобода действий достаточна.
для вывода данных советую поработать над приведением к удобному виду, что-то типа
my_data = el.search('header').text и пуш в массив,
а затем с помощью гемов 'json' или 'csv' получай чьотенкий лист данных:
puts JSON.pretty_generate(my_data)
или
CSV.open('my_data.csv, 'w') do |csv|
csv << my_data
end
и вот тебе файл с выгребаемым
977886
#112 #977471
интересно
#113 #977472
интересно
#114 #977506
>>976472
>>977229
Ну и толку что он быстрый (быстрый в обработке задач?), причем здесь это? Я спрашиваю о том как это сделали бы люди которые что-то понимают, потому то что я назвал мне не кажется оптимальным решением.
977534977627
#115 #977534
>>977506
Для мудака, который не может в гугл.
Твои стулья: https://www.ruby-toolbox.com/categories/Background_Jobs
По сути, стула всего два: Resque или Sidekiq. Оба используют редис. Рескью я не пользовался, к сайдкику нареканий никогда никаких не возникало, из коробки есть все, ебаться ни с чем не нужно. Судя по всему, у остальных такая же ситуация. Если ты все еще не можешь в гугл с запросом из трех слов Resque vs Sidekiq, то на первую ссылку с СО: http://stackoverflow.com/questions/11580954/resque-vs-sidekiq и FAQ сайдкика со сравнениями: https://github.com/mperham/sidekiq/wiki/FAQ
977617
#116 #977617
>>977534
Вот нахуй ты это написал, ты читать не умеешь или что ?
#117 #977627
>>977506
а требования какие по надежности, ничего страшного если сообщение не будет доставленно в случае редкого сбоя?
ничего если сообщение будет отправленно дважды?
тебе вот эти вещи нужно разобрать.
сайдкик использует редис и тебе нужно будет проверить сохраняет он очередь или хранит в временно памяти и очередь теряется при сбое.
если тебе нужно отослать разным получателям в разное время и получателей - много заданий. то нужно подумать про очереди с разным приоритетом. да и тебе нужно с какой точностью обработки, до секунды или плевать если сообщение отправится на несколько мин позже?
я бы так рассуждал и уже из соображений выбрал сайдкик или еще что.
5 Кб, 277x75
#118 #977855
Какой редактор выбрать для Ruby On Rails под Линукс? С нормальным автодополнением и подсветкой синтаксима. Sublime Text 3 как-то криво подсвечивает.
977856977887981831
#119 #977856
>>977855
А, нет, это я еблан.
#120 #977884
>>976430
Рандомное действие зависящее от значения в строке БД по определению решается периодическим поллингом базы.

Попробуй описать изначальную задачу, до этапа как какая-то дата попадает в БД и возможно тебе предложат решение лучше.
977959
#121 #977886
>>977234
Ты наркоман. OpenURI - библиотека работы с URI. HTTParty - клиент HTTP. Как тут можно одно использовать "вместо" другого - не ясно.

Более того, если речь о множественной загрузке, то нужен не httparty а faraday с excon'ом или аналоги.
978064
#122 #977887
>>977855
Atom если похуй на память.
#123 #977959
>>977884
Ну вот очевидный таск-менеджер с функцией отправки email, если ты проебал сроки выполнения(т.е не поменял статус на выполнено)
978044
#124 #978044
>>977959
Тогда очевидный воркер запускаемый раз в Х, выбирающий просроченные тикеты по всей системе и рассылающий уведомления.

В ином случае это какая-то комбинация из event-driven системы хранения данных и экосистемы.
#125 #978064
>>977886
От наркомана слышу. Хера ты умного корчишь? Использовать для скрапера HTTP клиент вместо OpenURI - как раз по делу.
HTTParty uses Net::HTTP under the hood.
В чем я не прав? HTTParty через GET запрос на страницу возвращает весь html в виде строки. Ну и накой нам тогда OpenURI, если HTTParty все делает сам.
К тому же, цитирую: "While good for basic tasks, open-uri has some issues which mean you may want to look elsewhere for an http client to use in production". ОК?

И пойди расскажи, что они наркоманы всем этим ребятам:

https://www.distilled.net/resources/web-scraping-with-ruby-and-nokogiri-for-beginners/

http://www.mattmorgante.com/technology/webscraper

https://github.com/RaDeleon/Ruby-Web-Scraper-Nokogirl-HTTParty-Pry/blob/master/web_scraper.rb

https://medium.com/@LindaHaviv/the-beginner-s-guide-scraping-in-ruby-cheat-sheet-c4f9c26d1b8c
978177978219
#126 #978177
>>978064
Хуярить скрейпера через нативный Net::HTTP это пиздецовая идея. В итоге придешь к тому что будешь хуярить тред-пул чтобы с горем пополам это работало хоть как-то оперативно.

>Использовать для скрапера HTTP клиент вместо OpenURI - как раз по делу.


Так если оба базируются на Net::HTTP - то какой резон-то?
51 Кб, 300x300
Что мы знаем о Rails? #127 #978208
В Rails первее всех собрали воедино множество инструментов для повышения удобства разработки. Но сейчас вы не найдете в нем "революционности". По сути, ничего нового в Rails не изобретено. ActiveRecord, MVC? Это паттерны прямиком из книжек 90-х годов. Шаблонизатор вроде .erb? Смешно. REST API? Тоже не ново. LESS, SCSS? Никого этим не удивишь. Миграции для БД, скаффолдинг тоже везде есть. Таким образом, в Rails есть всё то же самое, что и в других веб-фреймворках. Сейчас, когда все догнали и перегнали Rails, рубистам только и остается говорить, что всё спиздили у них. Что мы имеем в сухом остатке? Зрелое коммьюнити и очень зрелый фреймворк, т.к. все хипстеры, которые гоняются за технологиями, перепрыгнули куда-то в JavaScript-джунгли. Только вот эти хипстеры и вывели руби в люди, а не какие-то нудные корпоративные инженеры, как джаву и дотнет. Ах, да. Многопоточность и модель акторов сюда не завезли.
#128 #978219
>>978064

> использовать для скрапера HTTP клиент вместо OpenURI - как раз по делу.



Ты заостряешь внимание на малозначимых вещах.

Низкоуровевые сетевые библиотеки не нужны хотя бы потому, что не дадут ощутимого прироста в скорости, пока не научишься в многопоточность, оптимизированный парсинг тяжелых страничек и т.д. Начни писать код, решай реальные проблемы.

---
Бонусы в виде того, что кто-то гарантирует работу скраппера над кучей протоколов - это приятно, нужен uri - ты его берешь, забывая про то, что в интернете, оказывается много разных схем http, https, ftp, irc (lol) и т.д.

Исходя из этих соображений, я бы не стал писать паучка с Net::HTTP, в худшем случае - запилил какой-нибудь интерфейс, чтобы такие извращенцы как ты могли запилить свою реализацию данной части скпаппера. Но пока не попросят, заниматься овер инженерингом - нет.
978269
#129 #978250
>>967320

>рубокоп


Что такое рубикоп?
978257
Добавьте расширенную версию каста в шапку #130 #978253
979543
#131 #978257
>>978250

> Rubocop


Можешь считать это средством контроля за магией.
#132 #978269
>>978219
Вот сейчас ты себя прям очень высоко поставил фразами, типа "Начни писать код, решай реальные проблемы." и " Но пока не попросят, заниматься овер инженерингом - нет.". Высоты не боишься?
Не мог бы тогда уважаемый сеньор привести пример своего скрапера для описанных выше задач, ну или хотя бы намекнуть как он его напишет.
978386978707
Проблема 10000 соединений #133 #978276
Как/чем решается в Ruby/Rails?
978708
#134 #978282
Хочу записаться на курсы по Ruby/RoR. До этого никогда не занимался программирование. Есть какие подводные камни ?
978283
#135 #978283
>>978282

>Есть какие подводные камни?


Станешь носить кардиган, стричься в барбершопах, пить смузи и кататься на гироскутере.
978290978295
#136 #978290
>>978283
про вейп забыл
#137 #978295
>>978283
Я редко очень подстригаюсь, смузи ни разу не пил, на улицу редко выхожу. Сам я точно буду осваивать этот язык больше года, а с курсами было бы не плохо их укоротить на полгода хотябы.
978298
#138 #978298
>>978295
Помимо самого руби ещё много чего придется осваивать. Уверен, что зочешь влезать в айти? Ещё раз подумай хорошенько...
978335978340
#139 #978335
>>978298
Хочу продвигаться на китайском рынке ИТ.
#140 #978340
>>978298
Либо свои проекты делать на китайский\снг рынок.
#141 #978386
>>978269

> намекнуть как он его напишет



http://infolab.stanford.edu/~olston/publications/crawling_survey.pdf
978524
#142 #978524
>>978386
Понятно. Специфическое чувство юмора, конечно. Удачи тебе!
#143 #978707
>>978269

>Не мог бы тогда уважаемый сеньор привести пример своего скрапера для описанных выше задач, ну или хотя бы намекнуть как он его напишет.



Если смотреть на задачу глобально - то я бы не стал писать скрейпер html страниц в принципе.
Если же локально - то я выше написал что использовать в качестве http агента - faraday с excon.
#144 #978708
>>978276
В Rails никак не решается, это фреймворк.

А так вообще - решается тем что никто в здравом уме не будет пытаться выжать 10000 одновременных коннектов с одного процесса. Такие дела.
978915
#145 #978776
посмотрел гемы для jsonapi. ну вот такие вещи
1. многие патчат ActionController
мне было бы понятнее
render json: UserSerializaer.new(user)
или
render_serializer user
они же патчат render()
если же у меня есть TrivialSerializer и UserSerializer, то какой из них будет использоваться? --- render user, serializerClass: ...
гулопсть.

2. добавляется метод класса к ActionController.
чем
your_class_method
понятнее
include YourMixin?
тоже самое, но не нужно патчить.

а есть список проверенных гемов которые не делают таких глупостей? не jsonapi, а любых.
978788
#146 #978788
>>978776
Ну есть же ActiveModel::Serializers, юзается если сделать rails new --api
979020
#147 #978915
>>978708
А как нагрузку балансируют в вашем стеке? Какие инструменты, техники, технологии? Ссылка есть почитать?
979025979497
#148 #979020
>>978788
это JSON сериализатор.
jsonapi - http://jsonapi.org/
стандарт для структуры json ответов.

есть гем active_model_serializers, но вот что он делает:
http://www.benjaminfleischer.com/2015/06/02/understanding-rails-model-serializers/

он подменяет метод
_render_with_renderer_json
это, что бы ты мог сделать:
render json: user

было бы понятнее если бы они просто добавили:
_render_with_renderer_jsonapi

тогда можно было сделать:
render jsonapi: user
из этой записи ясно, что будет использоваться jsonapi.

а так, получаются вот такие дуратские вопросы:
http://stackoverflow.com/questions/20101179/how-to-disable-activemodelserializers-for-a-specific-controller
т.е. человек не хочет использовать jsonapi,
и ему приходится вместо
render json: user
писать:
respond_with user, serializer: nil
#148 #979020
>>978788
это JSON сериализатор.
jsonapi - http://jsonapi.org/
стандарт для структуры json ответов.

есть гем active_model_serializers, но вот что он делает:
http://www.benjaminfleischer.com/2015/06/02/understanding-rails-model-serializers/

он подменяет метод
_render_with_renderer_json
это, что бы ты мог сделать:
render json: user

было бы понятнее если бы они просто добавили:
_render_with_renderer_jsonapi

тогда можно было сделать:
render jsonapi: user
из этой записи ясно, что будет использоваться jsonapi.

а так, получаются вот такие дуратские вопросы:
http://stackoverflow.com/questions/20101179/how-to-disable-activemodelserializers-for-a-specific-controller
т.е. человек не хочет использовать jsonapi,
и ему приходится вместо
render json: user
писать:
respond_with user, serializer: nil
#149 #979025
>>978915
что бы соединений или много запросов?
соединений, не знаю.
есть 10 rails серверов. перед ними ставят http балансировщик.
65 Кб, 1440x900
#150 #979269
>>973847

>minitest


пик что у меня получилось с minitest.
немного времени потратил..
форматированный вывод неочень, надеюсь можно будет написать formatter.
никаких rails-minitest, только то, что вместе с руби. кроме minitest-reporters для вывода.
я включаю Minitest::Spec::DSL в Rails TestCase, не ок.
#151 #979497
>>978915

>А как нагрузку балансируют в вашем стеке?


Так же как и в любом другом. Балансировка нагрузки не имеет отношения к используемым технологиям. Дрочево на requests per instance пустое.
Навязывание TDD в Ruby/RoR way #152 #979518
TDD было придумано для того, чтобы взвалить на разработчика работу тестировщика, но при этом не платить за это. TDD противоречит принципу разделения задач.
979523979566979605
#153 #979523
>>979518

Анус свой раздели, мгазь.
Кого из этих чуваков стоит читать? #154 #979540
Yukihiro Matsumoto a.k.a. Matz.
http://michaelhartl.com/ – author of Ruby on Rails Tutorial.
http://russolsen.com/ – author of Eloquent Ruby and Design Patterns in Ruby.
http://yehudakatz.com/ – один из разработчиков Ember.js, а также core team member в Ruby on Rails, jQuery и других проектах.
https://mackenziechild.me/ – Rails Courses.

Дополняйте список.
979542980307
Gems, Tools #155 #979541
https://rubygems.org/ – package management framework (поставляется вместе с Ruby, начиная с версии 1.9).
http://bundler.io/ – gems manager.
https://ruby-toolbox.com/
https://github.com/bayandin/awesome-awesomeness
https://github.com/trending?l=ruby
979543979544993414
#156 #979542
>>979540
Sandi Metz

Правила для разработчиков от Sandi Metz (2013)
http://habrahabr.ru/post/181434/
#157 #979543
>>979541

>https://github.com/bayandin/awesome-awesomeness


В шапку надо добавить.

И это >>978253
Forum #159 #979547
Learning Ruby, Rails #160 #979548
Learning Ruby on Rails (StackOverflow)
http://stackoverflow.com/questions/55574/learning-ruby-on-rails

Лучший способ изучить Rails (2012)
http://habrahabr.ru/post/138101/

Обучение онлайн (2013) для изучающих Ruby/Rails
http://habrahabr.ru/post/203064/
FAQ #161 #979549
Q: Рубаны, как вы админку кодируете? Какой гем ставить? Искаробки ведь не поддерживается? Почему так, кстати?
A: Искаробки не поддерживает. Юзай Administrate или ActiveAdmin.

Тоже в шапку, это часто спрашивают.
FAQ #162 #979550
Setup Ruby On Rails on Ubuntu
https://gorails.com/setup/ubuntu/14.04
https://gorails.com/setup/ubuntu/16.04

How To Install and Use PostgreSQL on Ubuntu 14.04
https://digitalocean.com/community/tutorials/how-to-install-and-use-postgresql-on-ubuntu-14-04

И это тоже в шапку. Или запилите годный установочный гайд сами.
979551
Installation #163 #979551
>>979550

>И это тоже в шапку. Или запилите годный установочный гайд сами.



Например:

Ставим Ruby и RoR:
1. Ставишь RVM
2. Ставишь Ruby
3. gem install bundler
4. gem install rails
5. rails new foobar && cd foobar
6. bundle install
Всё.

Ставим Postgres:
1. sudo apt-get install postgresql postgresql-server-dev-all (без второго пакета не скомпилируется гем pg)
2. sudo -u postgres psql
В pg-консоли:
3. CREATE ROLE foobar WITH LOGIN CREATEDB PASSWORD 'foobar';
Далее меняешь в config/database.yml имя пользователя и пароль на "foobar".
Готово.
979688
#164 #979556
Каким гемом сделать пагинацию, рубаны?
979557979560
#165 #979557
>>979556
will_paginate
#166 #979560
>>979556
Kaminari
#168 #979564
Правда, что связка Ruby/RoR уперлась в верх возможностей и рубаны перекатываются в Elixir и на другие вещи?
979606
#169 #979566
>>979518
В рельсах нет тру-тдд и быть не может, потому что юнит-тесты не предусмотрены из коробки. Нужно бороться с фреймворком, вводить service/query/presenter/validator объекты, чтобы было нормальное разделение обязанностей, а не огромная куча спагетти

>взвалить на разработчика работу тестировщика


Если разработчик пишет нерабочий код, который нужно отдельно тестировать, то нахуй такой разработчик нужен? Что он разрабатывает?
#170 #979568
>>979566

>Если разработчик пишет нерабочий код, который нужно отдельно тестировать, то нахуй такой разработчик нужен? Что он разрабатывает?


Может он вручную тестирует или небольшими говнокодиками. Вместо всяких кукумберов и прочих анально-навязываемых вещей, которые не оплачиваются.
979576979577
#171 #979570
>>979566

>то нахуй такой разработчик нужен?


Чтобы писать нескончаемый говнокод. косарь баксов разрабу на лапу, а 4 косаря себе в карман. Галеры так и плывут.
#172 #979573
>>979566

> Нужно бороться с фреймворком


Чот рельсы такие жирные стали. Последний раз заглядывал в версию 2 и 3 и было няшно, а сейчас посмотрел и охуел.
979576
#173 #979576
>>979568
А зачем он тестирует вручную, если можно написать автоматизированный тест, который будет работать всегда, и сейчас, и через десять минут, и через неделю, когда потребуется что-то переделать? И как он может быть уверен, что протестированный минуту назад функционал не сломался после добавления строчки кода? Прогонять все тесты вручную каждый раз? Это то же самое тестирование, только контр-продуктивное и ненадежное.

> которые не оплачиваются


Твое рабочее время не оплачивается или что? Тебе платят не за "напиши там чет в блоноте", а за "напиши там чет в блокноте и чтобы работало".
>>979573
По сути нихуя не поменялось.
#174 #979577
>>979568
Двачую, рубипидоров заставляют покрывать свой и не только код тестами и сверху хуй доплачивают...
979589979605
#175 #979589
>>979577
Иди еще фулстекерам расскажи что они за двоих работают.
979591
#176 #979591
>>979589
Ой, эти вообще квинтессенция айти-рабов.
#177 #979605
>>979518
За 6 лет разработки и участия во многих командах - никогда не видел каноничной разработки по TDD.

>>979566
>>979576
>>979577
И в принципе похоже почему. Тут даже и в хуй не дули как делается и зачем нужно TDD.
#178 #979606
>>979564
Нет. Elixir в принципе для другого и вряд-ли когда-то получит преимущества RoR.

RoR как был для быстрого прототипирования лучшим и наиболее быстрым инструментом, так и остался.
979626980026
#179 #979626
>>979606

>для быстрого прототипирования


Вот об этом по-подробнее.
979987980245
#180 #979665
Давайте лучше на английском общаться.
#181 #979688
>>979551
sudo -u postgres createuser --interactive
пароль ненужно.
#182 #979987
>>979626

http://blog.bigbinary.com/2017/04/24/rails-5-1-has-introduced-date-all_day-helper.html

А как ты раньше жил без Date#all_day helper, а? а? а?
#183 #980026
>>979606

>лучшим и наиболее быстрым


Хуита, уже год прототипирую свои велосипеды на elixir + phoenix или на haskell, по скорости от рельс отличий не заметил. И перекат с рельс тоже вполне себе реальность, знаю уже несколько рубистов укатившихся кто-куда, в основном на жс, яву и го, даже на эликсир у одного получилось укатиться (работы пока маловато). Да и я сам, например, уже тот же год на руби только на работе пишу и следующая работа будет 100% не на руби.
мимочетырегоданаруби-кун
980245980306
#184 #980245
>>979626
Захуячить MVP на руби проще чем на других стеках.

>>980026

>по скорости от рельс отличий не заметил


Скорее всего это значит что просто медленно вел разработку на RoR. Просто из базиса языка и подходов, писать на фениксе сложнее.

А слушать про "перекаты" - мне каждый раз доставляет не иллюзорное удовольствие. Пока одни используют подходящие под задачу технологии, другие расценивают переход на другую технологию как явление схожее со сменой миллениума.
980736
#185 #980264
сап, программач. надеюсь на то, что кто-то потратит пару минут и поможет, вместо отсылок в гугл (там бывал). вопрос по ActiveRecord. есть таблица бд User, есть таблица File. в юзере есть поля preview и detail, которые ссылаются на таблицу файлов через id (то есть к каждой записи юзера надо присоединить две разные записи из таблицы файлов). еще эту штуку надо сериализовать в json (выбрать только некоторые поля для сериализации). не прошу писать полностью код, просто подскажите описание моделей и пример запроса для консоли, когда могу просмотреть юзера, у него получить preview файл и detail файл.
#186 #980306
>>980026

>мимочетырегоданаруби-кун


Каково это?
980736
Names #187 #980307
51 Кб, 300x300
Подборка книг по Ruby and Rails #188 #980318
Может кому-то будет полезно:
http://rgho.st/8GtlFQfVp
#189 #980342
Антуаны, рейтаните вакансию.

Чем нужно заниматься:
Работать в команде
Анализировать требования
Проектировать решения у доски и в коде
Писать автоматизированные тесты
Оформлять разработческую документацию
Что нам хотелось бы видеть в тебе:
Уровень — middle/senior developer;
Опыт разработки на Ruby, Rails от 3-х лет;
Умение писать модульные и интеграционные тесты на Rspec, Cucumber;
Знание глубинных механизмов хранения и оптимизации PostgresSQL;
Опыт работы с Docker;
Опыт работы с очередями сообщений Sidekiq, RabbitMQ;
Умение проектировать, писать чистый код;
Должен быть с Linux на “ты”
Уметь автоматизировать рутинные задачи;
Желательно иметь опыт развертывания приложений с помощью Puppet, Chef, Ansible, bash;
Знание JS фреймворков и техник будет огромным плюсом (особенно React.js);
Наличие опенсорс портфолио (будет плюсом).

Полный текст тут: https://hh.ru/vacancy/20345159

Описание отдаёт ЧСВ человеком, который её писал. Ну и плюс коммерческой разработки на рубях у меня нету, ибо в наших краях только пхп-гопота обитает. Каков шанс соснуть на собеседовании? И стоит ли лезть в подобное говно?
980385980397980409
#190 #980385
>>980342

>Описание отдаёт ЧСВ человеком, который её писал


Проблема в твоем восприятии

>Ну и плюс коммерческой разработки на рубях у меня нету


Если умеешь все описанное - похуй. Умеешь = сделал как минимум один проект "для себя" с использованием технологии.

>Каков шанс соснуть на собеседовании?


Велик

>И стоит ли лезть в подобное говно?


Определенно да (опыт)
#191 #980397
>>980342
обычная вакансия как по мне, ничем относительно других не примечательна
#192 #980409
>>980342

Сходи посмотри, вакансия попахивает чуток, но это Казахстан, и у вас там не такой большой выбор, чтобы придираться к мелочам типа повторов

> Писать автоматизированные тесты


> Умение писать модульные и интеграционные тесты на Rspec, Cucumber;



Или бибилиотекам типа > Cucumber

И т.д. ЧСВ особого незаметил, требования для middle/senior как требования.
980419
#193 #980419
>>980409
Ну я на мида не потяну, наверное. Там слишком много смуззи вроде докера/чиф/кукумба. Я, конечно, знаю, что они из себя представляют. Но работать с ними мне не было нужды.
#194 #980736
>>980245

>Просто из базиса языка и подходов, писать на фениксе сложнее.


Это что за такая разница? Тотальная иммутабельность только добавляет удобства, а о всяких эрланговых процессах и прочих сложностях в фениксе, при желание, можно вообще не думать. Единственное, что мне проходит в голову это возможность в рельсах по-быстрому нахуярить лапшу из before/after_save и их друзей + логики в контроллеры напихать (хотя это и в фениксе можно), но так делать даже в MVP зашквар делать.

>Пока одни используют подходящие под задачу технологии


Множество задач решаемых руби/рельсами является подмножеством множества задач решаемых эликсиром/фениксом.

>>980306
Нормально. По моим постам, наверное, можно подумать, что я очень не люблю руби, но это на так, я просто разочарован его темпами и направлением развития. Матц обещает руби 3 в хрен знает каком году, гильды выглядят прямо скажем не очень, опциональную типизацию вообще не факт, что запилят, да и прибавки скорости всего в 3 раза, учитывая насколько руби тормозной сейчас, будет маловато. В рельсах с каждом релизом добавляют пару небольших хороших фич и кучу хуйни уровня suppress. Вот из-за всего этого и возникает чувство "пошло оно все, я съебывая".
980746980773
#195 #980746
>>980736

Твои велосипеды не сложнее хелловорлда, раз в экосистему не упираешься, вот и все. мимо
980766
#196 #980766
>>980746
Может года полтора назад я бы с тобой и согласился, но сейчас давай-ка приведи несколько примеров чего такого уникального есть в рубийной экосистеме?
980770980773
#197 #980770
>>980766

Cравнивая с чем? Ну давай тыкну пальцем в небо, и предположу, что половину платежек и/или библиотек для рассылки смс (локализованных под рыночек) ты не найдешь и будешь пилить сам.
#198 #980773
>>980736

>Это что за такая разница


>Тотальная иммутабельность только добавляет удобства


И отсутствие стейта, которое для полноформатных приложений не шибко то и плюс.

>>980766
Ну кстати если говорить конкретно про эликсир, то например с MQ все не то чтобы очень хорошо. Часть библиотек в начальном этапе, часть уже в полузабвении.
#199 #980778
Как же меня доебала экосистема рельсов вокруг реакта. Проебался весь день, то компоненты не импортятся, то редакс наебнется. В конце концов ебанул бин рельсов. Обоссыте мне ебало что-ли.
Суть такова, хочу чтобы у меня был рельсовый апп, в котором в одну вьюшку маунтится весь мой реактовый апп, и больше ничего из ассет пайплайна не бралось, чтобы реактоговно все жило отдельно, собиралось вебпаком, юзало нод модули и слало реквесты например через аксиос на рельсовый сервер с которого и засервилось. То есть чтобы это говно было в одном аппе но как я хочу. И чтобы я мог развернуть на хероке или например деплоить с капистрано.
Это вообще запиливаемо или нужно ебаться с двумя аппами?
Сорри за корявый язык, но я уже умер в нутри с этих приколов
980784980802980823
#200 #980784
>>980778

В 5.1 обещают добавить чуть-чуть смазки для программиста, так что держись! http://nithinbekal.com/posts/rails-5.1-features/
980792
#201 #980792
>>980784

>http://nithinbekal.com/posts/rails-5.1-features/


Ща чекнул, у них одна ишью осталась. Было бы здорово если бы завтра утром выкатили, но это все мои влажные
#202 #980802
>>980778

>То есть чтобы это говно было в одном аппе но как я хочу


Будет гемор. Разделяй на два разных.
#203 #980823
>>980778
зчем, что бы webpack не запускать в отдельном терминале?
капистрано не сложно, запустить две команды: npm install и webpack.
#204 #980868
О, я это сделал на rc2
Посмотрим сколько хуев натащу в рот но пока делает что я хотел
#205 #981334
Котаны, а как в ваших рубях вывести больше одного пробельного символа подряд?
Пробовал и puts " " , и puts "\s\s" - нихуя. Что блядь за недружелюбность?
#206 #981350
Анон, это вновь этот аутист >>975516
У меня вновь проблема, не OpenURL, по какой-то причине, не хочет открывать сайт. Вот код. Простите, что пришел снова со своими вопросами...
require 'open-uri'
[CODE]
nump = rand 1..88500
url = 'https://anidb.net/perl-bin/animedb.pl?show=character&charid=' + nump.to_s
open(url) {|f|
f.each_line {|line| p line}
}
[/CODE]
981355
#207 #981355
>>981350
Нашел ошибку, исправил, словил бан.
#208 #981831
>>977855
Не благодари. Надеюсь, нужные пакеты найдешь сам.
https://packagecontrol.io/
#209 #982091
Анон, есть ли работа для совсем недавно вкатившихся в рельсы? Пхп не нравится, а питон умирает в конвульсиях.
982330982353983971
#210 #982330
>>982091

>питон умирает в конвульсиях.


руби
#211 #982353
>>982091
На других я/п то же самое. Валютные курсы, индия, чо ты хотел...
#212 #982462
оказывается можно легко camelCase параметры трансформировать в underscore:
params.require(:blah).transform_keys(&:underscore).permit(...)

а в jbuilder есть параметр для обратной трансформации в camelCase.
982677
#213 #982677
>>982462

Это только для рельсы, если используешь Active* что-то там вне рельсы, то я тебя хочу обоссать.
984442
#214 #982961
Сап, для лабы надо рельсы, скачал Railsinstaller, установил, PATH прописал да, шин10, но если написать в консоли rails, пишет что "Системе не удается найти указанный путь." И правда, в /bin я не нашел такого файла. Что я делаю не так?
982969
#215 #982969
>>982961
попробуй битнами рубистак
983032
#216 #983032
>>982969
написал gem install rails и все ок стало
983214
#217 #983214
>>983032
Ты bunde install забыл похоже
#218 #983634
>>969667
Все 56 минут можно заключить в одну фразу -
"пользуйтесь правилами бухучета". Больше полезной для слушателя информации нет. Ну зато он молодец какой, серьезный парень, с докладом выступил, не хуе мое.
983863
21 Кб, 333x499
#219 #983863
>>983634
Кстати, двачеаноны, может кто-нибудь рассказать в чем суть системы двойной записи. Залип сегодня на видосах, смотрел туториальчики, но так и не понял в чем смысл. Ведут счета, каждую проводку отражают на каждом счете, если просуммировать дебет-кредит, то они сойдутся, легко проверять корректность (читаемость при этом сомнительная какая-то). Но суть всей этой возни не понятна, тем более в современных условиях.
984842
#220 #983971
>>982091
В СНГ рельсы есть в Москве и Киеве. Ну и ещё немножко в Питере. Всё. Больше можешь даже не пытаться. Вкатился на рельсы, теперь вот думаю, куда укатываться. От js дрисни течёт кровь из глаз, пхп оплачивается как труд копирайтера. Хз, что делать.
984458
#221 #984240
Есть БД в postgresql и небольшая программа на рельсах, с подключением к этой БД. Как мне вывести данные с БД на html страницу (в таблицу)?
24 Кб, 718x887
#222 #984442
>>982677
так точно.
короче, у рельсов, params - возвращает параметры запроса. это блять метод наследуется от базового контроллера. но это не Hash, нет метода deep_transform_keys. есть просто transform_keys, не рекурсивный.
http://stackoverflow.com/questions/17240106/what-is-the-best-way-to-convert-all-controller-params-from-camelcase-to-snake-ca
как можно додуматься до этого^^^ и не додуматься до пикрелейтед?
пикрел будет работать всегда.
984459
#223 #984458
>>983971
Олигофрен, веб-макака. Кроме рельсов php и js ни до чего не допер.
Особенно смешно когда рельсы это 150k+, js до 220к.
#224 #984459
>>984442
Дебич. params это strong parameters. Которые в свою очередь наследуются от HashWithIndifferentAccess, у которого есть все свойства рельсового хэша.
984465
sage #225 #984465
984467
#226 #984467
984469
#227 #984469
>>984467
куда спешишь?
984470
#228 #984470
>>984469
В Арбат Престиж.
#229 #984673
Сам, анон. Пишу гем-враппер, столкнулся с проблемой. Перед запросом нужно инициировать сессию, которая активна 15 минут, после чего она уничтожается и сервер ее не принимает. Как сохранить сессию для следующих запросов? В файлике хранить как-то некрасиво.
ответ приходит такой
{"ret_msg"=>"Approved", "session_id"=>"A1C7DFC2EBC642429CD08831B80605EC", "timestamp"=>"5/4/2017 10:09:40 AM"}, где "session_id" ключ для других запросов
984842
46 Кб, 854x353
#230 #984828
Чем отличается обсервер от коллбеков?
Сначала я вообще не мог понять разницу - например, в модели я определил коллбек after_create с отправкой письма нет, я так не делаю или написал обсервер, который отправляет письмо и вызвал после создания. Ни какой разницы, кроме того, что код в другом месте.
Потом я нашел 2 тезиса:
1. Коллбек является частью объекта и потому сильно с ним связан. Если реализовывать в нем логику не относящуюся к объекту, то нарушается принцип SRP.
2. Observer pattern предусматривает механизм регистрации обсерверов - то есть мы не только их уносим из объекта, но и можем менять их состав. То есть это масштабируемость.

Посоны, а какая еще есть принципиальная разница? Кто понимает архитектуру, объясните суть этих вещей.
984842
#231 #984842
>>983863
Не знаю, о чем вы там говорили, но если вопрос о бухгалтерии, то суть в том, что каждая транзакция дублируется и идет отдельным путем. Если в итоге сумма всех транзакций выходит в ноль, то все правильно и можно подтверждать. Если нет, то ищешь ошибку. Это как перепроверка или тестирование, гарантия того, что нигде не обосрался и не ввел неправильное число. Потому что если обосрался и ввел лишний нолик, то это стоит компании дохуища бабла, а ты уезжаешь на бутылку.
>>984673
Ну как обычно сессии хранят? Либо на стороне клиента, либо на стороне сервера. Если на стороне клиента - шифруешь всю нужную информацию(в том числе дату) ключом, отдаешь клиенту зашифрованную строку, а он тебе ее отдает обратно при запросах. Расшифровываешь ключом, сверяешь дату и обрабатываешь запрос. На стороне сервера - вся информация в файлике(БД).
>>984828
В рельсах - шо то хуйня, шо это хуйня. Советую прочитать про Service Objects, а не лепить спагетти из обсерверов с колбэками.
984925
#232 #984925
>>984842

> суть в том, что каждая транзакция дублируется и идет отдельным путем.


>Если в итоге сумма всех транзакций выходит в ноль, то все правильно и можно подтверждать


Анон, если ты разбираешься, то объясни более понятно.
Что понял я:
- Сначала была простая запись, это был просто лог всех операций.
- Потом Лука описал двойную запись, где появились счета и понятия дебета/кредита.
- Как объясняют это в литература, мол это позволяет избегать ошибки очевидно, что это чисто ручной фактор и, что типа гораздо важнее, гибко строить аналитику.
- Система дошла до наших дней и используется во всем мире, являясь единственным стандартом.

Вот я не понимаю, в условиях IT, что дает двойная запись? Такое ощущение, что с современной точки зрения главная идея двойной записи - понятие счета. Что дают понятия дебета и кредита и дублирование их при каждой операции на каждом счете, не понимаю.
984953985051
#233 #984953
>>984925

> Вот я не понимаю, в условиях IT, что дает двойная запись? Такое ощущение, что с современной точки зрения главная идея двойной записи - понятие счета. Что дают понятия дебета и кредита и дублирование их при каждой операции на каждом счете, не понимаю.


Проследуй лучше в 1С тред, там тебе лучше пояснят зачем это нужно и как с этим мириться.
мимо
#234 #985005
Итак рубаны вкачусь чтоб задать своих глупых вопросов. И вам меня не остановить!
1.Ставил ли кто себе это https://msdn.microsoft.com/en-us/commandline/wsl/about если да, то как ощущения?
2. Почему на руби не пытаются поднять нейросеть?
Или если есть такое, линконите, а?
985216985631985879
#235 #985051
>>984925

>что дает двойная запись


Перепроверка при наборе цифр руками. Если все транзакции в кампуктере и руками туда ничего не вводится, то я тоже не вижу практического смысла. Но в бухгалтерском учете это имеет статус закона, либо хуяришь double-entry, либо ты не бухгалтер и идешь нахуй. Это как если бы врач сказал "ну нахуя мне давать клятву гиппократа, >2017 год на дворе".
#236 #985105
Котанва, что вы используете для т.н. сериализации объектов?
Я вот недавно вкатываюсь и возникла у меня проблема с YAML/Psych: есть двумерный массив, строка и объект Process::status и вот он как бы не очень в yaml итоговый пролезает (при лоаде в nil), можно ли вложенный в массив объект тоже пропихнуть в yaml?
985560
#237 #985216
>>985005

>Почему на руби не пытаются поднять нейросеть?


Вопрос уровня "Почему отвёрткой не пытаются забивать гвозди?". Для всего есть свои инструменты, и задачи руби - клепать круды, не более.
985561
#238 #985560
>>985105
Объект нельзя сериализовать. Можно только маршализировать, через Marshal.dump.

Сериализатор ничего не знает о типах объектов, соотв-но раскладывает в свои примитивы(которые обычно стандартизированы - число, строка, бул, массив, ассоциативный массив).
#239 #985561
>>985216

>и задачи руби - клепать круды, не более.


Поэтому у нас есть АБС на рубях. Потому что круды, да?
#240 #985631
>>985005
Я понимаю, что переходить по ссылкам с двача фу, и все такое, но что по первому вопросу?
Ставил ли кто себе Оффициальный баш под виндовс и как оно вам?
985762
#241 #985762
>>985631
Говно, тупой сигвиновский порт.
#242 #985879
985925
#243 #985925
>>985879

>https://www.crondose.com/2016/12/practical-machine-learning-ruby/


Там тащемта ничего нет про нейросети, в его списке другие ML-алгоритмы приведены, но нейросети.
#244 #985952
А кристал живой? Кто следит, есть новости?
985958986152
#245 #985958
>>985952
Ненужон, есть эликсир же.
985976
#246 #985976
>>985958
По-моему разные цели, не?
986032
#247 #986032
>>985976
И что по твоему в целях у эликсира, а что у кристала?
986059
#248 #986059
>>986032

>эликсира


всякие сетевые хуйлоады c трафиком 300к/с

>кристала


все остальное, где функциональщина будет не к месту
986106986126
#249 #986106
>>986059
на эликсир + феникс достаточно удобно разрабатывать обычный веб в духе рельс
#250 #986126
>>986059

>всякие сетевые хуйлоады c трафиком 300к/с


Ты походу путаешь с Go или Scala.
Эликсир если разобраться он для задач где важна стабильность и consistency.

Но я с тобой в корне не согласен. Функциональщина есть и в нативных рубях, причем если подумать - то ее довольно много.
С другой точки зрения, вся разница функционального подхода и объектно-ориентированного в том, что во втором случае у тебя есть(при неправильной методике разработки) есть куча stateful говна, которое существует только потому что разработчик не придумал способа лучше.

Если ты возьмешь стандартизированный образец модели Request-Response и разложишь ее на составляющие - ты увидишь абсолютно ту же матрешку последовательных вызовов себя-куда-то, которую ты встретишь в функциональной парадигме. За тем лишь исключением, что в OOP у тебя будет гора обвязочного хлама существующего параллельно стеку вызовов функций.
#251 #986152
>>985952

К концу года хотят 1.0 версию выпустить.

По мне выглядит вкусно, кристалл - возможность расширить стек для казуального байтоебства (Не го же учить), и всего за полцены.

Эликсир где-то мимо.
45 Кб, 688x446
#252 #986791
Народ, что-то тред совсем мертвый, что случилось?

Может кто-нибудь дать ссылку на хороший гайд по модулям, перменным, приватности и всем такому? Сложная тема с множеством нюансов.
986796
#253 #986796
>>986791
Лучше вопросы задай, и тебе объяснят.
986841
#254 #986841
>>986796
Ну например, что делает module_function и как можно сделать тоже самое без нее?
Но описание я могу посмотреть и в документации - делает доступным метод для вызова на модуле, а так же доступными как приватные методы при миксовании. При этом методы являются копиями и могут изменяться независимо.

Но такое формальное объяснение не объясняет сути, его просто нужно запомнить. Как можно запомнить что делает include/extend, а можно знать, что руби создает анонимные классы для объекта/класса объекта.
Формальный ответ про include/extend простой, а реально тема большая и сложная.
986968987024
#255 #986968
>>986841

> как можно сделать тоже самое без нее



набросал на коленке https://pastebin.com/FCwyErum

> Как можно запомнить что делает include/extend,



Почитай хабрапарашу, все разжевано, есть список. доп.литературы в комментах https://habrahabr.ru/post/143483
987095
#256 #987024
>>986841

> анонимные классы


ancestor, а не просто анонимный класс.
Тема ни разу не сложная. И вот что я тебе скажу. В практике - module_function не применяется.
Если требуется Mixin - используется include/prepend/append.
Если требуется синглтон - используется классический def self.
Если требуется динамическое объявление - используется define_method/define_singleton_method.
987095
#257 #987095
987098
#258 #987098
>>987095
Ах ты наверное решил просто теорию подрочить, ну тогда удачи.
64 Кб, 400x400
#259 #987314
Что случилось с apidock? Почему они больше не обновляются?
#260 #987720
Вечер в хату рубаны. Собственно такой вопрос, нужно написать определение локали по ip-адресу, для стран СНГ - ru локаль, для остальных en локаль. Сталкивался ли кто - нибудь с таким, или направьте мой поиск в нужное русло, ибо в инете суют дефолт локаль, которая никоим образом тут не поможет.
987740988003
#261 #987740
987881
#262 #987881
>>987740
Во-первых, как он работает?
Во-вторых, ты че, предлагаешь пацану при каждом запросе лезть в гугл геокодить? Ты ебанулся блять?
#263 #987903
Пацан, изучи для начала функционал библиотеки, в частности раздел Local Database Services, а потом кукарекай.
988541
#264 #988003
>>987720

Бтв, можешь погуглить в сторону Accept-Language request HTTP header, геолокация там вообще не используется.
988541
#265 #988246
Ананасы, только начал изучать Ruby: почему в данном коде https://ideone.com/mYRRmY при условии если переменная consonant не пустая, она не плюсуется к перменной sentence в 21 строке?

Суть задачи такова:
# Rule 1: If a word begins with a vowel sound, add an "ay" sound to the end of the word.
# Rule 2: If a word begins with a consonant sound, move it to the end of the word, and then add an "ay" sound to the end of the word.
#266 #988541
>>988003
Вот это правильный совет.

>>987903
А ты ебало свое завали и не кукарекай тут, кретин.
#267 #988682
Как заставить работать вместе Rails и npm?
#268 #988990
>>964778 (OP)
Сап, аноны. Что бы работать с БД мне нужно сделать active records для необходимых таблиц и связи так же как и в БД? Как можно обойтись без этих records и просто делать запросы sql ? (postgresql)
15 Кб, 356x102
#269 #989008
А почему не распространена практика использования чего-то типа JRuby. С чем в нем проблема?

Звучит вроди здорово, потоки без GIL. Рельсы при этом потокобезопасны. Можно брать и использовать для нового проекта. Но что-то не встречал, чтобы его использовали на практике. Почему?
#270 #989013
>>989008
Потому что такая хуйня никогда не имеет успеха. Все эти трансляторы в JS с каких-либо других языков, приблуды, чтобы посадить на JVM (BEAM или любую другую), трансляторы в С (как Nim) - от лукавого.
Например, для меня это какая-то мутная приблуда, которая обязательно прибавит дополнительный Лэйер, соответственно, плюс новых багов, нового пердолинга и т.д. плюс хз, хорошо ли ее мейнтейнят и не бросят ли.
Короче, дополнительный источник головной боли.
989043
#271 #989043
>>989013
Причем тут транслятор, если JRuby нативен?

>для меня это какая-то мутная приблуда


Ну то что у тебя мозгов не хватило допереть это в целом объяснимо.
Назвать elixir (а именно его ты имел ввиду упоминая BEAM) приблудой и транслятором это ебанись просто.

>>989008
Потому что зоопарк гемов оптимизированных для работы с JRuby ограничен и приходится искать подходящий вариант либо костыли наворачивать.

Второй проблемой является иная парадигма разработки требуемая от разработчика. Понимание особенностей и преимуществ JVM и грамотное их использование.
989057
#272 #989057
>>989043

>Потому что зоопарк гемов


Так и думал, что проблема в экосистеме.
#273 #991564
Смуззи... Вкусно.
#274 #991769
>>989008
еще есть rubinius.
но я не смог его установить, падает с segmentation fault. и нет желания компаться в этом.
до этого тоже думал, вот же есть rubinius, если нужно будет, то...
#275 #991890
Аноны, подскажите, анализирую бинарные данные, затем записываю все в БД.
1. Можно ли использовать Rails для визуализации этих данных, целесообразно ли это?
2. Как правильно записывать данные, прямо из модуля парсинга на си++ коннектится в БД или через web интерфейс, который Rails предоставляет?
994988
#276 #992325
Анон, делаю Model.eager_load(:association).limit(10) - получаю 2 запроса, которые в итоге дают мне 10 объектов класса Model. Обычно это то, что нужно, но вот у меня есть кейс, где мне нужны именно 10 строк сджойненой таблицы, как мне это сделать?
992995994988
#277 #992673
кто знает почему ActiveRecord id, это специальный атрибут? используется id даже если установлю primary_key:

Model.primary_key = 'primary_id'
m = Model.new(id: 123)
m.primary_id
=> 123
m.primary_id = 321
m.id
=> 321

у меня id, это не глобальный идентификатор. а локлен для пользователя:
/users/1/blog/1
/users/2/blog/1 --- разные объекты.

и по спецификации, название атрибута - id.

пришлось id переименовать в local_id, но так-как по спецификации, имя полю должно быть id, то получается хрен знает что.
т.е. json запрос
{id: 123, attributes: ...}
user.models.find_by(local_id: attrs[:id])

primary_id - primary_key нужен только для
model.destroy()
так-как с локальным ключем удалит
user1.blog_id_1.destroy() - удалит и user2.blog_id_1
992996
#278 #992995
>>992325
Model.joins(:table).limit(10).select("")
994988
#280 #993414
>>979541
ооо
#281 #994033
Здорова рубаны.
#282 #994988
>>992325

>eager_load


>получаю 2 запроса


Чего? Какие 2 запроса, если eager_load это версия с LEFT OUTER JOIN, делающая один запрос?

>мне нужны именно 10 строк сджойненой таблицы


>>992995
А ты чего несешь? То есть так кончено, но наоборот:
Table.joins(:model).limit(10)

>>991890
А при чем тут рельсы вообще и какая тебе визуализация нужна? Если ты про веб-морду, то используй. В базу пиши как удобнее.
995461
#283 #995461
>>994988

> где мне нужны именно 10 строк сджойненой таблицы


>Table.joins(:model).limit(10)



Просто охуительное решение.
64 Кб, 800x616
#284 #995704
Объясните мне, что такое ActiveModelSerializers и трейлблейзеровский Roar? Какой это паттерн? Я ничего не нагуглил про "репрезентеры". Чем они отличаются, что вообще делают.
(Я неоднократно работал с AMS и понимаю что делают оба гема, но не могу осмыслить их суть в архитектурном плане и к какому паттерну они относятся)
#285 #996493
Какой гем для стайлуса использовать:
https://rubygems.org/gems/stylus-source
https://rubygems.org/gems/stylus
* https://rubygems.org/gems/stylus_rails
Сасс категорически не нравится.
996813
#286 #996566
прогач, подскажи
Есть две модели Bitches - шлюхи, сосущие хуи и Сlients - клиенты у которых шлюхи хуйцы уже соснули.
Вывожу шлюх в bitch_controoler в виде списка, нужно что бы по нажатию на строчку, появлялся список клиентов шлюхи. У меня отношения стоят что у одной шлюхи может быть много клиентов(так криво сделал, но пока норм)
Идея только одна, вызывать client_controller, метод show, передавая в него id шлюхи и по id шлюхи делать выборку из Clients
996813
#287 #996813
>>996493
Во-первых, а почему гем в 2017? Вроде же в рельсу вебпак добавили. Весь фронт перекатился на js инфраструктуру, зачем эти приблуды?

>Сасс категорически не нравится


Блять... слов не хватает.

>>996566
resources :bitches do
resources clients, on: :member, only: :index
end

# GET /bitches/:bitch_id/clients

class ClientsController
def index
@clients = Client.where(bitch_id: params[:bitch_id])
end
end
996925
#288 #996925
>>996813

>Вебпак


Что это и с чем его едят? Я только начинаю изучать рельсы.
Что можешь посоветовать на счет стайлуса?
996990
#289 #996990
>>996925
Сам не знаю что это, какой-то новый сборщик в js мире, типа стандарт. И вроде как его добавили в новую рельсу. Чему я рад если это так, потому что весь этот ассетс пайплайн такой бред, что пиздец просто - чтобы прикрутить какую-нибудь фронтовую библиотеку, ее нужно специально адаптировать под рельсы.

По счет стилуса ничего не посоветую, третий раз в жизни о нем слышу и нахуй он нужен. Ты же не фронтовик, чтобы выбирать себе инструмент для достижения дзена, у тебя другие задачи, а в смежных областях лучше придерживаться мейнстрима.
996994
#290 #996994
>>996990

> чтобы прикрутить какую-нибудь фронтовую библиотеку, ее нужно специально адаптировать под рельсы.


Ты наркоман полный? Адаптировать это положить в assets/js и сделать include в манифесте?

Webpack в рамках рельсовых приложений тот еще бред. Сама парадигма разделения frontend/backend приложений (для целей коих и служит вебпак и прочие) подразумевает что не имеет смысла включать фронт в рельсы, это должно быть отдельное клиентское JS приложение.
997006997130
#291 #997006
>>996994

> Адаптировать это положить в assets/js и сделать include в манифесте?


Хуй знает что тебе ответить. Очевидно что ты и этого никогда не делал.

>Сама парадигма разделения frontend/backend приложений


>(для целей коих и служит вебпак и прочие)


Значение знаешь?
997129
#292 #997108
Сап, рубианон.

Подскажи, пожалуйста, как можно реализовать функционал нескольких профилей используя devise?

Например, есть пользователь Employer, и есть Jobseeker. Профили у них существенно разделяются. Что лучше сделать? Смотрел STI, но это говно какое-то.

Хочу, чтоб при регистрации выбирался тип пользователя, и от этого уже ему создавалось поле либо в таблице JobseekerInfo либо в EmployerInfo.

Подскажи, пожалуйста, я отчаиваюсь.
997130
#293 #997129
>>997006

>Хуй знает что тебе ответить. Очевидно что ты и этого никогда не делал.


Делал и сразу забил на это дело и разнес приложение на две раздельно живущие составляющие.

>Значение знаешь?


Козырнуть снобизмом не выйдет, мне похуй так-то.
#294 #997130
>>996994
у js есть тоже свой пакетный управляющий, как bundler у руби. с ним не нужно копипастить обновления js библиотек. ах да, у js библиотек тоже есть зависимости.

>>997108
примеры есть, инфа 100%.
я не помню, кажется я добавлял два маршрута для разных моделей.
но там есть какой-то метдо, типа
redirect_on_sign_in
или сгенирируй devise контроллеры и будет видно.
997133997139
#295 #997133
>>997130

>примеры есть, инфа 100%.



Если есть возможность - скинь пожалуйста. Очень важно, я правда искал, замахался уже.
#296 #997139
>>997130

>у js есть тоже свой пакетный управляющий


https://sheerdevelopment.com/posts/using-yarn-with-rails

И никаких вебпаков, интеграций с рельсами и прочего.
#297 #997390
Напомните как получить халявный студент-пак от гитхаба?
997641998568
#298 #997523
>>964778 (OP)
Имеется линукс и руби 2.1.5. Нужно обновить до 2.1.9. Как это сделать? Гугл молчит.
997596
#299 #997596
>>997523
rbenv/rvm
#300 #997641
>>997390
Отправить заявку тупой вопрос
998549
#301 #998170
>>974735

> сделают на стэке WP+JQ за две недели и 10к


ссылки на макак в студию, а то пиздишь ты походу
#302 #998172
>>974735

да и вообще если не пиздишь еще насчет полтоса, давай контакты, сработаемся
#303 #998549
>>997641
Я не студент уже...
998553998727
#304 #998553
>>998549
Исключили? Тогда скоро у тебя будет веселая, интересная, насыщенная жизнь. Научишься драить очки, познакомишься с горячими джигитами Дагой и Магой, которые помогут тебе расстаться с девственностью. Зачем какой-то гитхаб?
998568
#305 #998568
>>997390
Должно хватить фотки студбилета действительного. Найди кого-нибудь в ближайшем университете и попроси студенческий на минуту.

>>998553
После универа по-прежнему нужно в армию идти, военная кафедра в общем случае либо проплачена, либо отсутствует. У меня треть группы таких же затравленных заучек, считающих, что раз они круглыми сутками изучают бесполезные предметы, то и все остальные должны. Иначе "армия, собирать лужи в ведро, подтираться колючей проволокой" и прочие ехидные насмешки над теми, кого отчислили.
#306 #998678
Аноны, подскажите, есть данные модели, которые вывожу на экран в виде строк, при клике на строчку, нужно записывать в бд значение 1, которое говорит, что сообщение было просмотренно, что-то даже не пойму, как там че, вызывать?
#307 #998680
Как в rails принято обновлять отображение модели, при добавлении в модель новых данных, т.е. в бд что-то попадает, как сказать view что надо перерисоваться.
998729
#308 #998727
>>998549
В интернете найди фотографию студенческого билета и отфотошопь. Они сильно не рассматривают. Мне через 15 минут апрув пришел.
#309 #998729
>>998680
Action Cable
999230
#310 #998799
#311 #999230
>>998729
так, это новомодная хуйня или параша хипстерская?
999840
#312 #999840
>>999230
а в чем разница то?
1000202
49 Кб, 512x512
#313 #1000144
Просто оставлю это здесь.
1000146
272 Кб, 1920x1080
#314 #1000146
>>1000144
Идея неплохая, реализация не оч.
#315 #1000202
>>999840
сорян, тупанл. Имел в виду, как деды в рельсах вьюих обновляли, при изменении данных модели.
1000258
#316 #1000258
>>1000202
тебе для всех юзеров обновить в реалтайме надо или одному? если одному то аякс, если всем то всякие костыли типа ActionController::Live или вебсокеты
1000553
#317 #1000352
>>964778 (OP)
На чем поднять вебсокет сервер для существуещего рельсоприложения? Помню когда-то пользовался websocket-rails, впечатления не самые лучшие. На пятые рельсы переползать пока нет возможности, так что их встроенную приблуду не предлгайте.
1000356
#318 #1000356
>>1000352
Я бы взял faye-websocket он вроде позволяет прямо внутри рельсового процесса держать вебсокет-сервер. Сам я использовал только em-websocket и все было отлично, но он не обновлялся с 2014 и faye-websocket выглядит по-свежее.
14 Кб, 371x155
#319 #1000374
>>964778 (OP)

>https://netguru.co/blog/service-objects-in-rails-will-help - о сервисах


Меня эта статья пиздец напрягает. Во-первых, у него дохуя ненужного кода и рассуждений, а про сервисы не сказано почти ничего, даже определиться не может, как их вызывать. Сам я не так давно начал их к себе в приложение вводить, но уже сделал вывод, что нет смысла в initialize пихать что-то, кроме зависимостей через опциональное DI. Потому что в итоге получается одноразовый объект, для каждого нового сета данных его нужно создавать заново, вместо того, чтобы отдать этот сет данных в call() и не париться с инициализацией.
http://multithreaded.stitchfix.com/blog/2015/06/02/anatomy-of-service-objects-in-rails/
Тут написано гораздо лучше и нет лишней воды.
#320 #1000553
>>1000258
у юзера есть страница с сообщениями от приборов, приборы кладут в базу, я рельсой выбираю данные и формируют список сообщений, в общем пришло новое сообщение в БД, значит мне надо "наверное" постоянно мониторить БД на наличие новых сообщений или просто ее перерисовывать
#321 #1001334
Анон! Мечтаю начать прогнать, прогнать для андроида, не заработка ради, лишь для себя. Скажите, подойдёт ли руби для такого? Или же стоит смотреть в сторону ява/котлин?
#322 #1001351
>>979576
А зачем писать код, который ломается от добавления строки кода, м? single responsibility как бы. Имплементировал модуль, тестанул в сосноли или вручную, забыл.
#323 #1001359
>>979576

>А зачем он тестирует вручную, если можно написать автоматизированный тест,



Дешевле нанять Машку, чтобы вручную кликала, ты заебешься на каждый кейс писать тесты, да и дорого это.
1002440
#324 #1001377
>>1001351

>прогать

#325 #1001756
>>1001351

>Имплементировал модуль, тестанул в сосноли или вручную, забыл.


Запахло интернет-магазинами и перепилами редмайна.
#326 #1002440
>>1001351
Нормальный SOLID от TDD неотделим, без TDD все твои SRP отправляются прямиком нахуй. Если опыта нет, то нормальный код ты не напишешь. А если есть, то знаешь, что нормального поддерживаемого кода не бывает без тестов.

>>1001359
Машка выполняет работу компьютера раз за разом и от количества машек и тестов, которые они должны прогонять, цена их труда растет по экспоненте. И нет, труд человека никогда не будет дешевле компьютера, который тот же самый тест кейс прогоняет быстро, бесплатно и без ошибок.

QA - это профессия, которая существует только из-за ленивых непрофессиональных пидорасов-макак, типа тебя, которые даже блять! Не проверяют! Работу! Собственного! Кода! Вдумайся, пидорас, ты пишешь код и ты не знаешь, работает он или нет, не сломал ли он чего в системе. Какой ты нахуй программист, если то, что ты пишешь, не работает?
10024761002541
#327 #1002476
>>1002440

>Не проверяют! Работу! Собственного! Кода!


Диван, лол. Сам прграммист из-за замыленого взгляда и самолюбия творца не может беспрестрасно сломать и хакнуть свой код. Для деструктивной работы нужен специальный человек у которого задача ломать и проверять.

>Вдумайся, пидорас, ты пишешь код и ты не знаешь, работает он или нет, не сломал ли он чего в системе.


Диван х 2. Программист не думает в мастштабе всей системы и не может сразу телепатически сказать где чего отвалиось и какие подводные камни всплыли. Это отдельная задача следить за связаностью всей системы после написания кода в разных местах разными людьми.
1002480
#328 #1002480
>>1002476
Я хуй знает, проигрывать с дебила или принимать как должное и объяснять неопытному рельсоребенку на пальцах.

>самолюбия творца


Это самая блядская идея, которая особенно сильно проявляется в динамопараше, что якобы программист должен себя позиционировать не как software engineer, а как ТВАРЕЦ ГУМАНИТАРИЙ.

>сломать и хакнуть свой код


>писать тесты


Дядя, ты дебил?

>нужен специальный человек у которого задача ломать и проверять.


И этот человек, внезапно, не QA. QA ничего не ломает, у них задача подтвердить работу системы. Люди, которые берут систему предварительно как следует протестированную и готовую, вертят ее в попытках сломать и найти баги, с которыми может столкнуться пользователь, называются по-другому, и такое ручное "тестирование" вполне оправдано.

>не может сразу телепатически сказать где чего отвалиось и какие подводные камни всплыли


Для этого, хуесос, у тебя должны быть тесты. Которые ты прогоняешь одной консольной командой или хоткеем и сразу видишь, "где чего отвалилось".

>Это отдельная задача следить за связаностью всей системы после написания кода


Твоя ебаная задача - следить за работой своего быдлокода и за работой системы, которую ты написал/пишешь. Это не может быть чьей-то еще обязанностью, никто эту обязанность нормально выполнить не сможет, кроме программиста.
#329 #1002541
>>1002440

Наивный даун думает что писать тесты на фронт, под все 100500 версии браузеров дешевле чем нанять Машку. Иди нахуй писать тесты на свои абстрактные фасолины, подменщик понятий, ты мамкин.
10025541002618
#330 #1002554
>>1002541
Какие тесты на фронт, ебанутый? Я говорю про серверную логику, а не про "эта формочка отображается вот так, а в том браузере по-другому". UI в плане отображения вообще нет смысла тестировать, но это и должна быть одна из самых простых частей приложения, которая тупо парсит ответ сервера и расставляет его по местам на экране.
10025591002618
#331 #1002559
>>1002554

У тебя жирок изо всех щелей течет, иди подмойся, мань.
sage #332 #1002618
>>1002541
пишется один набор тестов и пускается из браузера.

как бы, раньше Машка: устанавливает дополнение к браузеру и пишет скрипты которые ей кликают и все делают.
сейчас наверное чет похожее по принципу.

>>1002554
это то, что люди видят.

ну и сейчас же это сложное дерьмо на тысячи строк js. там тоже самое, что и с серверной хуитой. тоже есть вью и модели и контроллеры. ток модели дергают данные с твоего http сервера, а не из субд.
правда, пока не знаю как эти react какахи тестировать.

тесты - часть работы, за них платят деньги.
1002625
#333 #1002625
>>1002618

>как эти react какахи тестировать.


Если там есть какая-то логика, которая не связана с отображением, то так же, как и везде. Выносишь логику - тестируешь логику. Другое дело, конечно, что 90% фронтенд JS параши - это еще больший спагетти-пиздец, чем рельсы. А уж сколько "программных творцов", которые про тесты с архитектурой и краем уха не слышали, охуеешь.
#334 #1005347
>>964778 (OP)
Пара вопросов от новичка.

1. Обязательно ли нужен Линух? Да, на Винде проблемы, но есть же всякие сайты типа c9.io, так что можно комфортно ебаться с рельсами прямо в облаке.
2. Поясните за mailer в рельсах.
Видеоуроки с рутрекера по запиливанию своего говносайта на рельсах рекомендуют устанавливать для подверждения регистрации по мылу какие-то сторонние гемы, которым нужно вводить номер банковской карты. Я не хочу вводить такие свои данные. What do?
3. Зачем нужен json? Я нихуя не понял.
10054541005700
#335 #1005454
>>1005347
Что за видеоуроки? Дай ссылку.
1005460
#336 #1005460
>>1005454
Вот это, если не ошибаюсь (я оптом дохуя всего скачал):
Udemy - The Complete Ruby on Rails Developer Course
https://rutracker.org/forum/viewtopic.php?t=5105361

Ещё просмотрел какой-то из Rails for Zombies - там тоже говорят, мол, устанавливай какие-то гемы, которые требуют платного аккаунта.
1005461
#337 #1005461
>>1005460
Дичь какая-то. Возьми Michael Hartl - Ruby on rails tutorial.
#338 #1005670
Аноны, подскажите, есть форма где задаются разные поля для поиска, дата, период и т.д. все эти параметры передаю через params. Соответственно, в зависимости от params надо писать разные запросы. Т.е. если номер есть, то один запрос, если его нет, то второй.
#339 #1005700
>>1005347
1. Если ты хочешь дальше продолжить работать с руби и созданием сайтов, то обязательно, на виндах никто не крутит сайты и точка.
Ты пишешь не только под какой-то язык, но и под платформу и линукс в том числе.
На винде можно поиграть и рельса даже как-то заработает, но всё это баловство будет работать пока ты модули какие-то сторонние не захочешь попробовать.

Другое дело, что линукс не обязательно себе на десктоп ставить, достаточно просто научить работать в виртуальной машине и командной строке и заодно избавиться от предубеждения о том, что линуксовая командная строка это типа ДОСОВСКОЕ окно из винды.
Кстати сходная ситуация с каким-нибудь питоном.
А C# как раз таки на винде лучше катит, так что если не можешь без винды жить, то го учить C#.

2. Сам пока не дошёл до этого)))

3. JSON нужен для того чтобы в индустрии был какой-то формат передачи данных между сервисами который будет понятен всем. Для этой же цели используется XML и просто текстовые файлы некого доморощенного формата. Один формат нужен для того, чтобы тебе не приходилось каждый раз писать синтаксический анализатор нового формата и чтобы ты сразу мог строить некую таблицу с ключами и значениями.

Ну вот как-то так примерно.
1006311
#340 #1006212
Тред не читал.
Привет шахтёрам из солнечного дотнета. Как себя чувствует экосистема раби? Есть ли работа? Есть ли фриланс? Работают ли стартапы с раби или она осталась только в легаси, которое не перекатилось на что-нибудь?
10062961006310
#341 #1006296
>>1006212
Всё есть.
Стало меньше, чем во времена хайпа, но найти можно.
1007364
#342 #1006310
>>1006212

>раби



Только Руби, а не раби.
#343 #1006311
>>1005700

C# и на Линукса работает, .NET Core епт.
1006458
#344 #1006458
>>1006311
Я про реальный мир говорю, а не какие-то экстремальные случаи типа mono с огрызками от МС (оно как бы работает, но поддержки на это не будет или только на каком-нибудь ушибленом по голове редхате).
#345 #1007364
>>1006296

>Стало меньше, чем во времена хайпа


В ДС!
Дефицит!
По всем уровням!

Охуительно меньше.
1007450
#346 #1007450
>>1007364
Ага, видимо поэтому я работу найти не могу уже 2 месяца.

3 года опыта, 1 проект в качестве лида
10074701008540
#347 #1007470
>>1007450
У тебя похоже в резюме что-то не так или еще какие-то проблемы. В начале года за 2 недели получил 4 оффера. 4 года опыта.
#348 #1007717
Завтра начинаю вкатываться в руби с нуля.
#349 #1007815
https://stackoverflow.com/questions/44612454/cant-install-rbsfml
На стаковерфлоу могут и не ответить, так что запощу ещё сюда с небольшой ремаркой. Я таки нагуглил один похожий вопрос, там было предложено возможное решение, я его попробовал применить, но это ни к чему не привело:
https://github.com/Groogy/rbSFML/issues/22
#350 #1008540
>>1007450
Поэтому наверное Gett ищет уже больше 7 месяцев, Wheely больше полугода, Поток открыл вакансии.
Инсейлс джуниоров ищет, Мили по прежнему ищут в свой финстартап.

Гарант, интерфакс, рамблер.

Не можешь найти потому что дурень видимо.
#351 #1008591
>>1008540
Так предлагайте бабос нормальный - найдете сразу же. Вечно рашкинские сео жалуются, что КАДРОВ НЕТ, а сами зп предлагают в 4 раза ниже рыночной
1008626
#352 #1008626
>>1008591
Нормальный это сколько (лиду с 3х летним опытом суммарно)?
1008628
#353 #1008628
>>1008626

>лид


>3х летним опытом


А раньше с тремя годами опыта и помидором-то не все соглашались считать.
10089481010395
24 Кб, 700x190
#354 #1008882
>>1008540
Если кто может не в курсе, на пике Инсейлс. Хотите попилить легаси-говно в таком курятнике? Юр а велком.

По поводу остальных:

>Gett ищет уже больше 7 месяцев, Wheely больше полугода


Видел только гетт где-то мелькнул один раз, приглашая вроде как на удаленку, виз перфект инглиш скилс.
Второго вообще не видел.

>Мили по прежнему ищут в свой финстартап. Поток открыл вакансии, интерфакс,


Не кажется странным что их вакансии уже чуть-ли не год висят? Учитель дурак или ученики плохие? Опять же везде доработка легаси, а в случае с интерфаксом так еще и каких-то гос-порталов.

>Гарант


Ну это вообще пушка.
#355 #1008908
>>1008882
Алсо за последнее время было только пара хороших вакансий - ведомости и шармер. Они закрыли их за 2 недели.
1008989
#356 #1008948
>>1008628

>Устраиваешься в контору с 3,5 инвалидами.


>Поздравляю, ты лид!

#357 #1008989
>>1008908
Не две недели. У ведомостей позиция открыта уже очень давно. Я к ним ходил еще в 2016.
>>1008882
Gett набирали в ДС с августа, в феврале в ДС приехала команда из зарубежа и начали интервьюировать самостоятельно.

Мили - у них новый проект с веб2.0, года там точно нет.

У интерфакса не госпортал.
10089941009158
#358 #1008994
>>1008989
Ну не надо путать "очень давно открыта" и "была вакансия в 2016". Я тоже помню, что в 2016 они искали рубиста. И тоже это было что-то около нескольких недель. А чего не пошел, отказали?

По поводу гетт не знаю. Но они ищут через хрюш почему-то (мне рассылка падает от хрюш). Блять, хотел бы к ним попроситься, если бы не ебаный английский.
Мили сейчас конкретно не висят, но я помню они очень долго искали.
А у интерфакса я сам был на собесе, так что не рассказывай.
1008998
#359 #1008998
>>1008994

>А чего не пошел, отказали?


Нет, просто они тянули долго с ответом.
#360 #1009158
>>1008540
>>1008882
>>1008989
О, анонимусы, вы похоже разбираетесь в рынке труда. Скажите, какие есть сейчас интересные вакансии? Вот я открывал хедхантер, видел в частности те про которые вы пишите, но они достаточно унылые все, потому что сводятся к поддержке и рефакторингу. Кто занимается созданием? Или кто занимается большими системами? Вот все хотят хайлоад(тм), а где его брать-то?
10091671009587
15 Кб, 678x635
#361 #1009167
>>1009158

>Или кто занимается большими системами? Вот все хотят хайлоад(тм), а где его брать-то?

1009205
#362 #1009205
>>1009167
PHP и Python надо в ЭНТЕРПРАЙЗ переносить
1009211
#363 #1009209
для рельсов чего брать, angular или react? А то эти js фреймворки успеваются появиться раньше чем я и их изучаю
87 Кб, 1252x823
#364 #1009211
>>1009205
Вот и тексты вакансий кагбэ намекают, всем нам.
#365 #1009240
>>1009209

>Angular - 2009


>React - 2013


Долго же ты изучаешь.
1009323
#366 #1009247
>>1009209

> для рельсов чего брать, angular или react? А то эти js фреймворки успеваются появиться раньше чем я и их изучаю


Разве выбор фронта зависит от того, что у тебя на бэке? Я на vue.js делаю.
1009659
#367 #1009323
>>1009240
я на си++ за деньги пишу с 2009, мне до этих фреймворков всю жизнь как до луны было, вот последние три года параллельно в веб вкатываются
#368 #1009341
>>1009209
В рельсах же какое-то свое говно для фронта?
HAML вместо HTML, SASS вместо CSS, CoffeeScript вместо JavaScript. Все не как у людей.
1009344
#369 #1009344
>>1009341
да не, это просто шаблонизаторы, тот же jade php это заимствованый slim из рельс.
Учатся за пару дней, кофескрипт по желанию.
#370 #1009587
>>1009158
Мили пилят банковский продукт с нуля.
1009676
#371 #1009659
>>1009247
JQUERY и всякая хуета из бутстрап
54 Кб, 754x503
#372 #1009676
>>1009587
Че за мили? Нагуглились какие микрозаймы, в вакансиях у них ничего нет.

А вот еще вопрос, какой адекватный уровень зп в ДС для мидла-сеньора?
10096781009696
#374 #1009696
>>1009676

>Че за мили? Нагуглились какие микрозаймы, в вакансиях у них ничего нет.


Веб2.0 это они же.

>А вот еще вопрос, какой адекватный уровень зп в ДС для мидла-сеньора?


Смотря что ты вкладываешь в понятие "мидл сеньор".
10102851010286
#375 #1009826
Котаны, как можно реорганизовать вот этот код → https://pastebin.com/L2jA0nGp

Собственно у меня есть набор переменных которые нужно сохранять в файлы и загружать из них, но я тупенький и у меня не хватает мозгов понять как можно всё это через итератор организовать, а очень хочется отдраить этот код, потому что файлов будет больше.

Затруднения у меня вызывает непонимание того как увязать имя переменной с именем файла в каком-нибудь ассоциативном массиве или хеше, особенно в случае load, когда в переменную надо загружать данные из файла.
1010230
4 Кб, 522x136
#376 #1010181
Можно как-то изменить длину уже запущенного цикла изнутри цикла?
Не запускать while/until/step и рвать его по условию, а именно запустить цикл от одного числа до другого, а потом в процессе второе число подкрутить?
Исключительно из эстетических соображений интересуюсь.
1010188
#377 #1010188
>>1010181
Из эстетических соображений тут и нужен «while»-цикл.
1010205
12 Кб, 293x494
#378 #1010205
>>1010188
Сразу вдогонку, из эстетических соображений, какой из вариантов оставить? выкинуть оба нахуй
10102361013741
#380 #1010236
>>1010205
max = get_page(1)
something

2.upto(max).each do |iteration|
rape_all_the_babies(get_page(iteration))
end
1010378
#381 #1010285
>>1009696

>Смотря что ты вкладываешь в понятие "мидл сеньор".


Давай без вот этих виляний хвостом.
Какая нормальная зарплата для специалиста с опытом коммерческой разарботки несколько лет?
1010388
#382 #1010286
>>1009696
Проект3.0 что ли?
Какие-то они мутные, у них даже сайта нет.
1010393
#383 #1010315
>>1010230
Оу, вот это прикольно на самом деле, спасибо!
#384 #1010378
>>1010236
Ты по первой странице rape_all_the_babies забыл долбануть.
Забей, там на деле чуть больше строк, и повторять кусок кода отдельно перед циклом вообще не прикольно получается. И в функцию он не выносится нормально, нужно несколько параметров передавать, несколько значений возвращать, только больше навала получается. Но всё равно спасибо.
#385 #1010388
>>1010285
Я видел имбецилов которые имели опыт в 5 лет и стояли на позиции тимлида, и новичков которые умели строить адекватную архитектуру.

Сейчас в ДС middle может пойти где-то на 140-150, нормальный senior с зачатками лида найдет 180-200к. Нормальный лид который еще не ушел в управление - 250k.
10103951013642
#386 #1010393
>>1010286
Ну мутные или нет - но деньги есть. Пусть сами по себе они и жадные довольно.
#387 #1010395
>>1010388
Тимлид не обязательно сеньор, заебал мягкое с теплым путать. И ты тоже >>1008628
1010447
#388 #1010447
>>1010395

>что ты вкладываешь в понятие сеньор


>заебал вилять хвостом


>заебал путать мягкое с теплым



Определение дашь, просветленный?
#389 #1010749
Зачем вы ишите работу в россии? можно ремоутом дохуя куда устроиться
10107611010800
#390 #1010761
>>1010749
На ремоут нужно английский знать.
1010767
#391 #1010767
>>1010761
Ну а в чем проблема то? документацию к хуйнянейм ты как читаешь? а конферецнции/cтатьи ?
1010771
#392 #1010771
>>1010767
чукча - не писатель, чукча - читатель
#393 #1010800
>>1010749
Фриланс?
Долго строить портфолио и доказывать опыт, фактически с нуля.
Работа из дома это не работа, я для себя понял. Слишком много отвлекающих факторов.
Много геморроя с налоговой, которая доебется до источников дохода из-за рубежа.

А вот с релокейтом я бы куда-нибудь перекатился.
10112081011219
#394 #1011208
>>1010800
Сам себя убедил в невозможности, кек.
Я на удаленке работаю уже полгода 30 часов в неделю, выходит 2к$ в месяц. С налоговой пока все в порядке, работаю легально через ИП. Вся прелесть в том что, я работаю на постоянной работе, но через Upwork, в итоге профиль нехило раскачивается.
10112191011234
#395 #1011219
>>1010800
>>1011208
Ну по хорошему оно у тебя всегда должно быть. даже если ты работаешь в конторе. что то на гитхабе и пара отзывов на линкедине я думаю сойдут.
Я спокойной работаю из дома уже 1.4 года. По 5 часов каждый день. никаих проблем нет.
Про налоговую мне какжеться это байки с двача. мне работо датель просто закидывет на пейонер около 2к долларов каждый месяц. никакой налоговой нет.

ну и как сказал анон выше Ремоут > фриланс
#396 #1011234
>>1011208

>работаю легально через ИП


>upwork



Каким образом твое ИП имеет вес для компании работающей в другой стране?

>Я спокойной работаю из дома уже 1.4 года. По 5 часов каждый день. никаих проблем нет.


Я попробовал несколько месяцев и понял что удаленка не для меня. Периодически по надобности бывают потребности поработать из дома, но не более.
1011376
#397 #1011376
>>1011234
Я работаю через Upwork на постоянке, для компании нет никакого дела есть у меня ИП или нет - они просто закидывают деньги на мой счет в upwork'e дальше я уже сам ебусь с их выводом, ИП зарегал, чтобы налоговая не взяла меня за жопу о том, откуда у меня деньги. Я живу в регионе, где действуют налоговые льготы - 0% первые 3 года.
1013430
#398 #1013223
Портирую полезную либу под кристал.

Бл#, мне с даже больше нравится... Что со мной не так???
#399 #1013415
Посоны, помогите.
Что надо делать в этой ситуации?

>Could not find rake-10.4.2 in any of the sources


Run bundle install to install missing gems.

Если можно - по шагам.

мимо-js-пидор
1013431
#400 #1013430
>>1011376
bundle install в папке с gemfile
#401 #1013431
>>1013415
А потом УСН будешь делать или как?
#402 #1013635
>>966926

> не прочитал до конца нет одной книги. Коллеги постоянно добываются, что я апдейт не делаю, а делать промывание атрибутов модели и сейв.


Разве нужно читать книги, чтобы понять, что если действие можно выполнить за одну команду, то выполнять его за две - это неправильно?
#403 #1013638
>>967401

> зато каждый апдейт рубокопа (обновление последней версии которого еще и в gitlab-ci прописано ) за всю кодовую базу садится сеньор и начинает заменять одни скобочки на другие.


Может пора сменить упороту тиму на нормальную?
#404 #1013642
>>1010388
пиздец, зашёл в руби-тред и расстроился. работаю за 1к баксов (милионник), зато интересно. до этого было 1.6к евро, но очень скучно. а бывает чтоб интересно и нормально платили?
10137901013875
#405 #1013741
>>1010205
Что это за редактор?
#406 #1013790
>>1013642

> а бывает чтоб интересно и нормально платили?


Бывает, но ответственности больше, как и компетенций.
#407 #1013875
>>1013642
Ох, анончик. У меня тоже беда с этим.
Почему-то кругом одни вакансии с развитием каких-то старых проектов ("развитие" == поддержка на языке вакансий) со стеком рельсы + реляционка.
А так хочется просто работать и делать новые проекты. Я что, многого прошу? Кто-то может не хочет работать, а я хочу. А нету. Ну почему, почему, блять?
#408 #1014138
Хочу захостить на своём компе одностраничный сайт для другого устройства в локали. Ткните пожалуйста нуба мордой, в какую сторону гуглить. БЕЗ рельсов, ибо это оверкил дикий будет.

Уже есть опенсервер с пихой, там это дело пяти секунд, но хотелось бы на руби, если это не требует каких-то запредельных усилий.
10141471014532
#409 #1014147
>>1014138
hanami, sinatra
1014186
#410 #1014186
>>1014147
Спасибо.
#411 #1014223
Аноны, мне пиздец.
Прощайте.
10142271014259
27 Кб, 450x332
#412 #1014227
>>1014223
Что случилось?
1014317
105 Кб, 1205x549
#413 #1014259
>>1014223
пили прохладную
1014317
#414 #1014317
>>1014227
>>1014259
Считайте, что я ушел поддерживать интернет-магазин автозапчастей "ИП Шарыгин". То что это билет в один конец, думаю догадываетесь.
1014346
#415 #1014346
>>1014317
в чем проблема, перепиши все на es6 и новые рельсы, потом не стыдно будет показывать
#416 #1014532
>>1014138
jekyll
#417 #1014591
Ребят я чувствую себя Мидлом. Неплохо знаю реакт редукс. совсем капельку машил лернинга. имею очень хорошии рекомендации на линкедине и апворке. на гитхабе у меня лежит имлпементация фид форвард нейросети и веб приложуха на реакте и синатре к ней. Английский у меня неплохой. вышки нет и нет оффициального трудоустройства от слова вообще. каковы мои шансы на имиграцю отсуда нахуй? если тут успешные аноны которые получили супорт визы?
1014733
#418 #1014733
>>1014591
Тебе лишь бы в countryname, но не в Rashke? Может достаточно город РФ поменять? Свои проблемы переездом не решить, везде есть свои заморочки. Обдумывание свалинга вообще стоит начинать не с вопроса "куда я хочу" (если ты не гениальный специалист уровня мыщъха), а с вопроса "кому я там нужен". Найдётся ответ (работодатель) - отлично, можно приступать к решению задачи. Просто свалить из РФ ради сваливания - не цель, жить везде можно и неплохо. Сначала хоть в туристическую поездку в несезон съезди - может сразу выбор по климату сузится, в Европе зимы весьма противные, мне мои (Челябинские) сухие -30 больше устраивают, чем Венгерские -10. Жевание газа и сопли в лужах "каковы мои шансы..." = 100% никуда не поедешь. При этом надо знать куда именно валить, почему именно туда. А не "отсюда". Тебе может фрилансом заняться? Работать без территориальной привязки по удалёнке и всё. И вся Земля перед тобой. В любую жопу уехал и клепай заказы. Там по ходу дела и оценишь, где стоит пускать корни.
1014743
#419 #1014743
>>1014733
ну понятное дело что не в пакистан. Климат не так важен. сейчас я присматриваюсь к польше и чехии. И вакансии есть и климат под меня. Почему свалить из рф ради сваливания не цель? не хочу ташить суда политоту но, я просто не хочу жить в стране в которой нет базовых коституционных свобод, и полицейский скорее всего мой враг. я сейчас на фрилансе, но мне кажеться максимум что я на свои 1500$ потяну это тайланд потому что я с тянкой.
10148361014942
#420 #1014836
>>1014743
Насколько я знаю, в Польше есть тонкости вроде языка, налогов, полицейских-взяточников даже в Польше, касательно Чехии на двоих 70к крон нормально, на этом знания кончаются и я в ридонли, попробуй параллельно и асинхронно потусоваться в 2ch.hk/em/res/384254.html и 2ch.hk/em/res/387355.html
1014839
#421 #1014839
>>1014836
Спасибо анон!
#422 #1014942
>>1014743

>полицейский скорее всего мой враг


У тебя был прецедент или пиздишь сходу вхолостую?
1014955
#423 #1014955
>>1014942
Дохуя было. из последнего от чего я просто ахуел. Хотел себе на киви закинуть 3 куска. И черт меня дернул закинуть не там где я это всегда делаю а в каком то левом магазине. Такого открытого наеба я ещё никогда не видел. Фейковый автомат киви. но юай и внешка 1 в 1. все минус 5к. вот тут у чувака такая же история, собственно нашел его по тому что у нас в чеках ИП совпадает. https://dublikat.one/threads/razvod-terminal-oplaty.63191/ .после того как я написал заяву в ментуру. началось . участковый просто начал меня мурыжить. 5 дней мне перезванивал ! и спрашивал не дошли ли деньги. я вежливо ему отвечал мол нет, и не дойдут. потом он сказал мол они ему чек дали. Прислал мне фотку этого чека. я ему в ответочку принес выписку из банка мол нихуя. ну и он начал гаситься какое то время. постояно обещал перезвонить и нихуя не перезванивал. ну и потом мне просто сказл что нихуя не выйдет у тебя друг, на резоный вопрос почему он начал воду лить. и тут конечно я ахуел. очевидно что этот чувак их крышует. потому что
1. всем похуй что на этом автомате лого киви и юай киви. как так нахуй?
2. Ну я не детектив и могу понять когда не ловят кого то за мошеничество в интернете. но у тебя сука автомат стоит. ИП стоит, какие могут быть проблемы?

У меня досих пор горит с этой ситуации. Надо бы конечно продолжить их ебать из принципа и писать в прокуратуру но бля это столько времени занимает я ебу. Да и я не против развестись по умному но так это ну пиздец же.
из другого другу мент пытался подкинуть гаш. хорошо 3ий друг снимал
#424 #1014957
>>964778 (OP)
что там на рубях сейчас пишут?
10149581015062
#425 #1014958
>>1014957
Веб Приложения
#426 #1015062
>>1014957
Все что угодно.
У нас банк на рубях.
1015210
#427 #1015210
>>1015062
Рокетбанк?
1015304
#428 #1015304
>>1015210
Йеп
1015331
#429 #1015331
>>1015304
Думал к вам попробовать устроиться (нравится идея попилить банк и заодно узнать кухню изнутри), не поделишься немного инсайдом? Есть ли овертаймы, как команда (напрягает, что вакансии постоянно висят одни и те же, хотя может просто никто не обновляет страницу), может ли помидор рассчитывать на 200-250к?
1015346
#430 #1015346
>>1015331

>Есть ли овертаймы


Если поджаривает время - считай есть.

>как команда (напрягает, что вакансии постоянно висят одни и те же, хотя может просто никто не обновляет страницу)


Команда большая, но много подпроектов. Каждый своим занимается.
Вакансий много потому что идет массовое расширение, куча нового делается.

>может ли помидор рассчитывать на 200-250к?


В теории наверное может.
1015419
#431 #1015419
>>1015346
Никитушка?
Ты слабоумный хипстоблядок. И офис ваш говно и банк ваш говно.

>Команда большая


4 человека блять? Или ты всяких пезд-менеджеров под командой понимаешь.
1015824
#432 #1015824
>>1015419

>Никитушка?


Мимо

>4 человека блять


15 человек на бэке, плюс человек 10-12 фронта. И будет больше.
1015928
8 Кб, 159x200
#433 #1015863

>15 человек на бэке, плюс человек 10-12 фронта

#434 #1015878
Правда что в руби все объекты и все выражения? Ищу язык максимально похожий на лисп. JS наиболее близок к лиспу, но экосистема удручает.
#435 #1015880
Как в руби с асинхронностью?
1015902
#436 #1015902
>>1015880
cpu-bound синхронен, без параллелизации
io-bound асинхронен, параллелизируется
#437 #1015928
>>1015824

>Мимо


А то что он слабоумный хипстоблядок согласен? Или у вас там все такие?
1015935
#438 #1015935
>>1015928

>Или у вас там все такие?


Все. Поэтому видимо тебя и послали нахуй.
432 Кб, 813x424
#439 #1016272
Посоны, а расскажите, какие "необычные" вещи/практики вы знаете в рубях (ну или в рельсах тоже)?

Я, например, узнал, что оказывается в рубях есть множества http://ruby-doc.org/stdlib-2.4.1/libdoc/set/rdoc/Set.html:

>s1 = Set.new [1, 2] # -> #<Set: {1, 2}>


>s2 = [1, 2].to_set # -> #<Set: {1, 2}>


>s1 == s2 # -> true


Прикольно, потому что может пригодиться в случае если нам нужно отсутствие упорядоченности и еще сеты контролируют уникальность.

А вот другой любопытный пример. Flip Flop Operator:

>5.times do |i|


> print i if (i==2)..(i==4)


>end


># => 234


Оператор создает набор условий и хранит состояние ? и работает так: возвращает true c того момента как встретит первое условие и до того, как встретит второе.
На самом деле может быть более полезен:

>lines.each do |line|


> puts line if line =~ /^from/ .. line =~ /^to/


>end

10163011022238
#440 #1016301
>>1016272

Скажем, для разрежённого массива позволяю себе писать:

elem&.method

Вместо

elem.method if elem
#441 #1017072
Сап, аноны.
Есть некий скрипт на Ruby, есть ли способ собрать все зависимости в один файл так, чтобы на другой машине скрипт запустился, не требуя скачивания дополнительных пакетов?
1017159
#442 #1017159
>>1017072
На ум приходит Docker и виртуалка.
Но тебе наверное надо все гемы, можно конечно сказать, что у тебя тебя какая-то задача неправильная, но проблема интересная в некотором роде.

Можно погрепать код на предмет всех require'ов и с этим списком вытянуть гемы через gem fetch (или просто вытащить уже скачанные из директории с гемами) и потом грузить как-нибудь через require_relative.
1017165
#443 #1017165
>>1017159
Надо что-то вроде такого в итоге получить https://github.com/SYWorks/waidps
#444 #1017490
Хочу освоить данный яп, какую книгу почитать, если я уже знаю основы другого яп(java)?
#445 #1017492
>>989008
Потому-что оно памяти жрет просто охуеть. JVM сама по себе довольно прожорлива, а с уровнем абстракции как у руби - это лютейший пиздец.
1017776
#446 #1017776
>>1017492
Старые байки о главном. Долбоебы квотируют все подряд не задумываясь что такое холодный старт и почему у не-jvm рост памяти прогрессирующий.
10179221017957
#447 #1017922
>>1017776
Расскажи подробнее

мимо
1018416
#448 #1017957
>>1017776
высунь голову из манямирка и не пытайся обернуть говно фантиком. если ты на самых банальных задачах выжираешь в десятки раз больше других решений(включая JVM-экосистему) - тут становится все просто: бери свое поделие и катись нахуй, всем будет насрать на твои росты памяти и старты, инфа 100 и так оно и происходит. если бы это не было байкой, то этот ваш jruby таки хоть кто-то использовал. а так это просто игрушка для эксперементов и некритичной скриптопараши. вакансий почти нет, известных пользователей тоже.
#449 #1018256
>>1017957
https://github.com/jruby/jruby/wiki/SuccessStories
JRuby юзают в коммерческих проектах и вообще
до сих пор пилят и не забросили.
Основные причины: получить удобство рельсы и
поддержку уникальных java-библиотек и java-legacy.
С памятью там всё нормально (не идеально, но вполне нормально).
#450 #1018278
Помню последние бенчмарки, там torquebox ебал все рубишные стеки.
1018410
#451 #1018324
>>1017957
Сейчас бы слушать советы от человека который в бою не видел системы с нагрузкой больше 100 rps.
#452 #1018406
>>1017957

>то этот ваш jruby таки хоть кто-то использовал.



Тащемта, всё оперативное планирование и контроль высокоскоростного движения в РЖД (считай, вся служба Д и околовертящиеся, нет, конечно Гид-Урал и Сетунь еще не похоронили, но...). Ну и в метро МСК кое-где (как минимум в службе Э).
1022241
#453 #1018410
>>1018278

>return Response.new(status: 200, body: {}.to_json)


>ебет всё

#454 #1018416
>>1017922
О чем поподробнее? Говнометания на Jruby и Java в целом идут из-за того что она долго и муторно разогревается, сразу алокейтя кучу пространства. О чем ньюфаги не знают, это то, что разогнавшись машина ебет все интерпретируемое говно взашей, при этом имеет адекватные alloc-и, нормальный gc, который не блокирует мир, нормальные треды, которые не зависят от потоков операционной системы, не лимитированы по GIL в cpu-bound и где нет танцев с бубном по thread safety. Плюс к этому они получают доступ к использованию почти любого Java окружения.
1018798
#455 #1018492
Держите пацаны не самый свежий, но вроде как толковый подгон с лепры: http://rubyschool.us/
1018719
#456 #1018719
>>1018492
Видио по два чиса, эта же с ума сайти можна. Просче доку перичитать.
#457 #1018744
fseek(file, 0, SEEK_END);
size = ftell(file);
fseek(file, 0, SEEK_SET);
buf = (char )malloc(size);
fread(buf, 1, size, file);
fclose(file);
fileSize = size;
return buf;
Как перевести этот Си-код на руби?
#458 #1018798
>>1018416
С каких это пор оно не блокирует мир? Почти все интерпритации JVM делают остановку мира, кроме платного Azul.
Она ебет, только если пользоваться непосредственно жабой, скалой или котлином и зная как. Запуская там скриптовые хреновины типа жруби, нэшхорнов, итд оверхед будет слишком велик.
1018872
#459 #1018872
>>1018798
Какая разница что запускать на JVM. Там же единый байт код. Все языки в этот байт код компилятся.
#460 #1020331
как/где храните sql stored procedures?

т.е. хотелось бы что бы rails db:create, db:reset подгружал и процедуры.
10203321020341
sage #461 #1020332
>>1020331
вопрос про rails.
sage #462 #1020341
>>1020331
вопрос снят. rails db:reset запустить миграции. я почему-то думал, что используется schema dump.
т.е. добавлю процедуры миграциями.
89 Кб, 232x602
#463 #1020477
Рубанасы, поясните за AA.

Имеется код index'a для AA.
column :screenshots do |object|
object.screenshots.each do |shot|
span do
image_tag shot.screenshot_img.thumb
end
end
end

Какого-то хуя результатом его является пик.
Поясните, где я мудак?
10204781020818
#464 #1020478
>>1020477
отклеилось
Столбец "Screenshots"
#465 #1020818
>>1020477
в вьюхе ты накосячил.
проверь все открытия тегов <% и <%=, обычно когда путают эти теги такая хня
10208201020993
#466 #1020820
>>1020818
короче думаю ты <%= screensots.each do |screenshot| %> вместо <% screensots.each do |screenshot| %> хуйнул, и он тебе высрал жсон с screensots
1020993
#467 #1020993
>>1020818
>>1020820
Да, но нет. Как я писал - я юзаю ActiveAdmin.

ActiveAdmin.register News do
index do
column :screenshots do |object|
object.screenshots.each do |shot|
span do
image_tag shot.screenshot_img.thumb
end
end
end
end
end

P.S: и если бы я хуйнул <%= в ERB, то картинок бы не выводилось.
#468 #1021053
Наверное строку «image_tag shot.screenshot_img.thumb» надо в равно обернуть, а остальные немыми сделать, вот и всё.
10210581021060
149 Кб, 504x744
#469 #1021058
>>1021053
Наверное надо перестать ебстись в глаза и прочитать, что используется ActiveAdmin.
10210731021077
43 Кб, 1644x131
#470 #1021060
>>1021053
Анус себе оберни, пёс
1021073
#471 #1021073
>>1021058
>>1021060
Ну ты решил-то проблему?
10213901021448
#472 #1021077
>>1021058
Лол, так тебе про .html.erb народ говорит в котором вьюха рендерится?
Ясен пень, что просто поставив знак равно вначале строки интерпретатор назовёт тебя бакланом.
1021390
#473 #1021390
>>1021073
Не, сегодня еб мозг с геокодером.
>>1021077
Так я им о том же. Не использую кастомы в АА нигде кроме форм, да и там сразу на slim их рисую.
#474 #1021448
>>1021073
захуярил вот так

column :screenshots do |object|
object.screenshots.each do |shot|
span img(src: shot.screenshot_img.thumb)
end
nil
end

Короче span просто выводит span, a column принимает блок и выводит результат его выполнения, а результат его выполнения - массив скриншотов, а если в конце добавить nil это получается return nil.

Сука вообще конечно пиздец.
1021699
#475 #1021699
>>1021448
Пили ссылку на гитхаб, непонятно чё там у тебя, нигер ты черномазый.
1021720
#476 #1021720
>>1021699
да всё уже и сам сделал, пока тебя дождешься...
#477 #1021983
Почему у меня при вызвое File.write(name, string) все файлы создаются с флагом executable и как это убрать?
1022027
#478 #1022027
>>1021983
Кажется понял, файловая система msdoc и тут таких флагов вообще нет. Смутил файловый менеждер минта, который отображает это флаг в свойсвтвах файла.
23 Кб, 558x562
#479 #1022238
>>1016272
А я продолжаю открывать для себя всем известные вещи.
Оказывается в рубях есть catch и throw.
https://ruby-doc.org/core-2.4.1/Kernel.html#method-i-catch
1023857
#480 #1022241
>>1018406
Откуда там вообще руби?
Алсо, анончик, запили кулстори что-ли, ты видимо работаешь там? как в госконторе работается?
#481 #1022248
И еще, посоветуйте что-нибудь простое и понятное по рспеку. Я его сразу не вкурил и продолжил пользоваться минитестом. Потом еще делал подход, опять обилие dsl-магии меня отпугнуло. Но все-таки хочу на него перекатиться. Доки какие-то уебанские, хочется простой обзор, как им правильно пользоваться-то.
1023891
#482 #1023857
>>1022238
ну охуеть, а break if не канает уже?
10238921024590
#483 #1023891
>>1022248
Посмотреть примеры не судьба? В любом проекте рспек.
#484 #1023892
>>1023857
Это не break, а continuation.

По факту это просто усложненная версия Fiber-ов.
10240311024590
#485 #1024031
>>1023892
а вот нахуй оно всралось?
в посудно-бытовых задач имхо не применяется
1024590
#486 #1024431
Сап, ребята.
Подскажите плс по следующему вопросу.
Чуть меньше месяца вкатываюсь в руби. Знаю, понятное дело, самые основы пока что.
Тем не менее, у меня цель как можно скорее начать на этом хотя бы что-то зарабатывать, а для этого, как я понял, нужно переходить к рельсам.
Собственно вопрос: насколько надо знать руби, чтобы начинать вливаться в рельсы?

Спасибо!
10245931024595
#487 #1024590
>>1023857
>>1023892
Вы про что? Что это такое?
Вообще это инструмент для флоу-контрол, очень похожий на выброс исключений, просто с другой семантикой.

>>1024031
В пятой рельсе колбеки теперь не через return false останавливаются, а через throw :abort.
1024706
#488 #1024593
>>1024431
Да можно толком и не знать. С рельсами совсем другая проблема - их нужно учить. Я бы даже сказал зубрить. Потому что все сплошь на соглашениях и шагу без них не ступишь - приходится искать и читать, как делается элементарная хуйня.
#489 #1024595
>>1024431

Беги извлекать и сортировать числа из файлов по 40 гигабайтов, кек.

Другими словами, ломись в конторы и делай тестовые задания, какими уебищными бы они не были.

По ходу дела освоишь как руби, так и рельсу.
1024905
#490 #1024706
>>1024590
Мы про kernel, рельсоеб ты дремучий
1025260
#491 #1024795
Аноны, вот нахуярил проект на тестовом сервере, но что-то медленно, если его сделать как продакшн, быстрей будет?
#492 #1024905
>>1024595
отсылка в фанбоксу?
1025260
#493 #1025260
>>1024706
Да вы сами не знаете про что вы.

>>1024905
Он типа крут? Расскажи если в курсе, пожалуйста.
#494 #1025801
Пока Антон жалуется на упорото-упорных хрюш в своем свитторе, смотрел видосики. Нашел, такой

https://www.youtube.com/watch?v=ChxDqYVIYzw

Поржал с обсуждения вопросиков про лямбду и проки. Поцаны каждый день этими знаниями пользуются.

Анончик, а ты хоть раз использовал отличия лямдбы от прока? Можешь не отвечать, я знаю, что нет тот единственный раз не считается.
#495 #1025813
>>1025801
юзал в монгоид
#496 #1025996
>>1025801

>а ты хоть раз использовал отличия лямдбы от прока?


Постоянно.

Если отбросить более удобную работу с проками в тех же скоупах AR, проки постоянно используются в сервисах.
1025999
#497 #1025999
>>1025996

И что же ты использовал, синтаксический сахар для объявления любого кол-ва переменных? Это несерьезно и решается через одну строчку типа a,b,c = *params.

Или может различия в поведении на ретурн? Хуевое у тебя ооп тогда получается, очень хуевое. Ломать инкапсуляцию и менять логику в инкапсулированном методе-адресанте - это пиздец такое поддерживать.

Добавил return и потом на весь садик: `Мама, мама у меня сломались каллбеки!1!!! Что делать?!?`
1026260
#498 #1026059
>>1025801
Там ему сразу вопрос задали "вы сами на собеседовании давно были?". Мне кажется вся суть.
Но мне больше пригорает с другого, что вот такие вот собеседователи ищут себе скиловых чуваков, вместо джунов (которые бы были благодарны и развивались), а потом отправляют их на круды, где это все не нужно и люди там тухнут.
А потом он еще не доволен, что убив два года на "вырабатываение задач в джире" чувак не может ему про продукт рассказать. Епт, блять, да за два года такой зомби-работы не то что про продукт не расскажешь, а вспомнить не сможешь, что ты там вообще делал.
1026101
#499 #1026101
>>1026059
Предполагается что ты сначала на PHP попишешь года два в офисе, выучишь паттерны и потом руби за недельку и рельсы за месяц. И всё это во время работы в своей конторе. Там же ты должен поднять какой-нибудь побочный проект и в течении года-двух его разрабатывать и поддерживать.
После чего этого (через год-два) можешь робко смотреть на вакансии джунов в руби конторы.
А так никаких руби-джунов не подразумевается обычно.
20 Кб, 956x155
21 Кб, 771x230
#500 #1026168
Сап, пацантрэ.
Вкатываюсь в рельсы. Учусь на программема, сейчас проходит летняя практика. По знакомствам нашел практику в одной маленькой конторе. Руководитель практики сказал, что ему в принципе похеру на меня, но если хочу что-то сделать, то нужно сделать веб-приложение. И дал на выбор пару тем. Делаю приложение для городских игор (Типа бегаешь по городу, выполняешь задания).
Возникла проблема:
Есть 2 модели : Игры и блок игры.
Т.е. игра содержит несколько блоков, соответственно связь belongs_to.
C созданием игры все ок, но когда хочу прикрутить добавление блоков сразу при создании игры возникает пролбема (пик 2).
Контроллер для создания блока игры (пик 1)
1026262
#501 #1026260
>>1025999
Я хуй знает что ты лепишь, но слез бы ты со своей лошади и прекратил понты кидать.
1026267
#502 #1026262
>>1026168
nested models
#503 #1026267
>>1026260

Какие понты? Тебя спросили как ты используешь отличия, на что был вскукарекек про проки в скоупах. Ты бы хоть доки посмотрел сначала актив рекордские, в них лямды используют.

Так что раз уж начал спорить с тем что проки (не лямбды) используются повсеместно, давай валидные кейсы их использования или слейся по-тихому.
#504 #1026269
Открываешь

http://guides.rubyonrails.org/active_record_querying.html

И смотришь, в документации используется -> (lambda)

И 0 совпадений по proc или Proc.new

Гуглишь proc vs lambda и находишь статьи где упоминают, что процы не рекомендуют использовать.

http://batsov.com/articles/2014/02/04/the-elements-of-style-in-ruby-number-12-proc-vs-proc-dot-new/

> By the way, given proc’s fairly counter-intuitive behavior regarding return, you should probably use lambdas most of the time.



Или

https://stackoverflow.com/questions/626/when-to-use-lambda-when-to-use-proc-new

> And finally, the proc method should never be used as it is inconsistent and has unexpected behavior. In Ruby 1.8 it actually returns a lambda! In Ruby 1.9 this has been fixed and it returns a Proc. If you want to create a Proc, stick with Proc.new.



и т.д.

Повседневно, они, блядь, используют.
4 Кб, 255x198
#505 #1026298
Так, спрошу и тут тоже.

В общем есть проект в директории, под гитом.
Я хочу некоторые файлы этого проекта заменить своими на локальной машине, или добавить файлы только для себя (это в основном конфиги, которые лично меня не устраивают и я хочу иметь свои).
Частично это можно решить глобальным гитигнором, но это хуевое решение. Кое-что я сложил в директории рядом с проектом, типа докер-композа и dot-env файлов, который можно так запускать.
В идеале хотелось бы, чтобы моя директория-расширение, как бы монтировалась поверх проекта. Но при этом чтобы гит видел оригнал.
Или например что-то типа личного гит-игнора, но локалного для проекта.
1026454
#506 #1026325
Сижу перепиливаю свой «процедурный» скрипт на классы (специальная олимпиада), у меня там erb использовался и пришлось разбираться что такое биндинг.
А вы чем заняты?
#507 #1026454
>>1026298
branch OR stash OR .gitexcludes
1027615
#508 #1027615
>>1026454
Бранч и стеш не подойдут. Гитэксклюдес это глобальный игнор. Но пока гуглил его наткнулся на .git/info/exclude - типа локальный exclude, и это уже теплее.
1027646
#509 #1027646
>>1027615
В папку проекта можно кинуть отдельный .gitignore, с дополнительными игнорами.
1028142
24 Кб, 417x521
#510 #1028141
Парни, как относитесь к принципу рефакторинга extract method? Пикрелейтед.
Если код дублируется, тогда, конечно, очевидно нужно выносить. Но вот как в этом конкретном примере мне кажется это ненужно шизофазия. Имхо, код сверху понятнее и читабильнее. Но я часто вижу, что начинают дробить обособленный метод на множество мелких, создавая такую лапшу, что чтобы прочитать код, приходится бегать по файлу и воссоздавать стек вызовов. И зачастую это объясняют "чтобы метод лучше читался".

Но это мне так кажется. Хочется узнать, что думают другие и если используют, то почему.
Алсо, если есть где-нибудь субъективная критика этой практики, поделитесь ссылочкой.
#511 #1028142
>>1027646

>отдельный .gitignore


Это как?
1028192
#512 #1028192
>>1028142
Ты профессионально непригоден.
Лучше иди асфальт укладывать или менеджером в эльдорадо.
#513 #1028207
>>1028141

Причем здесь руби?

---
Принцип рефакторинга хороший, если уметь его применять в связках с другими паттернами.

Давай возьмем пример посложнее, пусть отчет состоит не из двух частей, а из пятидесяти. Все написаны в одном методе printOwning.

И тебе приходит задача - подготовить три вида отчетов, один полный на пятьдесят частей, два кусками по 5, и 35 частей.

Первым делом ты откроешь код и охуеешь, увидев полотно на 400 строк кода. Но т.к. ты владеешь паттерном extract method, то за 1 коммит сможешь разделить огромный метод на множество маленьких частей. Эта хуйня отвечает за это, та - за то. Стало чуть понятнее.

Вторым шагом применяется инверсия зависимостей, чтобы метод printOwning печатал нужный вид отчета (полный, частичный, минимальный, whatever).

Вот так в два простых шага ты решил этот кейс.
1028218
#514 #1028218
>>1028207
Ты умней других хочешь показаться? Я же написал, что вопрос не про DRY.
1028401
36 Кб, 695x376
#515 #1028401
>>1028218

То что я знаю больше тебя, не значит что я хочу что-то перед другими, особенно на анонимном форуме.

Извлечение методов это не только читабельность, задел под расширение, но и удобство в тестировании.

Когда тест крашится в маленьком методе, его проще поправить, а остальная часть программы тебя не волнует.

Если думаешь, что можно научиться эффективно ходить на одной ноге, то тебе не следует идти в программисты. Тем не менее неоспоримость пользы одной ноги в связке с другой - неоспорима.

Поэтому не выебывайся, и учи как бы глупо тебе не казалос и рднажды картина сложится в голове. Увы, но ооп по частям не работает.
#516 #1028408
>>1028141
Даже башевские скрипты дроблю на отдельные функции, что сильно упрощает отладку и прочие НИОКРы.
Может показаться, что кода несколько больше, но с практикой станет ясно, что разбираться в коде действительно проще, чем в простыне с if/while, принтами и циклами.
#517 #1028472
ОПчик а ты почему с гитхаба удалился, перекат теперь проебан.
#518 #1028604
>>1028141

>если есть где-нибудь субъективная критика


Вот тут в комментах чуваку аргументируют, что он поехавший
https://sites.google.com/site/unclebobconsultingllc/one-thing-extract-till-you-drop
Там большинство все-таки разделяет его восторг, но пример показательный - декомпозиция ради декомпозиции.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 20 июля 2017 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски