Size: a a a

Software Design/Architecture/Zen

2020 September 25

D

Dika in Software Design/Architecture/Zen
Dika
Да нет. На хаскеле то же самое будет гораздо читабельнее.
Егор бы хотя бы переменные использовал, что ли.
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Возьми такое же дерево выведи из спринга, наверное будет в разы больше.
Тут же с точки входа в приложение и до обработки цепочка. Норм
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
почему вы противопоставляете ООП и процедуры? современное ООП — это же и есть процедуры, сгруппированные вокруг данных. или вы тут по умолчанию ООП Кея придерживаетесь?
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Jerzy Syrowiecki
почему вы противопоставляете ООП и процедуры? современное ООП — это же и есть процедуры, сгруппированные вокруг данных. или вы тут по умолчанию ООП Кея придерживаетесь?
Зачем слово ООП тут. Просто процедуры и норм.
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
Adel
вот мне кажется когда пытаются именно процедуру описать на чистом ООП или ФП получается простыня...
а вы попробуйте. на Хаскеле процедуры описываются очень просто, например. получается одновременно ФП и процедурный код
источник

A

Adel in Software Design/Architecture/Zen
Jerzy Syrowiecki
а вы попробуйте. на Хаскеле процедуры описываются очень просто, например. получается одновременно ФП и процедурный код
ну я очень рад тогда )
источник

D

Dika in Software Design/Architecture/Zen
Vlad Sobenko
Можно такую же простыню из фп кода достать.
У Егора местами функциональный код и есть, просто он очень неудобно обернут в кучу классов. На хаскеле это бы выглядело значительно лаконичнее.
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Dika
У Егора местами функциональный код и есть, просто он очень неудобно обернут в кучу классов. На хаскеле это бы выглядело значительно лаконичнее.
Мне вообще это его подход очень фп напоминает.
constructor overloading заменяет pattern matching.
Оставляем в обьекте по 1 методу, чтобы получились лямбды.
Получаем фп.
источник

D

Dika in Software Design/Architecture/Zen
Ага, но лучше использовать более подходящий функциональный язык для такого, а не джаву
источник

VS

Vlad Sobenko in Software Design/Architecture/Zen
Dika
Ага, но лучше использовать более подходящий функциональный язык для такого, а не джаву
Или более подходящий для такого ООП.
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Jerzy Syrowiecki
почему вы противопоставляете ООП и процедуры? современное ООП — это же и есть процедуры, сгруппированные вокруг данных. или вы тут по умолчанию ООП Кея придерживаетесь?
Я лично считаю, что нет другого ООП, кроме как по Алану))
источник

k

knopkod4v in Software Design/Architecture/Zen
Jerzy Syrowiecki
ох, сразу много плохо определённых терминов.

что такое "инкапсулирующий что-то"? инкапсуляция — это соединение кода и данных. VO/DTO содержит только данные, он ничего не инкапсулирует
Допустим у нас есть VO DateRange, тогда у него может быть метод bool intersects(DateRange). В таком случае он(метод, а следовательно и VO) будет скрывать в себе информацию о том, как определять пересекаются ли диапазоны дат.
Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние, тогда по идее тоже может, например VO Money может иметь проверку в конструкторе, что деньги не могут быть отрицательным значением.
А "соединение кода и данных" - это как-то непонятно 🤔
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
knopkod4v
Допустим у нас есть VO DateRange, тогда у него может быть метод bool intersects(DateRange). В таком случае он(метод, а следовательно и VO) будет скрывать в себе информацию о том, как определять пересекаются ли диапазоны дат.
Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние, тогда по идее тоже может, например VO Money может иметь проверку в конструкторе, что деньги не могут быть отрицательным значением.
А "соединение кода и данных" - это как-то непонятно 🤔
проверка в конструкторе это ещё та стрельба в ногу
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
knopkod4v
Допустим у нас есть VO DateRange, тогда у него может быть метод bool intersects(DateRange). В таком случае он(метод, а следовательно и VO) будет скрывать в себе информацию о том, как определять пересекаются ли диапазоны дат.
Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние, тогда по идее тоже может, например VO Money может иметь проверку в конструкторе, что деньги не могут быть отрицательным значением.
А "соединение кода и данных" - это как-то непонятно 🤔
не скрывать, а инкапсулировать. но я не знал, что у VO могут быть методы
источник

k

knopkod4v in Software Design/Architecture/Zen
Jerzy Syrowiecki
не скрывать, а инкапсулировать. но я не знал, что у VO могут быть методы
я и про инкапсуляцию и про хайдинг написал
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
knopkod4v
Допустим у нас есть VO DateRange, тогда у него может быть метод bool intersects(DateRange). В таком случае он(метод, а следовательно и VO) будет скрывать в себе информацию о том, как определять пересекаются ли диапазоны дат.
Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние, тогда по идее тоже может, например VO Money может иметь проверку в конструкторе, что деньги не могут быть отрицательным значением.
А "соединение кода и данных" - это как-то непонятно 🤔
> Если говорить про инкапсуляцию как защиту от переходов в непредусмотренное состояние

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

k

knopkod4v in Software Design/Architecture/Zen
тогда непонятно что такое инкапсуляция, "соединение кода и данных" - так себе определение
источник

JS

Jerzy Syrowiecki in Software Design/Architecture/Zen
knopkod4v
тогда непонятно что такое инкапсуляция, "соединение кода и данных" - так себе определение
источник

k

knopkod4v in Software Design/Architecture/Zen
тогда пример с методом intersects подходит и всё равно VO инкапсулирует в себе логику работы с данными 🤔
источник

k

knopkod4v in Software Design/Architecture/Zen
Apache DOG™
проверка в конструкторе это ещё та стрельба в ногу
почему?
источник