Size: a a a

Ruby, Rails, Hanami | dry-rb

2020 April 29

SP

Sergey Pustovalov in Ruby, Rails, Hanami | dry-rb
или завернуть в монаду Result
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
Да там один хер у тебя будет тупл, обёрнутый в резалт
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
или хеш, обернутый в резалт. Принцип не изменится
источник

DM

Denis Misiurca in Ruby, Rails, Hanami | dry-rb
Igor Morozov
хеши неповоротливы, классы на замену им не всегда уместны
когда влом делать целый класс для двух значений, можно взять OpenStruct
источник

S

Sergey in Ruby, Rails, Hanami | dry-rb
Меня в целом такая запись вполне устраивает

но вот коллега говорит, что в этом случае логичнее использовать просто class
т.к. ели подразумевается что есть несколько значений, значит есть состояние и методы (т.е. класс знает как рендерится темплейт).
источник

SP

Sergey Pustovalov in Ruby, Rails, Hanami | dry-rb
вроде не тупл/хеш, а Struct
источник

SP

Sergey Pustovalov in Ruby, Rails, Hanami | dry-rb
Denis Misiurca
когда влом делать целый класс для двух значений, можно взять OpenStruct
OpenStruct медленный
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
Denis Misiurca
когда влом делать целый класс для двух значений, можно взять OpenStruct
ради такого использовать опенстракт это как-то вообще
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
в языке дали волшебную вещь — массив, который легко деструктуризовать
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
можно посмотреть в сторону https://dry-rb.org/gems/dry-struct/1.0/
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
на туплах из 1, 2 и 3 элементов не нужно угорать и давать им имена. это всё нормально коммуницируется и без этого
источник

NB

Nikita Batrak in Ruby, Rails, Hanami | dry-rb
но в большинстве случаев обычного массива как правило действительно хватает
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
Sergey Pustovalov
вроде не тупл/хеш, а Struct
ну если человек хочет вернуть template, context, filename, то в Success будет Success([template, context, filename]). Что, в общем-то, просто добавляет лишнюю обёртку
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
это, кстати, интересное явление. в эликсире тьюплы повсюду, а в рубях почему-то не очень
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
причём есть абсолютно всё, чтобы с ними нормально работать
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
делаю ставку, что с развитием паттерн-матчинга мы будем о тьюплах слышать чаще
источник

S

Sergey in Ruby, Rails, Hanami | dry-rb
Sergey
Меня в целом такая запись вполне устраивает

но вот коллега говорит, что в этом случае логичнее использовать просто class
т.к. ели подразумевается что есть несколько значений, значит есть состояние и методы (т.е. класс знает как рендерится темплейт).
это аргумент? или можно парировать тем, что у меня сервис-объект отвечает/выполняет одно единственное логическое дейстие, просто возвращает несколько значений?)
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
если хочется засунуть результат внутрь самого класса сервиса, то не надо. это вредно
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
можно на самом деле сделать отдельную структурку/DTO и возвращать её, если людям удобнее в этой парадигме жить.

но это на фундаментальном уровне ничем не отличается от массива из N элементов
источник

IM

Igor Morozov in Ruby, Rails, Hanami | dry-rb
желание запихнуть результат выполнения какой-то операции в стейт самой операции исходит из того, что людей просто неправильно научили
источник