Size: a a a

Saint P Ruby Community

2019 December 02

SZ

Slava Zharkov in Saint P Ruby Community
я имею ввиду он обладает каким-то стандартным интерфейсом, с которым уже умеют другие части системы сопрягаться или как? просто интересна причина зачем этот контейнер нужен
источник

SZ

Slava Zharkov in Saint P Ruby Community
просто обычно использую result_object/монаду если надо именно как-то уметь стандартно с этим результатом работать
источник

SM

Sergei Maximov in Saint P Ruby Community
Slava Zharkov
я имею ввиду он обладает каким-то стандартным интерфейсом, с которым уже умеют другие части системы сопрягаться или как? просто интересна причина зачем этот контейнер нужен
Нет, без стандартных интерфейсов. Это выглядит как-то так, например

Result = Struct.new(:apples, :oranges)

# ...

def call
 # ...
 Success(Result.new(apples, oranges))
end

# ...

service.call do |m|
 m.success do |result|
   do_something_with_apples(result.apples)
   do_something_with_oranges(result.oranges)
 end
end

Зачем?

1. Я считаю, что хеш не должен использоваться для таких слабо связанных данных
2. Этот тип можно задокументировать
3. Его при случае можно будет легко расширить какими-нибудь методами
4. Если ошибиться в названии метода-поля объекта, то мы получим исключение, а не nil в случае хеша (можно использовать #fetch, но это будет многословно)
5. Он должен занимать меньше памяти и предоставлять более быстрый доступ к полям, чем в случае хеша (это я на самом деле не проверял, надо сделать бэнч)
источник

SM

Sergei Maximov in Saint P Ruby Community
Sergei Maximov
Нет, без стандартных интерфейсов. Это выглядит как-то так, например

Result = Struct.new(:apples, :oranges)

# ...

def call
 # ...
 Success(Result.new(apples, oranges))
end

# ...

service.call do |m|
 m.success do |result|
   do_something_with_apples(result.apples)
   do_something_with_oranges(result.oranges)
 end
end

Зачем?

1. Я считаю, что хеш не должен использоваться для таких слабо связанных данных
2. Этот тип можно задокументировать
3. Его при случае можно будет легко расширить какими-нибудь методами
4. Если ошибиться в названии метода-поля объекта, то мы получим исключение, а не nil в случае хеша (можно использовать #fetch, но это будет многословно)
5. Он должен занимать меньше памяти и предоставлять более быстрый доступ к полям, чем в случае хеша (это я на самом деле не проверял, надо сделать бэнч)
Если же твоя функция считает, например, частоты слов в тексте, то возвращать хеш тут будет абсолютно верным решением, а делать отдельный PORO-объект будет оверкиллом
источник

v

vizvamitra in Saint P Ruby Community
добавлю, что кроме "result object"-а есть ещё "response object" ("response model" в терминологии Анкл Боба) у которого другая задача и их не надо путать
источник

SZ

Slava Zharkov in Saint P Ruby Community
Sergei Maximov
Если же твоя функция считает, например, частоты слов в тексте, то возвращать хеш тут будет абсолютно верным решением, а делать отдельный PORO-объект будет оверкиллом
спасибо за ответ. интересно.
источник

w

wi11son in Saint P Ruby Community
источник

w

wi11son in Saint P Ruby Community
примерный план наших эвентов на следующий год
источник

DE

Dmitry Evgenevich in Saint P Ruby Community
по crystal будет воркшоп?
источник

w

wi11son in Saint P Ruby Community
как видишь
источник

DE

Dmitry Evgenevich in Saint P Ruby Community
а где можно подробности глянуть?
источник

w

wi11son in Saint P Ruby Community
в ближайшие дни оформлю и будет доступно на kommunity.com/saintpruby
источник

DE

Dmitry Evgenevich in Saint P Ruby Community
ок, спасибо!
источник

AG

Alex G in Saint P Ruby Community
а тут Фаулер собрал в одну страницу гайд по тестированию  
https://martinfowler.com/testing/
источник
2019 December 03

IN

Ilya Nikolaevich in Saint P Ruby Community
Выглядит жирно. Спасибо. Поделюсь
источник

P

Pablo in Saint P Ruby Community
Никто в кино не желает сегодня? Отдам два билета в кино фильм “Достать ножи” кинотеатр Лигов в 18:40, у меня билеты пропадут, пишите в личку, места по центру
источник

P

Pablo in Saint P Ruby Community
Pablo
Никто в кино не желает сегодня? Отдам два билета в кино фильм “Достать ножи” кинотеатр Лигов в 18:40, у меня билеты пропадут, пишите в личку, места по центру
Билеты ушли :)
источник

IY

Igor Yamolov in Saint P Ruby Community
vveare138
проблема такого подхода в том, что если редкие релизы (пару раз в месяц) то хотфикс в мастер уже не получается)
Теги на деплои
источник

IY

Igor Yamolov in Saint P Ruby Community
Упс, сорян за некрореплай
источник

v

vveare138 in Saint P Ruby Community
Igor Yamolov
Упс, сорян за некрореплай
как раз обсуждали это полчаса назад)
источник