1. The Problem 2. How Did We Get Here? 3. What's Going Wrong? 4. Five Dogmas That Hold Us Back 5. The Vertical Integration 6. The Art of Querying 7. The I/R Model 8. Implicit Services 9. Persistence-Aware Programming 10. The Client
A truly interesting read. But I'm not so sure whether it's a REALLY good one ... This book is great when it comes to *emphasizing* problems. Really - and in fact there's a lot of value in that. It brings up very clear examples of why layering means overhead or why "microservice-style" data ownership ends up in major inefficiencies. I haven't found any other book that pinpoints those issues so well.
The problem is that (IMHO) it fails utterly when it comes to ... solutions. I don't mind vertical integration but the approach author has proposed is extremely naive - it's clearly visible e.g. when he tries to clarify his approach to authorization & data access. Maybe I'm biased (I'm a dedicated proponent of specific contracts) but: * author trivializes the complexity of modern day business logic * his proposed notations are somehow repetitive to GraphQL, yet they feel less coherent and not that well-thought (lack polish)
Don't get me wrong, there are some absolutely terrific observations here (e.g. about majority of DBs being just a collection of hierarchical data trees linked with some additional, explicit relationships), but ... it's not just that solutions depicted in the book do not exists (yet). The point is that even if they existed, they would NOT (IMHO) fix the problems author mentioned. They would reduce boilerplate, but would not help with coupling, call control and such.
Anyway, I like ambitious, daring ideas, so just because it's so thought-provoking, I'll rate it as 3 stars.
Nice ideas but I’m somewhat frustrated that I can’t use any of this as the solutions offered do not exist. It’s also sufficiently different that I can take any learning into my other programming activities. It’s not like being able to use functional programming techniques in imperative code.
Once you realise this the remainder of the book feels like a waste of time to read.
If it were released as a paper with accompanying prototype software it would be a nice post-grad project. It isn’t worth he price of a book though.
This is a critical evaluation of the current software architectures. The insight is very valuable, but the proposed solutions are theoretical, or non-applicable. It was nice to read, but for the active developer it provides nothing useful to the day-to-day job.