[Tutor] designing POOP

Marc Tompkins marc.tompkins at gmail.com
Tue Feb 5 19:13:02 CET 2008


On Feb 5, 2008 5:46 AM, bhaaluu <bhaaluu at gmail.com> wrote:
> What I'm interested in is the thought processes and/or
> guidelines that Tutors employ when they sit down to design a POOP.

Whenever I have a few free minutes and a desire to contemplate the
infinite (Hah!), I surf over to the C2 wiki.  I don't know the
official name of the thing, I don't even know which page (if any) is
supposed to be the "home" page.  Rather, I surf around it the same way
I did the dictionary when I was a kid - just let one link lead to
another.  Officially it's about refactoring - which basically means
tuning-up a suboptimal design, with the implicit assumption that all
designs are suboptimal and could be improved.  But it's also a great
place to see a bunch of very smart programmers opine on exactly what a
good design is in the first place.  The principles of OnceAndOnlyOnce
and Don'tRepeatYourself, for instance, speak directly to the questions
you're asking.

I must say that I find the visual design, and the editing style,
incredibly infuriating.  Not every contributor signs his/her
submission, so it's not always clear where one ends and another
begins.  Did I mention it's ugly?  But it's fascinating stuff, and I
feel it's made me a better programmer.  Most of the programming
examples are in Java {ick!}, some are in Smalltalk; I think I've seen
some Lisp; I have yet to see an example in Python.  But the code is
all pretty readable (which is, after all, one of the principles
they're trying to get across.)

The Code Smells page is as good a starting place as any:
http://c2.com/xp/CodeSmell.html

Enjoy!  (And by the way - if you find any paragraphs particularly hard
to follow {I certainly have!}, don't kill yourself.  Read on a bit
further down the page.  Generally another contributor will have
restated the same argument in more accessible terms - remember that
great programmers are not necessarily great essayists, and vice
versa.)

--
www.fsrtechnologies.com



-- 
www.fsrtechnologies.com


More information about the Tutor mailing list