
Evgeniy
26.06.2017
15:18:05
так bounded contexts говорит что надо просто high cohesion ?
что тут такова принципиального ?

Denis
26.06.2017
15:19:45
Скорее про бизнесовые границы

Evgeniy
26.06.2017
15:20:12
ну high cohesion это когда твой код отражает то что хочет бизнес

Google

Evgeniy
26.06.2017
15:20:20
это в ddd называется домены
а все технические детали ниже доменов по сути
это просто следствие от правильно использования ddd, solid, grasp, которые ты получаешь
получается у тебя есть условно слой инфраструктуры
например http middleware
или консольная команда
ты выдергиваешь параметры или из http request или из input
и дергаешь домены
а домены уже внутри себя делают работу
получается твои домены отражают бизнес объекты которые дергаешь
и живешь счастливо

Aleh
26.06.2017
15:24:17
cqrs и cqs это ж разное

Google

Aleh
26.06.2017
15:25:04
делить на “что-то меняющие” и “ничего неменяющие” это ок

Evgeniy
26.06.2017
15:26:06
нет же
а с чем должно быть тогда высокое сцепление?
как не с бизнесом?

Aleh
26.06.2017
15:26:19
про ddd Сергей выше описал, это просто отделение сложных понятий из реального мира и правил их работы, от всего остального
сцепление функции и поля
функция юзает поле, значит сцеплены
не юзает, значит не сцеплены

Evgeniy
26.06.2017
15:27:04
что еще за поле ?

Aleh
26.06.2017
15:27:12
что угодно

Evgeniy
26.06.2017
15:27:28
функция юзает что угодно значит сцеплены?
не бред ли?

Aleh
26.06.2017
15:27:34
нет

Evgeniy
26.06.2017
15:27:46
я просто слово поле заменил на что угодно

Denis
26.06.2017
15:27:57
Cqrs вытекает из cqs и как раз про srp и отлично ложится на bounded contexts и отвязывает домен от инфраструктуры

Aleh
26.06.2017
15:28:29

Evgeniy
26.06.2017
15:28:52
просто жесть, сколько пишу код всегда считал
если твой код отражает то что говорит бизнес и ты можешь его прочитать и тебя поймет бизнес

Google

Denis
26.06.2017
15:29:11

Evgeniy
26.06.2017
15:29:16
то это high cohesion

Aleh
26.06.2017
15:29:26
нет

Evgeniy
26.06.2017
15:29:28
оказывается нет это другое слово bound context

Aleh
26.06.2017
15:29:34
high cohesion вообще не про декларативность
cohesion - внутренняя связанность, как части в модуле связаны между собой
coupling - внешняя связанность, как модуль связан с другими модулями
определение модуля и его части любое
ну точнее определение части любой, а модуль из частей состоит))

Evgeniy
26.06.2017
15:30:56
да логично

Sergey
26.06.2017
15:31:09

Evgeniy
26.06.2017
15:31:11
потому что нахуй не нужен код внутри модуля если он нискем там не связан

Denis
26.06.2017
15:31:53

Like
26.06.2017
15:32:00

Evgeniy
26.06.2017
15:32:10

Aleh
26.06.2017
15:32:22
замкнутый круг)

Evgeniy
26.06.2017
15:32:27
я много людей и много мнений слышу

Sergey
26.06.2017
15:32:39
Делай норм, норм будет)
cqrs может и вытекает из cqs, и прославляет славу Бернтранда Мэйера, но с ним тоже надо быть аккуратным. Это не серебренная пуля и у нее есть свои нюансы.

Google

Evgeniy
26.06.2017
15:33:51

Sergey
26.06.2017
15:33:54
замкнутый круг)
ну почему-же, просто если ты через кохижен смотришь, то тебе надо определять как-то почему эти элементы модуля должны быть вместе. Ограниченный контекст - это по сути тоже самое. По сути все сводится к SRP.

Evgeniy
26.06.2017
15:34:15
для этого веселья

Denis
26.06.2017
15:34:44
я много людей и много мнений слышу
Профит в том что можно нескольким независимым командам или кодерам работать над модулями без сайд эффекта для других. В идеале эти модули должны быть ооочень обособленными. Из общего иметь только шаред кернел либу

Evgeniy
26.06.2017
15:35:12
вообще выбор методологий и принципов зависит от проекта
где то важно где то другое
серебрянной пули нет, как уже тут неоднакратно говорилось

Sergey
26.06.2017
15:35:32

Admin
ERROR: S client not available

Sergey
26.06.2017
15:35:45
обычно в этом "шэред модуле" только инфраструктура общая

Evgeniy
26.06.2017
15:35:48
и поддерживать все эти умные слова не всегда имеет смысл)

Denis
26.06.2017
15:35:54

Sergey
26.06.2017
15:36:17

Evgeniy
26.06.2017
15:36:30
это сергей от проекта зависит
количество людей внутри него
срок этого проекта

Sergey
26.06.2017
15:36:41
ну то есть тот же кауплинг, хохижен, srp и dry - они все немножко конфликтуют между собой и заставляют тебя искать баланс

Evgeniy
26.06.2017
15:36:43
и тд

Google

Sergey
26.06.2017
15:37:03
а баланс он от контекста, с этим никто не спорит
а вообще есть pain driven development и рефакторинг
это работает почти всегда

Like
26.06.2017
15:37:30

Sergey
26.06.2017
15:37:36
иногда просто слишком дорого доводить до "боли"

Evgeniy
26.06.2017
15:37:59
ну да только я вместо контекста проект употребил)

Sergey
26.06.2017
15:38:04
А это что уже
все ок если уровень боли в заднице от твоего кода не сильно велик. А если начинает уже свербеть - то рефактори.

Like
26.06.2017
15:38:30

Sergey
26.06.2017
15:38:30
главеное что бы ты понимал причину, где болит
http://itsadeliverything.com/pain-driven-development

Denis
26.06.2017
15:39:48
Мне кажется это методология индусов написавших проект над которым нам приходится сейчас пыхтеть)

Evgeniy
26.06.2017
15:39:54

Sergey
26.06.2017
15:40:08
буддисты, что с них взять

Evgeniy
26.06.2017
15:40:41
надо в фп чат
может у них там все проще)

Sergey
26.06.2017
15:40:58
у них проблемы примерно те же

Aleh
26.06.2017
15:41:06
а мы тут ооп разве обсуждали? ))

Evgeniy
26.06.2017
15:41:09
выучил монады, функции высших порядков и збс))
сидишь без работы)

Like
26.06.2017
15:41:24

Sergey
26.06.2017
15:41:35

Evgeniy
26.06.2017
15:41:59
actor model это речь о akka ?