@oop_ru

Страница 263 из 785
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

и дергаешь домены

а домены уже внутри себя делают работу

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

и живешь счастливо

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 и отвязывает домен от инфраструктуры

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
так bounded contexts говорит что надо просто high cohesion ?
ну я бы сказал что high coheasion это намного более общая штука, а ограниченный контекст - это вполне себе конкретная штука, и если у тебя оно есть и оно реально изолировано - то и с кохиженом все будет хорошо

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

Denis
26.06.2017
15:31:53
оказывается нет это другое слово bound context
Контексты это слабая связанность на уровне модулей отражающих бизнес. Что-бы можно было без проблем целый модуль выкинуть) нет?

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

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

Google
Evgeniy
26.06.2017
15:33:51
coupling - внешняя связанность, как модуль связан с другими модулями
любую внешнюю связанность можно заменить на внутреннюю кинув интерфейс внуторь модуля

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
вообще выбор методологий и принципов зависит от проекта

где то важно где то другое

серебрянной пули нет, как уже тут неоднакратно говорилось

Admin
ERROR: S client not available

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

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

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 и рефакторинг

это работает почти всегда

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

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

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

Sergey
26.06.2017
15:38:30
главеное что бы ты понимал причину, где болит

http://itsadeliverything.com/pain-driven-development

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

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
выучил монады, функции высших порядков и збс))

сидишь без работы)

Sergey
26.06.2017
15:41:35
выучил монады, функции высших порядков и збс))
вот только тебе всеравно придется помнить о зависимостях, декомпозиции, actor model скорее всего тоже придется юзать..

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

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