
Sergey
23.02.2018
09:43:45
ну вот приходит к тебе PO и такой "слушай, Дим, нам надо запилить по быстренькому для клиента Пети еще и чуть другие товароы..."
ну то есть у меня упирается все в гибкость и возможность эксперементировать с бизнес логикой без особых рисков для всего остального. Только новые таблички, новые классы и т.д. А если что - можно просто выкинуть.
ну и я не случайно спросил в каких ситуациях ты бы дробил сущность продукта по контекстам. У нас там скидки есть, прайсинг, модификации те же
ну и еще всякие штуки наверняка можно выделить

Google

Sergey
23.02.2018
09:45:47
а если нам надо помимо физических еще и электронные товары?
у них будет чуть отличаться как цикл жизни самого товара так и "доставки"
ну и я не случайно спросил про ситуации при которых ты бы дробил.
опять же, если мы не дробим, приходим к тому что весь контекст будет иметь максимальную сложность реализации, даже если эта сложность оправдана только для части функционала нашего магазина
p.s. немного сумбурно - надеюсь ты понял о чем я

Dmitry
23.02.2018
09:52:02
Если надо "очень по-быстрому" впаять электронные, то добавляем поля type и file.
А если по-медленному, то на поле type навешиваем стратегии.

Sergey
23.02.2018
09:56:15
ясно понятно
не интересно

Dmitry
23.02.2018
09:56:21
Чтобы общее поведение оставалось в Product, а различающиеся подменялось.

Alisher
23.02.2018
10:25:54
Подскажите, как правильно переводятся на русском термины, как cohesion и coupling

Олег
23.02.2018
10:26:44
кохежн
кауплинг

Alisher
23.02.2018
10:27:12
А то, когда говоришь себе на русском начинаешь путаться

Google

Bohdan
23.02.2018
10:27:18
кохижн
каплинг
:D
нет нормального перевода
связность и связанность
внешняя и внутренняя связность
кохижн - внутренняя, coupling - внешняя
внешняя и внутренняя - мне нравится больше

Alisher
23.02.2018
10:28:24
:)

Bohdan
23.02.2018
10:29:16
ну или связность - внутренняя (насколько связный сам модуль), связанность - внешняя (насколько связан с другими)
типа пассивного залога
но это менее понятная формулировка имхо

Aleh
23.02.2018
10:29:24
А внутренняя или внешняя связанность или связность?)

Bohdan
23.02.2018
10:29:42

Alisher
23.02.2018
10:30:04
А можно называть cohesion, как SRP
?

Bohdan
23.02.2018
10:30:13
поясни
это не одно и то же, нет

Alisher
23.02.2018
10:30:50
Но принципы похожи

Bohdan
23.02.2018
10:30:54
хотя в некотором разрезе....возможно

Alisher
23.02.2018
10:30:54
Нет?

Bohdan
23.02.2018
10:31:13
а. еще связность и зацепление
это с википедии

Google

Alisher
23.02.2018
10:33:04
Зацепление, как то стрёмно звучит:))

f4rt~
23.02.2018
10:43:29
хотя в работе часто встречаю "недостаточно кохижн" :D
на ревью и тп

Dmitriy
23.02.2018
10:47:39

Artur
23.02.2018
11:06:18
с учётом вышесказанного возможно это имеет смысл

Sergey
23.02.2018
11:12:35

Artur
23.02.2018
11:12:47

Sergey
23.02.2018
11:12:53

Sergey
23.02.2018
11:14:36
А можно называть cohesion, как SRP
нарушение SRP ~= низкий уровень кохижена. Ну то есть да, SRP базируется именно на этой идее. В GRASP например SRP заменили отдельно принципом "высокого кохижена" и "информационного эксперта"

Artur
23.02.2018
11:15:26

Alisher
23.02.2018
11:16:41

Sergey
23.02.2018
11:17:13
если хочешь перевод - возьми тот который в википедии. Так будет проще хотя бы искать о чем ты

Alisher
23.02.2018
11:17:48
Ну я остановился на варианте, внутренняя и внешняя связанность

Sergey
23.02.2018
11:17:49
но желательно оставить в скобочках и оригинал

Google

Alisher
23.02.2018
11:18:09
При переписке, лучше в оригинале писать

Sergey
23.02.2018
11:18:24
хотя лично мне тоже этот вариант нравится
ну и еще - есть conesence
https://en.wikipedia.org/wiki/Connascence

Artur
23.02.2018
11:22:24
я в опенсорсы пошёл бы только за то, чтоб Протко отхлестал мои ооп'ы

Admin
ERROR: S client not available

Artur
23.02.2018
11:22:36
?

Maksim
23.02.2018
11:22:54
был бы в этом смысл)

Sergey
23.02.2018
11:23:19

Artur
23.02.2018
11:23:51
ты же понимаешь что люди не делают одно и то же

Sergey
23.02.2018
11:23:52
мне нравятся SOLID тем что ты не можешь не нарушить эти принципы. Никак. Рано или поздно у тебя поменяется требование и вот либо OCP либо SRP уже нарушено

Artur
23.02.2018
11:23:55
слой за слоем

Sergey
23.02.2018
11:24:44

Artur
23.02.2018
11:25:22

Sergey
23.02.2018
11:25:42
это разные классы
они никак между собой не пересекаются
может быть общая айдишка

Artur
23.02.2018
11:30:38

Google

Sergey
23.02.2018
11:44:28
ну то есть вся идея в том что бы они не пересекались. Но бывают кейсы когда "надо"

Artur
23.02.2018
11:45:29

Sergey
23.02.2018
11:45:33
и когда надо есть два варианта - сделать что бы не пересекалось но дольше, либо забить и пусть чуть-чуть шаринга будет
но что-то в этом духе да

Artur
23.02.2018
11:46:01
мне вот интересен простой кейс и как его красиво решить
я сюда не дегражировать пришёл

Dmitry
23.02.2018
14:14:59
так, "магазин" это не контекст, это контекстище
Это так кажется в текущем масштабе. Если рядом с таким "Магазином" появится такой же разделище "Склад" со складским учётом и раздел "Бухгалтерия" с актами и налогами, то тогда и будет смысл выделять контексты для фигурирования товара в номенклатуре и накладных.

Sergey
23.02.2018
14:18:32
отдельно от склада
ну короч можно намного более мелкие контексты выделять
а создавать вымышленные ограничения по размерам - это путь в никуда

Anton
23.02.2018
14:29:21
Бегло посмотрел этот yii-shop. Ну такое... я не уверен что такое именно DDD, но это точно не оно.
Где persistance ignorance? Где framework agnostic? Где VO в конце-концов? Где защита инвариантов? Это чисто техническая сторона.
По иделогической будет еще больше вопросов. Те же контексты.
Я не говорю что то что есть это плохо заметьте, но не стоит называть это DDD

Sergey
23.02.2018
14:36:34
ну справедливости ради в репе про ddd ничего и не говорится особо)