One Minute Bottom Line
|This book is for intermediate to experienced Java developers and architects. The author covered many advanced topics of Drools 5.0 like DSL, Complex Event Processing, Drool flow etc.
Over all, excellent book.
I thoroughly enjoyed reviewing this book and its example code. It covers many advanced topics and it's clear to me that the author worked hard to put together the book's contents.
I enjoyed that, throughout the book, the author demonstrates a high level of knowledge on good software development methodologies, J2EE, Drools and other component technologies. You'll get a great overview of 3rd party or open source frameworks like Jakarta commons, Joda-time library, iBATIS, and more. Also, concepts like domain specific languages, complex event processing, and drools flow are explained very well.
In terms of areas where the book could be improved, there's some formatting issues and all the figures are without numbers and captions. Up until chapter 12, all of the code examples are more or less Junit testcases. It would have been better if the author had started out with a sample web application first and then expanded it as more techniques and concepts are introduced to have a final working application. While the test driven approach is good, this book is not on test driven development and there is an over-emphasis on Unit Testing rather than showing a full working application. Since Eclipse is an IDE for Java Developers, business analysts don't need to install and learn it. Most of the business analysts prefer Web UI and it's a little disappointing that the book doesn't cover WEB UI Guvnor (formerly, called BRMS) in detail. Lastly, I must mention that this book is not for beginners and you need to have basic knowledge of Drools before reading this book.
Here's a quick summary of the book's key content:
Overall a great introduction. The author weighs advantages and disadvantages of Drools and also compares the techology to alternatives.
Here, a good overview is given on drools syntax, conditions, and Rule consequences. You'll learn how to write business rules. A high-level overview is given on Drools API.
This chapter discusses how data transformation works using rules. The author gives a good overview on jBatis and how to save and load transformed data. Unit tests are given for each of the rules and the author does a good demonstration of mock objects.
Here, the author gives an excellent overview on using DSL and decision tables. In addition, there's a great outline of advantages and disadvantages of decision tables.
This chapter offers useful details on Stateless sessions as well as detailed coverage on logicalInsert and serialization.
In this chapter, the author gives you excellent coverage on Drools flow, work items, and custom work items. Pretty good explanations are also given on subflow testing and Human tasks.
This is a high-level overview on JPA and Spring Framework.
This last chapter offers a good explanation of Rete’s algorithm. I did get lost the first couple of times; you need to have patience in reading this part. The author also sums up here with good hints on rule optimization.
In conclusion, this book is for intermediate to experienced Java developers and architects seeking to integrate Drools Rule Engine with enterprise Java applications. The author covers so many advanced topics. As stated earlier, I think that this book is, over all, excellent and I highly recommend it.