Size: a a a

2018 February 15

SK

Sergey Kapralov in JUG NN
Ну ок. Если вкрадце, лично я за SOLID и против EE паттернов в основном топлю, заодно люблю подискутировать по конкретным кейсам чтобы подтвердить/опровергнуть свои гипотезы. ИМХО считаю что то что мы видим щас в спринговом/EEшном кровавом энтерпрайзе не SOLID почти что полностью.
источник

SK

Sergey Kapralov in JUG NN
Блин - этож чат: какой смысл смысл в чатах улавливать? Муторно же) тут либо дискутировать, либо не дискутировать :)
источник

SK

Sergey Kapralov in JUG NN
Vlad K
сложно, но православно не всегда выходит выгоднее чем неправославно, но нативно для языка
Если речь о перформансе, и если перформанс действительно важнее поддерживаемости, тогда действительно не имеет смысла заморачиваться. Кривая Шипилева это неплохо иллюстрирует.
источник

VK

Vlad K in JUG NN
нет, речь о минимальном наборе действий - что может быть проще, чем
context.discount = getNewDiscount(…)
источник

SK

Sergey Kapralov in JUG NN
Но во многих ли кейсах так уж важна заточка на перформанс?
источник

VK

Vlad K in JUG NN
важно упомянуть что весь дизайн априори для одного потока
источник

VK

Vlad K in JUG NN
конекст просто в стеке лежит верхнего метода
источник

VK

Vlad K in JUG NN
то есть условно
def get_it_all:
 context.= new context
 [a, b, c, d].process(context)
end
источник

SK

Sergey Kapralov in JUG NN
Vlad K
нет, речь о минимальном наборе действий - что может быть проще, чем
context.discount = getNewDiscount(…)
Simple не Easy. А потом в цепочке респонсибилитей пара звеньев поменяется местами, одно уйдет, другое добавится, и какое нить шальное звено попытается прочитать свойство DTOшки, которое еще не было правильно проинициализировано другим звеном. Как вариант можно между звеньями не DTOшку передавать, а обертки над неким мутируемым состоянием, которые защищают инварианты.
источник

VK

Vlad K in JUG NN
а иммутабельность и пайпы как от такого защитят? везде можно что-то не инициализировать по недосмотру
источник

SK

Sergey Kapralov in JUG NN
Еще раз - я не говорю что мутабельность это плохо.
источник

VK

Vlad K in JUG NN
вот обертки передавать можно аля fluent-api всякие
источник

VK

Vlad K in JUG NN
но их же делать умереть можно
источник

SK

Sergey Kapralov in JUG NN
Я говорю что DTOшка каплит звенья люто
источник

SK

Sergey Kapralov in JUG NN
Обертки помогут хотя бы отловить такие косяки на ранней стадии. Если обертка обнаружит попытку неконсистентного апдейта или чтения, она сразу может швырнуть эксепшн. С DTOшкой такое не пройдет
источник

VK

Vlad K in JUG NN
вообще тесты помогут это отловить все на ранней стадии
источник

VK

Vlad K in JUG NN
если это не так, значит тесты плохого качества
источник

VK

Vlad K in JUG NN
если это так, значит зачем усложнять продовый код
источник

SK

Sergey Kapralov in JUG NN
С тестами такой вопрос - какого размера DTOшка context? Насколько она сложная?
источник

VK

Vlad K in JUG NN
скажем меньше 10 полей
источник