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

Reply via email to