@oop_ru

Страница 427 из 785
Sergey
14.12.2017
16:06:11
ИМХО его набросы в целом полезны... точнее всегда любопытна реакция на набросы

Maksim
14.12.2017
16:06:50
ну реакцию на "ддд говно" я бы тут посмотрел) должно было норм пригореть)

Anton
14.12.2017
16:07:40
просто так нельзя сказть ддд — говно

Dmitry
14.12.2017
16:07:44
ну реакцию на "ддд говно" я бы тут посмотрел) должно было норм пригореть)
ну смотря кому и в каком контексте ты это говоришь ;)

Google
Anton
14.12.2017
16:07:48
нужно ведь начинать с каких-то аргументов

просто зайти и сказать — ничего не выйдет.

Maksim
14.12.2017
16:08:01
Сергей, DDD говно!

OOP лучше!

Adel
14.12.2017
16:09:29
чтобы не быть голословным

https://www.youtube.com/watch?v=ckjAWXJWZEY

Like
14.12.2017
16:10:53
Легчайший наброс: Джависты не люди :)

Maksim
14.12.2017
16:11:03
)))))))))

Adel
14.12.2017
16:11:11
Цитата про него с нашего форума: "Он сделал сеттер TransactionScript::setId(). И назвал это «sql speaking object». И написал книгу, выступает на конференциях. Своего рода Евгений Попов в мире архитектуры."

kana
14.12.2017
16:11:37
ну или сказать, что в джаве нет ооп, там просто скрытая сахором процедурщина

не то что в эрланге

Dmitry
14.12.2017
16:13:14
ну тут вроде интерсно говорит https://www.youtube.com/watch?v=lfdAwl3-X_c

Google
Dmitry
14.12.2017
16:18:26
Like
14.12.2017
16:18:40
В смысле, в докладе

Dmitry
14.12.2017
16:19:09
В смысле, в докладе
я еще не все посмотрел, но чет не заметил. Ты о чем?

kana
14.12.2017
16:35:12
книга, которую microsoft издал, полагаю

Dmitry
14.12.2017
16:37:46
Посмотрел я этот его доклад, помоему дельные вещи говорит

kana
14.12.2017
16:38:29
меня никогда не покидает мысль, что когда люди говорят про правльный ооп, они говорят про фп с объектами

а тут еще он рассказывает про его правильную инкапсуляцию - все операции с объектом должны проходить внутри объекта

это так монады в хаскеле работают, лол

мы не создаем объект State и работаем с ним извне, записывая и читая из него, мы работаем внутри него, а когда выходим из него (запускаем стейт), мы теряем доступ к стейту

на понятном примере для вас - мы так работаем с промисами

мы работаем с промисом исключительно внутри промиса через .then

kana
14.12.2017
16:45:50
ну таки нет, то, что я выше написал - немного другая идея, он говорил просто делать имена методов, которые не будут отражать структуру класса, а не проводить всю работу с объектом X внутри X

Like
14.12.2017
16:47:42
ну таки нет, то, что я выше написал - немного другая идея, он говорил просто делать имена методов, которые не будут отражать структуру класса, а не проводить всю работу с объектом X внутри X
Не досмотрел, но разве он говорил не о том, что объект будет объектом, если он будет уметь делать все что должен, а не быть тупа хранилищем, ну, и при этом косить под объект?

Dmitry
14.12.2017
16:48:56
Не досмотрел, но разве он говорил не о том, что объект будет объектом, если он будет уметь делать все что должен, а не быть тупа хранилищем, ну, и при этом косить под объект?
нет. он говорил о том что в ооп все должно быть объектами. Не надо гетеров, сеторов, статик. Только инмутабле объекты дают тру ооп

Like
14.12.2017
16:51:13
Ну, дык, если не будет геттеров и сеттеров, то объект будет делать то, что ему положенно внутри себя, а не отдавать данные с которыми будет потом работать кто-то другой, в таком случае, он не будет косить под объект (его слова)

Ну, то есть, в целом, как я понял: Если объект отдает свои данные просто так, он нарушает инкапсуляцию и является не объектом, а хранилищем, которое косит под объект Чтобы он был объектом, он должен делать манипуляции с данными только у себя внутри

Adel
14.12.2017
16:54:31
write model :)

Dmitry
14.12.2017
16:58:32
Короче не знаю что вы на него накинулись, про ооп интересно рассказывает, про политику тоже интересно пишет. Ставлю мужику лайк )))

Sergey
14.12.2017
17:00:01
Сергей, DDD говно!
твое DDD - возможно)

Google
Pavel
14.12.2017
18:49:26
“Проектирование по контракту: полезности концепции” https://medium.com/@pkolmakov/%D0%BF%D1%80%D0%BE%D0%B5%D0%BA%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5-%D0%BF%D0%BE-%D0%BA%D0%BE%D0%BD%D1%82%D1%80%D0%B0%D0%BA%D1%82%D1%83-%D0%BF%D0%BE%D0%BB%D0%B5%D0%B7%D0%BD%D0%BE%D1%81%D1%82%D0%B8-%D0%BA%D0%BE%D0%BD%D1%86%D0%B5%D0%BF%D1%86%D0%B8%D0%B8-4da27e66fc31

Провел митап...не знаю, мож кому полезно будет. Сделал как мог. Не пинайте сильно.

da horsie
14.12.2017
19:01:03
В феврале собираюсь на Clean Architecture. Если вдруг кому хочется книжку с автографом дяди Боба - пишите.

da horsie
14.12.2017
19:03:26
Книги я потом могу по почте отправить.

andretshurotshka?❄️кде
14.12.2017
19:18:16
лол)

da horsie
14.12.2017
20:41:27
А ты из какого города?
Сан-Франциско Бэй Эрия (Newark, CA)

конфа в Далласе

da horsie
14.12.2017
20:47:25
С книжками схема следующая. Заказываете на амазоне доставку на мой адрес в Калифорнии (адрес скажу в ЛС). Я подписываю и отправляю вам по USPS. Стоимость посылки можно рассчитать тут https://postcalc.usps.com/?gclid=Cj0KCQiA38jRBRCQARIsACEqIeue60cqeC78ZNJqhdwz_3EcqC4tJmpnct6FAWlqhOVkCLiUq0torTYaAlBnEALw_wcB мой зип-код 94560

Артур Евгеньевич
14.12.2017
22:05:35
Пацаны

А так ли хуева анемичная модель, как принято считать?

Sergey
14.12.2017
22:11:33
https://www.martinfowler.com/bliki/AnemicDomainModel.html

в частности тебя должно заинтересовать следующее

> By pulling all the behavior out into services, however, you essentially end up with Transaction Scripts, and thus lose the advantages that the domain model can bring. As I discussed in P of EAA, Domain Models aren't always the best tool.

Артур Евгеньевич
14.12.2017
22:33:10
Но вот если логика сложная и затрагивает множество сущностей

Гораздо легче дробить ее по сервисам

Google
Артур Евгеньевич
14.12.2017
22:33:46
Да это по сути пооуедурщина на классах

Но с использованием di и интерфейсов не так уж и страшно это

Код норм читается

Sergey
14.12.2017
22:34:32
Артур Евгеньевич
14.12.2017
22:34:41
Легок в понимании

А cqrs

Это ли не развитие классической модели

Sergey
14.12.2017
22:35:14
Легок в понимании
ты видимо никогда не работал с реально большими системами?

Артур Евгеньевич
14.12.2017
22:35:21
Где есть функции и процедуры

В том числе сейчас

Sergey
14.12.2017
22:36:14
Где есть функции и процедуры
там нет функций и процедур, у тебя там есть что-то пишет и что-то что читает. То что ты назвал - скорее всего ты имел ввиду CQS. И это тоже не про это, эро про сайд эффекты.

Но с использованием di и интерфейсов не так уж и страшно это
1. количество сервисов будет заоблочным 2. протестировать это дело в изоляции будет практически невозможно 3. сложнее поддерживать консистентность данных 4. я не знаю почему ты считаешь что код будет проще в понимании... это будет так если у тебя сервисы будут сгруппированы в модули адекватно, а отсюда возвращаемся к изначальной проблеме что люди в декомпозицию не умеют.

просто как-то так случилось что концепты типа whole value как-то в ООП не прежились (что иронично)

Артур Евгеньевич
14.12.2017
22:43:11
А вот если пытаться группировать все таки логику и данные как надо...не приведет ли это к супер жирным моделям? Да можно декомпозировать конечно, но с сервисами это гораздо проще...причем я не говорю про треш вроде классов StatusManager или UserHelper

Sergey
14.12.2017
22:44:04
если в строчках кода - то у тебя тогда будет много файлов, больше зависимостей, меньше изоляции данных, меньше контроля....

если же мы измеряем жирность поведением, то просто больше будешь дробить модели

ну то есть пример какой-бы....

Google
Sergey
14.12.2017
22:46:34
вот есть у нас система, там есть покупатели, продавцы, можно по рефералке регаться, заходить через соц сети.... что б еще добавить... чатиться могут....

ты сделаешь один класс User или как минимум 5 в этой ситуации?

Артур Евгеньевич
14.12.2017
22:48:51
Не один

Много

Sergey
14.12.2017
22:49:06
окей, а в ситуации с анемичной моделью и сервисами?

достаточно будет одного класса User с 50-ю полями или ты все же будешь это дело как-то разбивать?

Артур Евгеньевич
14.12.2017
22:51:12
Тоже много. Были бы тонкие ентити - юзер, продавец, покупатель, регистрация, сообщение и т.д и куча сервисов - мессенджер, товарообмена, регистратор и и т.д

Под тонкими ентити подразумеваю тупо маппинг колонок базы на классы

Артур Евгеньевич
14.12.2017
22:52:11
Разная функциональность по разным модулям

Sergey
14.12.2017
22:52:35
а так у тебя не будет разных модулей и разделения функциональности по ним?

месенджер это не только сущность участника, товарообмен - это не только сущность продавца

и ты можешь каждую из этих сущностей поместить в модули "товарообмена" или "месенджера"

и сделать их изолированными

Артур Евгеньевич
14.12.2017
22:53:24
Например метод buy

Sergey
14.12.2017
22:53:52
Товарообмен я имел ввиду сервис
я понимаю, но выйдет сервис с ~30-40 методов

будешь его дробить?)

Страница 427 из 785