Book Review: Full Stack Development With JHipster
Book Review: Full Stack Development With JHipster
This book takes you through the use of the JHipster development platform, from the domain language to the cloud, continuous integration, and deployment.
Join the DZone community and get the full member experience.Join For Free
Containerized Microservices require new monitoring. See why a new APM approach is needed to even see containerized applications.
The world has had microservices madness for quite a while now. If you were put into a time capsule in 2010, at the height of Java EE, and suddenly woke up in 2018, you would probably feel overwhelmed by how the software architecture landscape has changed.
Everything nowadays is about microservice-style development and operations (DevOps — fun fact, the word was coined one year before you were placed in your capsule). Many mission-critical applications run "in the cloud" and bear no resemblance to the good old days of the monoliths and huge monsters you used to build. Now there are terms like containers, orchestration, and "Eventual Consistency." The world is a very different place indeed.
Enter JHipster. It is a development platform. It is many things, among them a Yeoman Code Generator. It is a "way of thinking" that takes Spring Boot's motto of "convention over configuration." It is a wizard-style console set of tools that, once you provide answers to some basic questions, proceeds to generate the scaffolding of your application, ready for you to focus on what matters most: your secret sauce, your business logic, your data model.
Even though JHipster is going to generate code for you, it doesn't force you into the world of microservices; you can start with a monolithic approach and then start slicing and dicing into a microservice if you so choose.
If the last two paragraphs did not fully paint the picture as to what JHipster is or what it can do for you, that's why this book is needed. JHipster comes with the potential of saving you a lot of time; but like every fancy tool, it requires an understanding of what the tool is capable as well as having some basic concepts.
The authors begin with an introduction to modern web application development, with a quick refresher of terms, such as frontend and backend then promptly moving to architectural patterns and empowering you to choose which pattern is best for your app. Believe it or not, the authors don't have an agenda. They are not monolith haters. As a matter of fact, the first part of the book is them explaining how JHipster can help you (expedite) your journey toward that pattern in your app.
Right after, you're moved into a crash course of the different technologies available for you to choose to use on your web app; some names include Bootstrap, Angular, React, testing tools such as Karma. Then you move to the backend with Spring, Hibernate, etc. The idea here is mainly for you to have a very basic idea of what each technology (framework) means and is capable of doing.
Then you move to the different database options, divided into SQL based and non-SQL. This is particularly useful for you if you have been confined to SQL only.
After this, you're ready to get your hands dirty and start wielding the power of JHipster. Your first assignment is to create a monolithic application. You're guided through the wizard-style navigation of the JHipster console.
JHipster Domain Language
Now you're ready to start using some of the more powerful aspects of JHipster. Specifically, the JHipster Domain Language (JDL) is a powerful tool for generating and maintaining the code that represents your data model and the relationship between entities. The generator takes care of DTOs on the back and frontend. Then you step it up a notch with JDL studio, an online IDE that makes the process even easier.
Testing, Continuous Integration
Now is time to plug in your application into the world of Continuous Integration. You'll explore JHipster's ability to feed onto Jenkins and other tools alike.
To the Cloud and Beyond
Now it's time to start thinking on slicing that monolith of yours and transition onto a more distributed approach based on microservices. You start with Docker, the Docker hub. Then you learn that JHipster can also help you with the final stage of your cycle: deployment. It can help you deploy to AWS, Cloud Foundry, Heroku, etc.
Lastly, you will get more into the weeds of running a microservice environment, you'll learn about how JHipster can help with orchestration, service discovery, health tracking. This part gets very detailed, which is good because the microservice landscape is wide. This is another tour de force in terms of the number of new technologies to which you'll be exposed. Don't worry you don't linger too long at each; the idea is just to have a broad picture of how the landscape looks. Then you can hone down particular spots of the landscape you want to explore.
The tour ends with a section on best practices as well as next steps. Throughout your journey, the book remains relevant and its cadence is enjoyable. At the end you'll feel like you are caught up, at least to get started after your time capsule journey; all those years from 2010 to 2018. You're up to date, or at least have a very good pulse of how things changed.
Opinions expressed by DZone contributors are their own.