One of the best books I’ve read about design is Domain Driven Design: Tackling Complexity in the Heart of Software, by Eric Evans. InfoQ has a small ebook called Domain Driven Design Quickly that provides a nice summary of the book. It was a good refresher for me as I read DDD about three years ago.
So What is Domain Driven Design? Read the link to have a good overview. Here are the two most important points:
- Focus on modeling the domain and domain logic of your application.
- Build a “Ubiquitous Language” that is used by all the team (from domain experts to analysts to developpers).
The most interesting part of the book for me was the patterns presented as the basic building blocks of a model-driven design: Layered Architecture, Entities, Value Objects, Services, Modules, Aggregates, Factories, Repositories. These are all very simple but fundamental patterns in software development. These are types of objects that are present in all designs. Understanding the difference between a value object and an entity is crucial and can help simplify a design.
The book also discusses the importance of iterative design, the importance of incorporating back what you learned about the domain in the model as you iterate and how to preserve the integrity of the model. There is a good discussion of ways of separating the model as the team gets bigger.
The value of this book for a Rails developer
Ever heard about skinny controller, fat model? This is THE book about building a rich model.
However, it really depends on the type of application you’re building. Most Rails application are mostly concerned about CRUD operations without too much logic behind. You won’t get out much from this book.
But if you’re working on a business app with a lot of business logic, then this is a must-read.
The ebook also has a small interview with the author. He highlights the expressiveness of ruby and mentions that DSLs are probably the next big step in Domain Driven Design.
Popularity: 31% [?]
ISOS looks at the last 25 years of computing and provides an interesting look at what went wrong for some companies: how Wordstar lost the word processor market, the failure of the IBM PC Junior, what happened at Ashton-Tate with dBase, etc.
Positives: The writing is really engaging. Once you start the book, you will not put it down. All the stories are very interesting and well written.
Negatives: There isn’t a lot of analysis of what went wrong. It’s mostly the facts, plus a “they made a positioning mistake” sentence and that’s it. I do not understand how the in fighting between two groups of developers at a company can be considered a marketing mistake. Sometimes the author likes to be clever and his humor might annoy some people.
Conclusion: Well worth your time if you like reading about the history of the computer industry and if you would like to avoid some of these mistakes yourself.
Popularity: 7% [?]
People who know me thinks Amazon.ca survives because of the “few” orders I make from them. Here what’s in my last, in case you’re wondering what I’ll be reading in the next few weeks:
- The Art Of The Start [Hardcover]
By: Guy Kawasaki (Author) - Code Generation in Action [Paperback]
By: Jack Herrington (Author) - Non-Designer’s Design Book, The [Paperback]
By: Robin Williams (Author) - The 4-Hour Workweek: Escape 9-5, Live Anywhere, and Join the New Rich [Hardcover]
By: Timothy Ferriss (Author) - Ruby Way, Second Edition, The: Solutions and Techniques in Ruby Programming [Paperback]
By: Hal Fulton (Author) - Fooled By Randomness: the Hidden Role of Chance in Life and in the Markets [Paperback]
By: Nassim Nicholas Taleb (Author) - Founders at Work: Stories of Startups Early Days [Hardcover]
By: Jessica Livingston (Author) - Dip [Hardcover]
By: Seth Godin (Author)
Popularity: 6% [?]
Nebula and Hugo award winner in 1972 and 1973. Humanity finds an unlimited source of energy, but it will destroy the sun. The book is divided in three parts, each presenting a different viewpoint: a young scientist trying to convince of the danger, the aliens responsible for the energy source and a scientist on the moon with the help of a female intuitionist.
If you like Asimov’s style, you will like this book. If you don’t, the book has the same flaws as most of his writings. Character development is limited. Most of the book deals with side stories. The first part ridicules the ego and lust for fame of scientists. Asimov then describes a strange alien society where they live in groups of 3 (a Rational, an Emotional and a Parenting), how they make love and evolve to another form after they have 3 children. The last part is about the difficulties involved living on the moon. The “real” story occupies a tenth of the book and there isn’t much development, other than finding a solution.
I personally love Asimov’s imagination and I couldn’t stop reading once I started, always a sign of a great book. 4.5/5 stars.
Popularity: 11% [?]