By the end of summer the book titled “Java Limpio” was released. In the first third of the book the Java programming principles are covered with many specific details of the language. Then the attention is focused in the good programming practices that every single developer should master, despite the language is used: unit testing, refactoring, patterns, clean code, solid principles, lean and Scrum methodology. Actually the lack of technical disciplines makes the agile process to become just a simple business process without the ultimate goal: to make better software.

To become a good developer you should create maintainable, easy-to-read and clean code following good practices, and that is what Software Craftmanship is all about. But it is also necessary to know which tools could make our software easier to be developed and maintained. Anytime you are programming enterprise applications or any other kind of projects accessing data you will be applying common patterns such as MVC, DAO and dependency injection tools. There are frameworks for every language, but when it comes to Java, the indisputable leader after more than a decade is Spring.

At its core, Spring is a dependency injection framework that provides support for any features an application may need, such as database access, web development, aspects, and it is capable of work with many other available frameworks like Hibernate. For any developer willing to work with enterprise Java environment, Spring is a must, as well as other usual companions like Hibernate, and tools like Maven, Gradle, Git, etc. And whatsmore, all the technologies that have emerged over the last decade around the web, the noSQL databases and the like, are already available to be integrated with this framework.

According to this, we are preparing a book about Spring that hopefully will become a useful guide for modern JEE development. We have experience as a developers and also as teachers and mentors of this technologies, with other works published around these particular area. That allows us to meet the requirements not olny for developers looking for thorough references but also for those who are new to this software ecosystem.

This work will be long enough for those who need a first dive as well as deep enough for the already initiated that need updates on version 5 of Spring. Therefore the basic principles of dependency injection, aspects, data access, inversion of control, MVC projects and REST resources are covered throughout the book. In addition to that, a wide variety of areas will be exposed as Spring boot, different template engines, reactive spring, etc. Always showing simple proof of concept projects to quickly understand the idea; so once you get the ball rolling we will show how to implement complex developments involving different elements of a JEE project.