
Vasiliy
22.06.2018
06:33:34
ну ты же понел что он имеет ввиду

Aleksey
22.06.2018
06:35:02
не очень. в подобных вопросах, как правило, человек пытается таким способом решить какую-то другую, более существенную проблему, таким вот корявым способом

Ēľ Ċāƥīāŋ Ƭīʋȷɍēś
22.06.2018
06:35:54

Vasiliy
22.06.2018
06:36:06
ну он хочет чтобы его метод из конфига можно было вызвать только в экшене и нигде больше, ответ на его вопрос - так сделать нельзя

Google


Aleksey
22.06.2018
07:44:28
Вопрос. Есть вьюха (сравнительно небольшая таблица), если рендерить ее всю одним куском - перформанс нормальный. Разбил строки на паршиалы, и ячейки на паршиалы - там довольно много кода внутри, имело смысл. Теперь в девелопменте эта таблица рендерится вечность - 10 секунд. В логах ессно полно вот такого:
Rendered dashboard/_row.haml (4931.9ms)
Rendered dashboard/_list.haml (1.0ms)
Rendered dashboard/_cell.haml (118.6ms)
Rendered dashboard/_list.haml (1.0ms)
Rendered dashboard/_cell.haml (59.9ms)
Rendered dashboard/_cell.haml (0.4ms)
Сгруппировал самый верхний уровень (rows) в redner partial: ‘row’, collection: collection, as: data - стало в два раза быстрее. Видимо, потому что не читается с диска каждый раз паршиал. Но внутри rows остались другие вложенные паршиалы, и уже коллекцию прикрутить не особо поможет.
Есть подозрение, что я чего-то не знаю про паршиалы и то как они работают, но это чет совсем грустный перформанс. Есть идеи?
осталось только кэширование, но я так понимаю оно кеширует уже отрендеренный результат, а не темплейт


Vasiliy
22.06.2018
08:07:25
вообще паршиалы да, тормозят очень
ну и меряй в прод режме
партиалы кэшируются(т.е. не результат рендера, а сами хамлы)

Aleksey
22.06.2018
08:18:53

Vasiliy
22.06.2018
08:19:48
не за что, но всё же не стоит дроибь на совсем мелкие объекты

Aleksey
22.06.2018
08:27:13
в каждом паршиале строк по 20-30, так что не такие уже они и мелкие )
кому интересно, переписал все паршиалы, теперь рендеринг всего этого овна в деве 460мс ? вложенные паршиалы убрал, заменил на два равноценных с коллекциями, и презентер для всего этого отдельный

Pavel
22.06.2018
12:08:01
Все равно 460мс много
Где следующий боттлнек

Vyacheslav
22.06.2018
12:23:27
а кэширование включено?

Ivan
22.06.2018
12:24:24
Посоны возник архитектурный спор. Как правильней организовывать воркеры.
1. Пишем всю логику в теле воркера
2. Воркер вызывает сервайс объект и передает ему нужные аргументы
Кто как делает ?

Google

Vyacheslav
22.06.2018
12:25:20

Anton
22.06.2018
12:26:04
что бы проще тестировать было и инжектить в будущем

Ivan
22.06.2018
12:26:24
cервайс объект обычный PORO объект. воркер это класс в котором заинклюжен sidekiq воркер для примера

Aleksey
22.06.2018
12:27:32

Ivan
22.06.2018
12:27:45

rekero
22.06.2018
12:28:58
Нет

Ivan
22.06.2018
12:29:14
Какие аргументы ?

rekero
22.06.2018
12:29:26
Solid

Vyacheslav
22.06.2018
12:29:38

Ivan
22.06.2018
12:29:52
Plain Old Ruby Object

Vyacheslav
22.06.2018
12:30:10
понял, спасибо

Anton
22.06.2018
12:30:18

Ivan
22.06.2018
12:31:16
не выходит ли так что траспорт это побочный эффект инклюда
ести ли такой кейс когда тестируешь именно сам воркер а не логику в нем

Anton
22.06.2018
12:32:11
конечно есть, называется юнит тест ?

Ivan
22.06.2018
12:32:41
так вопрос не в том как называется, а в том какой кейс
в каком случае будешь тестировать отдельно транспорт без service объекта

Anton
22.06.2018
12:34:09
в том, когда я не хочу все вызывать что бы проверить что воркер вызвался

Ivan
22.06.2018
12:34:09
если такого нет, то возникает вопрос, а стоит разделять и является ли это нарушением SRP

Google

Anton
22.06.2018
12:34:19
не вызывая бизнес логику

Ivan
22.06.2018
12:34:56

Anton
22.06.2018
12:36:18
ну типо просто мокать логику будет
+ ты можешь отдельно протестировать все кейсы локиги как отдельый класс (юнит тесты) + проверить отдельно, что воркер вызвался
а потом сделать проверку, что воркер вызывает нужную логику

Ivan
22.06.2018
12:37:48
сейчас нашел кейс когда нужно разделять точно, когда в воркере есть нектороый пайплайн и в нем выполняется последовательные действия которые можно разнести на более чем один класс
финалочкой, когда можно писать логику в воркере, в каких кейсах ?

Anton
22.06.2018
12:42:11
бизнес логика должна быть изолирована от транспорта
поэтому что в экшенах, что в воркерах бизнес логики по моему не должно быть
что в рэк тасках

Ivan
22.06.2018
12:43:47
поинт разумный, если у кого есть что дополнить было бы круто для полноты спора

Anton
22.06.2018
12:45:07

Ivan
22.06.2018
12:46:01
Attention пых внутри!

Anton
22.06.2018
12:46:09
а до руби так и не дошло

Ivan
22.06.2018
12:47:45
по ощущениям, но могут подводить по хексагональной архитектуре перлись пару лет назад или больше
прям очень много инфы было об этом

Alan
22.06.2018
13:06:16

Google

Anton
22.06.2018
13:13:14

Кøе-ктø Геннадьевич
22.06.2018
13:38:19
поцоны, почему писать веб на рельсе лучше чем на дотнете?
а то меня тут один джентльмен убеждает, а я на дотнете не прогал
приводит как аргумент количество вакансий

Admin
ERROR: S client not available

Eugene
22.06.2018
13:46:49
Пускай тогда Джаву вспомнит.
Не холиварь сильно здесь.

Gleb
22.06.2018
13:47:19
никто случаем не сталкивался со случаем, когда Сarrierwave при вызове recreate_versions! вроде что-то делает, но новые версии в хранилище не загружает?

wi11son
22.06.2018
13:49:58
а .net серваки запускаются на линуксовых серверах? ато я не помню, когда я в последний раз видел виндовый хостинг
или это всё на ажурах?

Anton
22.06.2018
13:51:18
уже пару лет как
https://opensource.com/article/17/11/net-linux

Darth
22.06.2018
16:31:08
14 если быть точным )

Roman
22.06.2018
18:50:15
Всем привет. Хочу запустить руби скрипт из другой директории в rake таске через system('ruby path_to_file.rb'), но рельса почему-то это делает в своем окружении, то есть в том скрипте подключается гем, а в рельсовом Gemfile он не описан, из-за этого все падает. Никто не знает, как лечить?

Igor
22.06.2018
19:10:17
Всем привет никто не сталкивался с мистикой неизвестного происхождения заголовка HTTP Strict Transport Security в ответе сервера? В nginx настроен SSL, но такой заголовок не указан, в рельсе force_ssl = false

Sergii
23.06.2018
06:56:05

ojab
23.06.2018
12:59:41

Google

Roman
23.06.2018
13:11:33

ojab
23.06.2018
13:18:49
(для запуска с чистым окружением есть Bundler.with_clean_env, если что)

Artem
23.06.2018
14:20:56
Crystal is not Ruby Part 1-2
https://revs.runtime-revolution.com/crystal-is-not-ruby-part-1-8736f8c2ae58
https://revs.runtime-revolution.com/crystal-is-not-ruby-pt-2-7c3d988aa9a1

Ruslan
23.06.2018
15:23:50
Всем привет, а подскажите, как в hanami в валидации написать кастомные сообщения? какой файл локализации нужно переопределить и какова его структура?

Rafkat
23.06.2018
17:10:47
Рельсы проигрывают(
Вот тут чувак анализирует вакансии в стартапах США для программистов Руби. Говорит, что спрос еще есть.
Немного смущает формулировка «еще» — кажется, что легкие в освоении MVC-решения на скриптовых языках будут жить еще долго: все-таки с ними приятно начинать бекендные проекты. На их стороне стороне документация, стабильность, количество батареек и легкость тестирования, а как следствие — очень высокая скорость разработки на одного программиста.
Кстати, на втором месте в том обзоре — моя любимая Django.
А как вы думаете, что стоит учить джуниору, чтобы найти работу в крутом айти-стартапе?
Что учить джуниору, чтобы найти работу в крутом ИТ-стартапе?
anonymous poll
Джанго – 3
??????? 43%
Node.js? – 3
??????? 43%
Рельсы – 1
?? 14%
? 7 people voted so far.

ojab
23.06.2018
17:55:52
бида, рельсы проигрывают в анонимном соц. опросе
теперь рубям точно конец

Ruslan
23.06.2018
18:02:00
что мертво умереть не может, так что не беда

Dmitriy
23.06.2018
18:03:31

Ruslan
23.06.2018
18:03:42
валар дахайрис

Vyacheslav
23.06.2018
18:54:25

Darth
23.06.2018
19:08:04
Стартапы вообще квинтесенция надёжности