Вы имеете ввиду что должна быть луковичная архитектура? Наверное у нас нет того о чем вы говорите по причине наличия Хибернейта. В этой статье говорится "Самым популярным нарушением луковичной архитектуры в современной практике является мапинг Hibernate."
Сергей Горностаев, да слои примерно такие:
- контроллер grpc
- бизнес логика - может быть несколько слоев или не быть совсем
- слой сервиса о котором я написал в вопросе
- репозиторий
В котлине есть так называемые Scope functions, которые позволяют избежать перомежуточных переменных. Я решил использовать Optiona...map() с этой целью.
Я тернарный оператор я упомянул потому, то там нельзя аргументом написать две строки вот так:
var something = getSomething();
var a = new Class1(something, something, something);
а используя Optional можно
val b = condition ? firstValue : Optional..map().get()