domain driven design. мысль довольно простая у него: нужно отталкиваться от предметной области, в тесном взаимодействии со специалистами предметной области выработать общий язык, на основе которого создать общую модель, понятную как архиекторам, так и специалистам, затем на её основе построить архитектуру приложения, реализовать её в виде кода. профит.