Size: a a a

Software Design/Architecture/Zen

2020 September 26

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Daniil Kostin
а теперь к DDD
Домен это функциональная модель, т.е. Если есть список, значит это его элементы + добавление, удаление, редактирование. При этом описанное в терминах бизнеса.

Если возникает другой список, например, с картинками значит ли это, что мне надо создавать вторую доменную модель? Или возможно ограничиться выделением абстрактного списка и двумя его потомками типами?
AbstractToDo -> [TextToDo, PictureToDo]
> Описанное в терминах бизнеса

Помимо добавления, удаления и редактирования что-то ещё есть?
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Daniil Kostin
а теперь к DDD
Домен это функциональная модель, т.е. Если есть список, значит это его элементы + добавление, удаление, редактирование. При этом описанное в терминах бизнеса.

Если возникает другой список, например, с картинками значит ли это, что мне надо создавать вторую доменную модель? Или возможно ограничиться выделением абстрактного списка и двумя его потомками типами?
AbstractToDo -> [TextToDo, PictureToDo]
> Создавать вторую доменную модель?

DDD про смысл этих списков, а не про то, есть в них картинка или нет. Если это одно и то же для бизнеса, то это одна модель. Если в бизнесе разные, то и в проекте разные.
источник

DK

Daniil Kostin in Software Design/Architecture/Zen
Dmitry Eliseev
> Описанное в терминах бизнеса

Помимо добавления, удаления и редактирования что-то ещё есть?
пока нет, но просыпается заказчик(с бодуна) и хочет лист Шрёдингера в добавок к остальным или элемент Шрёдингера в списке Ш. С папками Ш. :)
А потом отходит и хочет все это убрать после N новых фич между этими 2мя событиями.
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
Daniil Kostin
пока нет, но просыпается заказчик(с бодуна) и хочет лист Шрёдингера в добавок к остальным или элемент Шрёдингера в списке Ш. С папками Ш. :)
А потом отходит и хочет все это убрать после N новых фич между этими 2мя событиями.
Значит ничего нет. Тогда бессмысленно.
источник

A

Anton in Software Design/Architecture/Zen
Daniil Kostin
а теперь к DDD
Домен это функциональная модель, т.е. Если есть список, значит это его элементы + добавление, удаление, редактирование. При этом описанное в терминах бизнеса.

Если возникает другой список, например, с картинками значит ли это, что мне надо создавать вторую доменную модель? Или возможно ограничиться выделением абстрактного списка и двумя его потомками типами?
AbstractToDo -> [TextToDo, PictureToDo]
Список не обязательно аггрегат, выше можно почитать обсуждение про чат и ddd https://t.me/oop_ru/145946
источник

DK

Daniil Kostin in Software Design/Architecture/Zen
Dmitry Eliseev
Значит ничего нет. Тогда бессмысленно.
На это у меня давно всегда заготовленный ответ:
https://habr.com/ru/post/153225/
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Daniil Kostin
понятно, я отметил: + функционал.
Наверно очевидно, что для списка и папок функционал понятен: создать, удалить, редактировать + для папок добавить элемент, удалить элемент

По большому счету вопрос в том как сделать папки безболезненно отсоединяемыми/выключаемыми
Да и что конкретно должно быть в модели и на каком уровне разграничивать типы списков.
Вы имели в виду, наверное, функциональность, а не функционал

http://devium.me/functional/
источник

DK

Daniil Kostin in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Вы имели в виду, наверное, функциональность, а не функционал

http://devium.me/functional/
Да, не оперирую терминологией. Спасибо за поправку
источник

DE

Dmitry Eliseev in Software Design/Architecture/Zen
А у меня на это всегда есть ответ заказчику, что потренируйтесь сначала месяцок в Экселе или Trello. А потом когда мысли появятся и бизнес-процессы придумаете уже приходите за DDD.
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Там просто забыли про то что в этих классах справа там ад и Израиль, а слева - скорее всего ада и Израиля нет, зато иерархия сложная
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Там выкинут нафиг справа эффорт на тестированание
источник

A

Anton in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Вы имели в виду, наверное, функциональность, а не функционал

http://devium.me/functional/
В разных доменах термин может иметь разные значения
источник

DK

Daniil Kostin in Software Design/Architecture/Zen
Anton
В разных доменах термин может иметь разные значения
в разных контекстах скорее
источник

SM

Sergey Milimko in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Вы имели в виду, наверное, функциональность, а не функционал

http://devium.me/functional/
Когда программисты используют это слово они имеют в виду функциональность. Очевидно же. Ты разве математик?
источник

AD

Apache DOG™ in Software Design/Architecture/Zen
Просто не понятно почему кусок лапши на 100500 строк меньше суппортить чем куча классов по чуть чуть строк
источник

A

Anton in Software Design/Architecture/Zen
Daniil Kostin
в разных контекстах скорее
Хорошо, в разных онтологиях предметной области)
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Sergey Milimko
Когда программисты используют это слово они имеют в виду функциональность. Очевидно же. Ты разве математик?
Скорее, да, я больше теоретик (data/codata/immutability/pure functions/business logic/invariants)
источник

A

Aleksandr Khristenko in Software Design/Architecture/Zen
˸̧̨ ͅBlack Akula˸̧̨ ͅ ̤ ̬̪
Вы имели в виду, наверное, функциональность, а не функционал

http://devium.me/functional/
Хех, не одного меня значит бесит, когда вместо функциональности говорят функционал
источник

˸A

˸̧̨ ͅBlack Akula˸̧̨ ... in Software Design/Architecture/Zen
Aleksandr Khristenko
Хех, не одного меня значит бесит, когда вместо функциональности говорят функционал
Знакомый из другого чата эту страницу создал)
источник

T🐜

The Ant 🐜 in Software Design/Architecture/Zen
Daniil Kostin
логика TodoList + папки, только папки как дополнительный модуль, который можно применить или отключить.
ты определись уже, тебе надо туду или систему учета приходно-расходных операций со сведением дебитов-кредитов, вычислением всяких сальдо и прочих бухгалтерских штук.
Потому что это разные предметные области. И первую ошибку, которую ты совершил - подменил предметную область, упростил до понятных тебе терминов.
источник