The Clean Architecture by Robert C. Martin https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html