@oop_ru

Страница 523 из 785
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
> Можно начать говорить об архитектуре yii... Чистота кода зависит от программиста, а средств yii хватает для всего Вот из-за такого непонимания объекта спора и вытекают все "бла-бла-бла". Давайте всё-таки разделять: Чистота и удобство *своего* кода зависит от программиста. Чистота и удобство *кода фреймворка* не зависит от программиста. Со своим кодом проблем нет. Все "затыки" происходят при попытках взаимодействия с кодом самого Yii.
> Чистота кода зависит от программиста, а средств yii хватает для всего не хватает этого. yii просто заставляет юзать иногда плохие решение. типо сервис локаторы. Только в последних версиях . они начали делать интерфейсы к своим "компонентам" и то потому что в yii чате я постоянно про это им напоминал. и то есть интерфейс Request но я так не сообразил как его прокидывать в метод. =( пришлось юзать SL

Sergey
23.02.2018
11:12:35
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
Связанность то и другое, а когезия звучит прикольно, только людям придется переспрашивать:)
а ты думаешь что ты скажешь "сцепленность модуля" и людям сразу станет понятно почему utils классы это низкая степень этой самой сцепленности?

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

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

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

Ну я остановился на варианте, внутренняя и внешняя связанность
ммм... тут можешь напороться на конфликт с afferent и efferent coupling)

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
ты же понимаешь что люди не делают одно и то же
да, понимаю, и не говорю что ООП это панацея, говорю лишь что у большинства нет ООП, но оно работает. Оно и раньше работало, и будет работать)

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
не ну могут, но по идее не должны
UserBuyerModel:getById($user->getId()) ? :)

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

UserBuyerModel:getById($user->getId()) ? :)
ну давай назовем его Customer

но что-то в этом духе да

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 ничего и не говорится особо)

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