
Bohdan
04.07.2018
19:20:33

Aleh
04.07.2018
22:57:43
и это странно)

Sergey
04.07.2018
22:58:37
и это странно)
ну так то да, хотя он вроде это говорил только про штуки типа сервис отправки email-ов

Google

Sergey
04.07.2018
22:58:43
но не уверен
но если у него интерфейсы через IUsers то возможно повреждение мозга
мне как бы его мнение относительно ООП не особо интересно)

Aleh
04.07.2018
23:00:30
да просто я не очень представляю, как так можно жить
ты ж в C# при таком подходе теряешь возможность делать полиморфные методы…
и получается процедурщина обычная

Sergey
04.07.2018
23:05:24

Aleh
04.07.2018
23:05:39
сперва добейся, да(

Sergey
04.07.2018
23:06:00
p.s. он вообще-то там говорил что "но вообще-то это не совсем ООП бла бла" но я в упор не понимаю почему тогда он приводит именно такие примеры
возможно что бы усилить эффект что "ФП лучше!"
или упростить что-нибудь

Aleh
04.07.2018
23:06:27
а пример совсем ооп, где active record это норм?

Google

Sergey
04.07.2018
23:06:50

Aleh
04.07.2018
23:07:18
ну т.е. совсем ооп это active record, ddd эванса это анемичные модели, а единственный вариант юзать c# это юзать менеджеры

Sergey
04.07.2018
23:07:27
опять же - какая разница что мы тут с тобой думаем, важно какой код большинство пишут

Aleh
04.07.2018
23:07:38
да вообще ничего не важно)

Sergey
04.07.2018
23:07:48
в целом да

Aleh
04.07.2018
23:09:59

Дмитрий
04.07.2018
23:22:59
noop
Моя любимая парадигма

Igor
05.07.2018
09:14:48

Sergey
05.07.2018
09:16:38
вот если бы еще сообщения были а не вызовы процедур....

Aleh
05.07.2018
09:28:44
ну т.е. почему бы не делать ровно так, как он предлагает делать в f#: берем UserManager и переносим все его методы в User, а там где нужны зависимости - передаем их(конечно желательно за интерфейсами, дабл диспатчи и все такое) как аргументы в конкретный метод


Sergey
05.07.2018
09:32:36
ну то есть pojo - просто класс без ограничений и требований. Делай что хочешь и как хочешь. В том числе нормальное ООП.

Aleh
05.07.2018
09:33:09
да-да, pojo это без наследования от EntityBean
или как его там

Sergey
05.07.2018
09:33:33
проще говорить что bean это pojo с наследованием от entity bean (или атрибутом)
ну мол, любой класс это pojo но не любой pojo это bean

Google

Aleh
05.07.2018
09:34:28
ну модный термин ж нужен был, чтобы напомнить людям, что можно не наследоваться от всякого говна в вашем домене)

Sergey
05.07.2018
09:34:50
тип того, маркетинг такой маркетинг)

militska
05.07.2018
09:38:20

Aleh
05.07.2018
09:38:33

Sergey
05.07.2018
09:39:36

Bohdan
05.07.2018
09:48:42
с2 иногда невозможно читать - сплошные отсылки

Sergey
05.07.2018
09:50:03

Bohdan
05.07.2018
09:54:09
осталось только понять, почему они плюсы называют CeePlusPlus :D
но это так, оффтопик
насколько понял про double dispatch - это фактически перевод рантайм проверки типов в компайл-тайм (и ужесточение оной тем самым)
или что-то я не то понял?

Артур Евгеньевич
05.07.2018
09:57:13

Sergey
05.07.2018
09:57:42

F01134H
05.07.2018
09:57:51

Bohdan
05.07.2018
09:58:42
для которой они повысили связанность

F01134H
05.07.2018
09:59:02
норм же
еще сипипи наызывают

Sergey
05.07.2018
09:59:14
повысить/понизить связанность => увеличить/уменьшить вероятность изменений зависимых модулей

Bohdan
05.07.2018
10:08:03

Google

Igor
05.07.2018
10:12:44

Aleh
05.07.2018
10:13:46
ну вот вместо сущности делать dto это не как Эванс описывает, Эванс описывает совсем наоборот)

Igor
05.07.2018
10:14:56
Эх жалко в проде я такого никогда не видил

Aleh
05.07.2018
10:16:05
в языках типа java/c# еще пропадает возможность делать полиморфизм, ведь там нет такого ad-hoc как в хаскелях например
а без полиморфизма это ж процедурщина с громоздким синтаксисом

Admin
ERROR: S client not available

Igor
05.07.2018
10:17:32
https://youtu.be/US8QG9I1XW0
Кстати, на тему "полефрексировать о необходимости ООП/ФП в проде":
- https://youtu.be/XBfi3Q74BnE
- https://youtu.be/b-Eq4YV4uwc

Aleh
05.07.2018
10:19:36

Bohdan
05.07.2018
10:20:12
а Printer знает про Shape
Printer {
printCircle(Circle circle)
}

militska
07.07.2018
17:04:47
добрый вечер.
Кто нибудь разделял в yii2 ar и бизнес логику, какие варианты/рекомендации есть?
наследоваться от AR модели как то так себе
вроде есть вариант выделить в отдельный namespace "app/modules/services" бизнес логику(без наследования) и из неё дергать ar модель .

M
07.07.2018
18:21:29

Adel
07.07.2018
18:22:56
вот только такая анемичная модель потом будет аукаться.

M
07.07.2018
18:23:16

Adel
07.07.2018
18:23:34
но это уже хоть какойто шаг в сторону выделения слоев :)
Чем?
я тебе целый день рассказывал уже :)

M
07.07.2018
18:25:07

Adel
07.07.2018
18:29:46
ну кроме тестов я еще 2-3 вещи могу назвать. но чот я подумал. и все они не прям 100%-ная причина.
ну и во всяких yii и ларавель активрекордах не получится чистую логику выделить. везде будут всякие save() которые портят все

M
07.07.2018
18:32:39

Google

militska
07.07.2018
18:32:45
ну хотя бы всякие мелкие методы/отправки почты/100500 запросов для списков из ar вытащить

Adel
07.07.2018
18:33:19
оо... тут все запущено :)

Sergey
08.07.2018
08:55:20
там ассампшен оч простой - AR применим там где логики не очень много. Если у тебя логики больше - можешь заюзать что-то типа Row Data Gateway, то есть у тебя твоя AR либа будет предоставлять тебе модель данных, а сверху обертка (не сервис-менеджер а доменная модель) которая внутри работает со стэйтом
тогда это все более-менее можно тестить и в целом довольно удобно. Если не сервисы-менеджеры.
но если логика нетривиальная - возможно стоит подумать в сторону дата мэпперов. Если логика больше завязана на данные нежели на отношения между данными - можно table gateway и мутить все через SQL

Igor
08.07.2018
08:59:19

Sergey
08.07.2018
08:59:47
ну и зависит от сложности самой логики. В целом подозреваю что при определенной снаорвке можно где-то 70% задач не через жопу сделать даже на yii. просто вопрос нахер оно надо

code4aman
08.07.2018
09:25:47

Sergey
08.07.2018
09:34:24

Aleh
08.07.2018
13:44:14

Mykola
08.07.2018
14:55:00
??

Dmitry
08.07.2018
16:19:38

Sergey
08.07.2018
16:27:23