Whenever we struggle about where to put a piece of code, whenever we ask to ourself if it would be better to create a different application, maybe a microservice or a library; whenever we think in terms of generalization, boundaries or code reusability we are thinking about architecture. This set of books give a good insight of problems and solutions related to these questions

Clean Architecture: A Craftsman’s Guide to Software Structure and Design

Robert C. Martin

Not all the code we write serve to the same purpose. There is business logic, storage access, presentation and exchange, communication protocols and so on. How can we organize all this is a scalable, maintanable and easy to understand way? The content of this book is the answer. A small set of universal rules that can be applied to any language and framework which will help us to build a lasting successfull software