Yegor is a CEO at Zerocracy, a software platform for management; a VC at SeedRamp.com; a regular blogger at www.yegor256.com; a proud holder of PMP and OCMEA certifications; a hands-on Java developer and a lead architect of Rultor.com and Takes.org. Yegor lives in Palo Alto, CA and Moscow, Russia.
Not as good as volume 1. But still entertaining and gives food for thought. What I like is that it is briefly written, so you go through it very quickly. And chapter about ORM is very interesting and mind blowing a bit. It gives totally different perspective about saving data to DB than any other resource. And after reading Vol 1 & Vol 2, you can eventually agree with author's approach. Despite it's very hard to use in a real projects.
Making long story short: if liked vol 1, you can also buy this one, and you will find it interesting.
Continuing the same ideas from volume 1, volume 2 uncovers the pitfalls and trade offs of modern frameworks, which violate the OOP principals. In most companies some of the ideas are impossible to apply. Nevertheless I see this book as really valuable for anyone using frameworks like dependency injection containers and ORM, without being aware of the trade offs. In my observations new/young developers that have been introduced to Spring/SpringBoot and Hibernate have no idea of the problems these frameworks bring and how these frameworks are shaping their code decisions. This book will help everyone think harder, before reaching out to the next framework just to save a couple of code lines.
To be honest, the second volume is even better than the first one. It is way more practical and has much larger and more complex examples. The first one was pretty abstract and high-level for me. However, I don't think it's possible to understand the second one if you didn't read the first :)
I knew that objects should be made small (SRP). But only after reading the book began to understand how small they should be. This allowed me to take a fresh look at the code I'm writing.
OOP, which Yegor preaches is very different from traditional representations. And it's probably gently said. I began to write differently. It's difficult. And who said that it should be easy?
Of the minuses I would like to note the binding to java, some techniques are relevant only for it. That does not reduce the value of the book for programmers in other languages.
We live in the time of frameworks and tonnes of generated code. And many of us forget (or even don't know!) core principles of technologies and paradigms which are placed under all these facades. As for me this is awful and need to be corrected. This book is the perfect example of clear line of engineering thinking which should have every of us. Read it if you want to know as much as possible about core basis of OOP. Read it if you want to be open-minded programmer who sees this world without stamped monkey-coder of view.
Great book. There are parts of the book that lack strong arguments (e.g. a case against dependency injection). Nevertheless, I highly recommend this book as it will make your OO code better. You will also re-think some of the things you've been always doing as a programmer. Must read!
With volumes the authors main premise is that OO we are doing is not real OO but procedural with some OO.
He provides plenty of examples and alternatives in parts its opinionated, for me I will take what I can and apply my line is pragmatism over dogma. The real eye opener is seeing a class for what it is and not what it does and it's all about simplicity and maintainability.
Really enjoyed both volumes you will have un learn and re think OO norms.