On 12/4/2010 5:36 PM, Santosh Rajan wrote
[snip]
Let us look at software product development, and let us look at all
the top open source software development projects like linux, apache,
mozilla etc etc. I have not seen refactoring as described by the book
used by any of the open source software products. I would like to know
if any one can show me refactoring used in software product
development.
This reminds me of the kind of discussion I used to hear when the GoF
Design Patterns book was published. Lacking experience, I was in awe of
the book since it codified so much practice that I could look at and go
THAT MAKES SO MUCH SENSE. It took years and a lot of experience to
understand that this was just a compendium of best practices that many
OOP programmers had been applying for decades, taking them so much for
granted that they hadn't even bothered to give them names.
Unfortunately there were too many people who never saw past it being
some sort of bible, so (as an example) you'd have people drop by KDE dev
mailing lists 5-6 years later complaining that the KDE libraries were
poorly designed because they couldn't go through the code and identify
the design patterns by name.
This is a pattern that I've seen repeated often over the last twenty
years (the Java world is particularly guilty of it). There is
unquestionable value to the classification and codification of best
practices in software engineering, which has a real paucity of good
references of this kind, but it must be kept in perspective of what
people are doing. Unfortunately, compared to other forms of engineering
it's both more difficult and more given to fads.
So what I'm saying is, it is unlikely that this book contains anything
that any sufficiently large and long-lived software project (FOSS or
otherwise) is not already doing, because it is critical to their
success. You will just have to work a little harder to identify it
because they may not have bought into your taxonomy of refactoring terms.
[dubious aside: remember this one?
There once was a master programmer who wrote unstructured programs. A
novice programmer, seeking to imitate him, also began to write
unstructured programs. When the novice asked the master to evaluate his
progress, the master criticized him for writing unstructured programs,
saying, ``What is appropriate for the master is not appropriate for the
novice. You must understand the Tao before transcending
structure.''There once was a master programmer who wrote unstructured
programs. A novice programmer, seeking to imitate him, also began to
write unstructured programs. When the novice asked the master to
evaluate his progress, the master criticized him for writing
unstructured programs, saying, ``What is appropriate for the master is
not appropriate for the novice. You must understand the Tao before
transcending structure.'']
-Taj.
_______________________________________________
BangPypers mailing list
BangPypers@python.org
http://mail.python.org/mailman/listinfo/bangpypers