[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