[Tutor] recommendation for good OO book?

ALAN GAULD alan.gauld at btinternet.com
Sat Mar 10 16:23:14 CET 2007


> 5) Agile Software Development by Martin
> Pros: The OOP bits are good but Martin is obsessed by interfaces
> Cons: There is a lot of stuff about Agile development which frankly
> is not good. It has lots of bad ideas, mistakes and dubious code.

> Hmm...once again I think we will have to agree to disagree :-) This is 
> one of my all-time favorite software development books and IMO one of 
> the few that shows *why* to use OOP and *how* to do it from a practical 
> point of view. 

Like I said the OOP bits are good.

> My experience with agile development in the style of this book 
> is that it works fantastically well for small- to medium-sized projects. 

And I agree Agile works great on small mediyum sized stuff. We 
are starting to try to use it on big projects and it has some, errr 
challenges...

> I don't have experience with huge projects like Alan works on, 
> so I can't say if this style works there. 

Intelligent application works well.
User stories are good, TDD works well for components, less well 
for big systems. The biggest problem areas are integration, communication 
(10 minute standups just dont work for 400 developers, even a "scrum of scrums") 
And you really need an end to end design and test team or the overall objective 
can get forgotten, with each component choosing their own set of stories that 
don't join together to deliver the top level stories. (10 half stories do not make 
5 full ones unfortunately!)

> Martin likes to use metrics to evaluate code. I have not found any value 
> in this. The rest of his ideas I find very useful.

Me too. The ideas are good but the effort of capturing and calculating 
the metrics seem to outweigh the benefits.

> to the OP. But in 2003 what language would you have used for 
> a book on OOP? 

Smalltalk, Lisp, Objective C, Object Pascal, C++, Java, Python

were all around and widely used. All but Python and Java were used 
by Booch in his first edition book back in 1991! After all OOP has 
been around since 1967 and 'popular' since 1980, there are no shortage 
of languages in common use. But Martin (and quite sensibly for a 
commercial author) focussed on the 2 languages that were in 
widest use, thus reaching the bigget market.

> The Bowling Game: An example of test-first pair programming

But a very very bad one. I almost thought he was being sarcastic 
when he wrote it until it became obvious he was serious! If you read 
this you come away with the view that pair programming must be 
the most wasteful way of getting to a solution known to man.
(it isn't, its just the way Martin presents it. For a much better view
of it read Kent Beck's XP book)

The 'final code' is buggy (it fails to reset a counter), doesn't 
meet the original spec (although, since it was for himself, he might 
argue that he changed his mind about the requirement), and is 
bloated with several parts not needed, and the critical algorithm 
implemented twice (differently - and faulty in one case).
They only stumbled on the right solution when they wrote the 
"pseoudo code" which most sane programmers do 
first! - even in Agile...

> Inheritance vs. Delegation
> Singleton And Monostate
> Proxy and Stairway to Heaven

The OOP bits are all good!

Alan G.






		
___________________________________________________________ 
The all-new Yahoo! Mail goes wherever you go - free your email address from your Internet provider. http://uk.docs.yahoo.com/nowyoucan.html


More information about the Tutor mailing list