Re[18]: Что если не разделять строго dto, entity, bo...
От: Sharov Россия  
Дата: 31.12.25 00:13
Оценка:
Здравствуйте, gandjustas, Вы писали:

S>>А какую проблему решает хороший код, если он даже не пытается моделировать предметную область, т.е. не оперирует необходимыми абстракциями?

G>1) Уменьшает дублирование кода
G>2) Уменьшает количество связей и сайд-эффектов
G>3) Уменьшает цепочку вызовов и количество промежуточных слоев между вызовов и действием
G>4) Увеличивает быстродействие
G>5) Уменьшает неявную передачу данных и изменение стояния
G>Это все вещи связанные, но в некоторых местах могут противоречить друг другу, поэтому хороший код это баланс.

Ну т.е. код ради кода, понятно. Ну вот есть хороший код, который плохо решает поставленную задачу, поскольку автор
толком не разобрался в предметной области. Ну и какой прок от этой программы кроме эстетики кода?
Ну и самый главный вопрос, а как всему вышеперечисленному мешает оперирование объектами доменной модели?


S>>По-моему, даже на не ООП языках типа С люди стараются оперировать абстракциями в коде.

G>Вы как-то слишком широко применяете слово "абстракция". Когда вы создаете класс с набором свойств это не абстракция. Реализация интерфейса это тоже не абстракция. Абстракция это то, что использует такие классы или интерфейсы. А писать такой код нет необходимости. Большинство полезных абстракций уже есть в библиотеках, зачастую стандартных.

Делаю какой-нибудь реалистичны автотренажер или игру для машин, есть в стандартной библиотеке класс автомобиль, мотор и т.п.?

G>>>Могу показать примеры хорошего структурированного кода, где нет ничего, что можно было было назвать "моделью предметной области". Опять-таки можно сказать что это простые примеры, но я не видел сложных примеров с ДДД, где везде хороший структурированный код.

S>>Давайте, а то мне кажется мы говорим о разном, подразумевая "модель предметной области".
G>Начнем с простого, позже смогу вырезать кусок из реального проекта.
G>Недавно делал пример для статьи на Хабре https://github.com/gandjustas/habr-post-stock-api, АПИшка для резервации заказов, работает с базой, содержит очень важную для бизнеса логику. Это как маленький кусок большого приложения

Ну мы ведем речь про явно более крупные приложения, а не про crud на 3 операции.

G>Там даже есть абстракция — очередь запросов (она не шибко полезная в целом)


Зачем, лукавое это? А что стандартная библиотека, кстати, не помогла?

G>Что там является "моделью предметной области", в чем её ценность, и как она влияет на остальные части кода?


Ну как минимум https://github.com/gandjustas/habr-post-stock-api/blob/main/Model.cs
Кодом людям нужно помогать!
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.