On Wed, 31 Mar 2010 15:20:37 -0400
"C. Michael Pilato" <cmpilato_at_collab.net> wrote:
> For me, the biggest lessons to be learned here
> touch on over-engineering and under-testing.
As a mere user, who has tried to figure out where the bugs that
bit him are coming from (ie as someone who actually tried to
debug svn), I can tell you that there is not only a touch of
over-engineering but that svn suffers largely from it. Especially
the need to abstract everything at least half a dozen times, so
that you have to deal only with the abstract notion of something
you might have some abstract relation to some abstract thought
that could be comming from some actual implementation is highly
confusing and makes reading the code nearly impossible for someone
who has not had a month time to learn how the architecture of svn
If you are ever going to refactor some of the architecture,
my advice would be to get rid of as many abstractions as possible
and use only those that are necessary to handle those few cases
where you actually have different implementations.
You can always add a new abstraction layer later, when you have
the need for it. But generally it is a bad idea to just make
an abstraction for something that someone, somewhen might want
to do differently.
If you want to walk fast, walk alone.
If you want to walk far, walk together.
-- African proverb
Received on 2010-04-01 15:09:34 CEST