Признаться, при разработке мне очень импонирует концепция DDD (предметно-ориентированное проектирование). Не всегда, правда, мне удается в полную меру использовать потенциал и принципы DDD, но некоторыми фичами пользуюсь достаточно активно. Самая распространенная из них - Domain Model - сущности, соответствующие объектам предметной области. К сожалению, иногда вижу, что у разработчиков отсутствует некая философия или определенная концепция при работе с доменными объектами. В частности, присутствует неразбериха при передачи данных в разные части системы. Именно на границе домена и внешнего мира, на мой взгляд, и начинается активное взаимодействие Domain Model и DTO.