Здравствуйте, Shmj, Вы писали:
S>Для затравки: https://habr.com/ru/articles/903426/
S>Вот сейчас как принято:
S>1. Слой сервисов — отдельный оъект. Тут не от нас зависит — в виде, котором вернет внешний сервис, не удобный для нас.
S>2. Слой данных — этот же объект чуть иначе представлен. Так же СУБД не все поддерживает, упрощает для нее.
S>3. Слой Domain — уже идеальное представление для нас.
S>4. Ну и само отображение на форме.
S>Итого — чтобы добавить одно поле — нужно сделать изменения в 4 местах + в конвертерах (которые преобразуют между слоями). Допустим 5 мин. на каждое изменение — уже 20 мин.
Программировании существует два вида проблем(сокращенно):
1. Сесть и написать код, т.е. это не проблема Это все кроме Domain и сервисов
2. Это собственно проблема. Это то что находится в Domain и сервисах
Проблема в том, что у многих 1 и 2 это одно и тоже.
Т.е. код который решает проблему это собтсвенно сервисы и домен. Остальное это просто обслуга всего этого. На практике этот подход реально работает, только нужно уметь им пользоваться.
Про маппинг и конверторы. Вот во многих книгах первое про что пишут, так это про границы. Граница — самый простой архитектурный шаблон. Следовать ему не требует большого ума и средства, а эффект хороший. В конце концов лучше иметь много комков грязи разделенных границами, чем один большой.