Object Thinking (Developer Reference)
G**I
A nice compilation of heuristics for good OOP design
There are n solutions to a single problem. All of them right in solving the problem however only a few extend the existing system at a 'natural joint' i.e. where it is consistent with the original structure/intent or theory of the developer. Such changes lead to systems that are easy to take-down and reassemble when you hit a dead end.. (along the lines of the Lego Brick metaphor, if you find that a brick doesn't give you the shape you want, you just chuck the brick and plug in a different shape.) This in fact is the bulb moment behind the XP practice of 'Metaphor'. Identifying the right set of objects and the distribution of responsibilities among them to suimulate a real world scenario is the sign of a master object designer. This book will not make you an artist but will give you some good pointers nonetheless. * The first few chapters help the reader understand between the culture difference between 2 camps of 'scientific logical method-driven designers' and 'heuristics-driven artistic social designers'. * Chapter 3 outlines the 4 fundamental tenets of object oriented thinking. * Chapters 4 n 5 throw some light on the terminology and subtle thinking differences. * Chapter 6,7,8,9 are the 'How-to'/actionable chapters. * Chapter 10 is just bizarre... disjointedThe book as a whole doesn't exhibit 'flow'... something feels off. The book also doesn't promote lucid language frequenty throwing in important sounding words :)The book definitely could have been shorter to make a better impact- I liked a bunch of ideas like Object Cubes (an extension to the CRC Card) as a thinking tool (I don't think I'll be building any physical cubes), the 4 presuppositions of object thinking, 'All inheritance must be based on behavior extensions', the little 'Behind The Quotes' sidebars , 'Object as a person' metaphor. Self-evaluating rules, Event Dispatchers and the DataItem type (as opposed to passive data) are interesting. That said it is a refreshing (though opinionated) change to read about the craft behind OOP. 4 out of 5 stars.
M**R
Superbly written, profound content
The criticisms of this book using big words are unfounded. OOAD is a complex idea (after you read this book, this will become crystal clear if it isn't already) and therefore needs and incorporates a robust vocabulary to articulate complex processes and ideas. If you are put off by big words, you will not be able to read about science, philosophy, mathematics or programming, all of whose ideas, by the way, are juxtaposed in Object Thinking.As well, to say this book is "deeply slanted" and that the author "foams at the mouth" reagarding current programming practices is to completely disavow oneself from reality. Take a quick and simple peek and the current state of software design/projects/programs. See anything amiss? How about cost overruns, and projects that either get shelved halfway through, or take 5 times as long to build as planned. Mr. West simply says that true OO is rarely practiced, that there is a better method, and here it is. If anyone has any credible evidence that XP/Agile programming is the same or worse than traditional OO or structured programming practices, be sure to write your own book on it. It will go along ways to disproving theories that Dave West and others put forth.For those who are open to expanding their current views about programming, get this book. Dave West is, at the least, a gifted writer whose book content is profound, and is a must for any serious computer programmer.I thought I knew what OO programing was; I was wrong. It has nothing to do with, at its deepest (and true)level, programming or computers. It has everything to with the human condition and how we perceive and process the world around us.This is a must-have book for anyone who aspires to be, or already is, an OO progammer. Superbly written, with profound content.This is a no-brainer: buy it.
W**D
Content-free grammar
I almost gave up on this book after the first 100 pages. I should have. I managed to hang on to within 25 pages of the end. That was where Mr. West presents the reader with the formula X=4q+(p*r), and solemnly announces (I'm not making this up) "4 represents a constant value," with the word 'constant' set in italics to emphasize its gravity. By the standards set elsewhere in this book, that qualifies as a technically profound statement.At least it's not just plain wrong, as were statements elsewhere in the book. For example, p.270 asserts that "Ensuring that it's possible for two objects to exchange messages is a matter of visibility: the objects have to be able to see each other." Well, no. Systems like Linda allow objects to leave messages for each other at anonymous drops. Component systems like the Bean Box count on some third party able to see both, a 'Mediator' in the Gang of Four terms that West generally disparages. Heck, anyone who's ever seen a Unix command pipeline would know how silly that claim is. He also asserts (p.253) that over-riding a superclass method causes "cognitive dissonance." For those not familiar with psycho-babble, that means it confuses him.Those are probably low points, since the rest of the book is so vague and philosophical that it neither informs nor misinforms. Mr. West goes on at length on the hermeneutics of objects and their postmodernist interpetations (p.59). He goes on about how Alexander's design patterns have been misunderstood by mere application, how their real purpose is personal transformation within the user. Mostly, he just goes on.By now, I guess my lack of fawning shows that I haven't been born again into the mysteries of "Object Thinking," whatever that is. True believers initiated into the mystery will probably say that I'm not competent to comment on the wonderfulness of The Way of West. Well, maybe that's a good thing.I wish Mr. West all success in his navel-gazing. Maybe if he's busy with that, he won't get in the way of people trying to get work done.//wiredweird
Y**O
I'd like to give six stars to this book
Great book about object oriented design, programming, analysis, and thinking. The book doesn't contain primers of Java code or any other practical examples. Instead, it gives a high-level overview of what is an object, how it differs from a data structure, how to think like an object, and why object thinking is a more effective approach than a procedural one. The book has a lot of references to other books, researches, ideas, and ideals. It is more a philosophical prophecy than a programmers guide.
R**F
I tried but...
Recommended by Avdi Grimm, but sorry I didn't get it. Still no idea what Object Thinking is. Maybe I am spoiled by reading Uncle Bob - a great communicator.
C**K
Not Particularly Practical
This book has many good ideas but is badly written, is full of mistakes (most annoyingly where diagrams and associated text dont match) and lacks the details you'd need to apply large amounts of what it teaches.If you really want to learn about object thinking, and most importantly how to apply it, then I'd recommend starting with the books of Robert C. Martin and Craig Larman. "Applying UML And Patterns" and "Agile Software Development" are both superb books.
A**R
awesome
This is a must for everybody.
E**O
Changer sa façon de penser est primordial
un livre excellent pour comprendre comment réfléchir dans une VRAIE démarche OO afin de réussir le passage à l'XP.Il faut absolument le lire!