Full description not available
A**R
but could be a lot better. Starts off explaining some basics of how to ...
This book is worth buying for lack of other resources, but could be a lot better. Starts off explaining some basics of how to get started with drools, but then rather then progress on how to solve hard and harder problems, it jumps to a reference book and just dumps all the rule conditions. It then seems to jump into some advanced topics such as how to migrate existing data or build dsls. As a reader I would have appreciated much more about common best practices, how to keep rules as simple and understandable as possible, how to abstract common logic in an environment with functions but no unification, etc.
R**S
Five Stars
Great book
L**H
First impressions
This book has a fairly narrow focus, which is just fine when one considers that the potential audience for the book is rather limited. That said, it does a decent job of presenting the information. It uses, as its primary example, the building of a system that has banking information as its primary domain. Throughout the building of the example system, the reader is presented with a series of domain scenarios (and Drools based solutions) that build on each other quite well.A cursory review of the table of contents promises the inclusion of a wide range of Drools related subjects. Covering everything from a basic introduction to declarative, to digging into the Rete algorithm for performance tuning, is a daunting task.The author starts out by providing a simple overview of declarative programming concepts. He goes into the advantages and disadvantages of this approach to building systems, all the while building up a case for using Drools. At the end of the first chapter, Michal tells the reader what is coming up next; including a "look at how to set up the development environment..." The problem is that the next chapter opens by telling the reader to go to Appendix A to read about how to set up the development environment. Unfortunately, this inconsistency in the flow was not limited to this single incident.The instructions that were given (in Appendix A) for how to set up the development environment were adequate. They did not give much instruction as to how a reader would actually install Drools for development, rather it mainly pointed the reader to the Drools/jBPM web sites. The author did provide some example entries for the maven pom files.Going back to the main path through the book, the author did go on to give instruction (mainly through example) on the basics of writing rules, and the Java code to exercise them. As stated above, the inconsistency in the flow of the book was not limited to one or two incidents. Each chapter seemed to jump from syntax instructions, to the explanation of conceptual ideas, to various "tips"; without any consistent pattern. All of these elements are then interspersed with bits of example code.I could go deeper into each chapter, but in summary, I was a little disappointed by this book. I had read, and actually got most of my early Drools education, Michal Bali's earlier tome on Drools 5.0. This follow up just didn't seem to be as useful as that earlier book.
S**Y
A must have book if you are developing an application with complex business rules
We all start with our new projects by promising to follow best practices and good design principles etc.But over the time business rules change and developers keep adding new features or updates existing logic.In this process the common mistake done by many teams is putting if-else conditions here and there instead of coming up with better design to support enhancements. Once these feature turn on/off flags and behavior branching logic started creeping into code then overtime it might become un-maintainable mess. The original developers who design the basic infrastructure might left the organization and the current team left with a huge codebase with if-else/switch conditions all over the code.So we should be very careful while designing the classes holding the business rules and should be flexible for changes. No matter how much care you take you might still need to touch the code whenever a business rule changes.This is a problem because we are burying the business logic in the code. Drools framework tries to address this problem by externalizing the business rules which can be authored or updated by non-technical people as also (at least theoretically :-)).Chapter 1: Programming declarativelyI would strongly suggest to read this chapter even if you are already familiar with Drools.Author Michal Bali explained the problems with putting business rules in code and how Drools addresses this problems.This chapter also has When not to use Drools section which I find very useful to determine whether you really need Drools for your project or is it overkill.Chapter 2: Writing Basic Rules:Here you can start getting your dirty by familiarizing yourself with Drools syntax and trying out simple examples.This chapter also introduces various concepts and terminology of Drools, so don't skip this.Chapter 3: ValidatingThis chapter covers building a decision service for validating domain model. Any concepts can be explained better with an example rather than lengthy explanations.Here author did a good job of taking a real world (if not completely real world, but non-trivial) banking domain model and explained how to build the validation rules with several examples.In this chapter you can find plenty of example code snippets that are commonly used in many of the projects.Chapter 4: Transforming DataThis chapter covers transforming data from legacy system to new systems and applying various rules in the transformation process.Author explained how to use IBatis for loading data which I find as outdated topic, now it is MyBatis with cool new features.Note:But actually I doubt if any legacy system with huge volumes of data can really use this feature at all because if needs all the data to be loaded in memory.I prefer Kettle(Pentaho Data Integration) kind of tools for this purpose.Chapter 5: Creating Human-readable RulesOne of the main promises of Drools is you can configure business rules in human readable format.Ofcourse developers are also human beings(:-)) but here the meaning is non-technical people also should be able to understand the rules and with little bit of training they should be able to configure new rules or update existing ones. This chapter covers authoring the rules using Domain Specific Language (DSL). Author covered wide variety of rules configuration options using DSL including configuring and uploading rules from CSV or XLS files.The rest of the chapter go in-depth of Drools covering advanced topics which I haven't yet gone through.So far I feel it is good read and I would strongly suggest to read this book if you are building an application with complex business rules.
Trustpilot
1 week ago
1 day ago