New Book Review: "The JHipster Mini-Book"
New book review for The JHipster Mini-Book, by Matt Raible, C4Media (Publisher of InfoQ.com), 2015, reposted here:
According to the author, the purpose of this book is to further the knowledge of JHipster, as well as to show Java developers that they can be hip again by leveraging AngularJS, Bootstrap, and Spring Boot, and that JavaScript web development is just another powerful platform that can improve web development skills. After an introduction which provides some brief history behind the Yeoman generator called JHipster, Raible shows how to build an application with JHipster (about 50% of the content), followed by explanations of its UI components (about 35% of the content) and API building blocks (about 15% of the content) in order to help enable reader understanding of the underpinnings of a JHipster application.
In the preface, the publisher comments that InfoQ mini-books are designed to be concise, intending to serve technical architects looking to get a firm conceptual understanding of a new technology or technique in a quick, yet in-depth, fashion: "You can think of these books as covering a topic strategically or essentially. After reading a mini-book, the reader should have a fundamental understanding of a technology, including when and where to apply it, how it relates to other technologies, and an overall feeling that they have assimilated the combined knowledge of other professionals who have already figured out what this technology is about. The reader will then be able to make intelligent decisions about the technology once their projects require it, and can delve into sources of more detailed information (such as larger books or tutorials) at that time."
My review of this book is not written from the perspective of someone who has used JHipster, but as someone who has recently built an application using many of the tools covered by this text, and only just discovered JHipster by coming across this book, and so my insights are mainly based on what I consider to be the level of author thoroughness, based on hands-on experience with individual tools contained within the domain of JHipster. Generally speaking, I think this book is put together very well, although I think the first part on how to build an application with JHipster could probably have been broken down a bit more. In addition, although the author is up-front that JHipster, along with his book, should be accompanied by hands-on experience, some areas that are covered are curiously light on discussion.
For example, Hibernate usage is covered in a manner which seems to be a bit trial-and-error, as though the author does not understand how to use it. To be gracious, perhaps the author is attempting to demonstrate the types of issues a developer new to Hibernate might come across, but this same philosophy would then need to be applied to other tools, such as Spring Security and Liquibase, both of which I have been using for years. And in retrospect after reading this book, I do not think the author ever explains his methodology in this way, instead walking the reader through the material as though he is using these tools for the first time from his personal vantage point.
Reading through some of the explanations is actually painful. But this book is only just over 100-pages in length, and Raible is sure to remind the reader at multiple points in his discussion that developers should reference other materials, and he reminds readers yet again on his closing page that this is a requirement to grasp the material. In my view, the best things about this book are that it minimally increases awareness of JHipster and all of the associated tooling comprised of numerous open source libraries, makes a good attempt at showing how these are all related to one another from the perspective of JHipster, and walks the reader through installation and a minimal level of configuration.
While this is not a review for JHipster itself, my opinion is that JHipster is likely best suited for those already experienced with some of the core tools that it provides, but are looking for a way to ramp up for a new project relatively quickly using AngularJS, Bootstrap, and Spring Boot. A couple years ago, I was at a client which claimed to have a Spring-based project ready to go as a template for me to use, but I soon realized that I would be rewriting half the project, and I had already been developing a new project for a couple months when the existence of this template was divulged. What JHipster appears to do is provide a way to standardize this type of effort. Just realize that you will still have significant work to do (depending on whether you are just using JHipster for a short-term proof of concept), especially around some relatively more complex aspects such as Spring Security that for whatever reason some tend to trivialize. A good effort by the author, available free from the publisher.