sriramnrn at gmail.com
Sun Dec 5 19:36:39 CET 2010
On Sun, Dec 5, 2010 at 11:39 PM, steve <steve at lonetwin.net> wrote:
> I had sent this reply below earlier ...not sure why it didn't go thru'
> ...anyways, enough has already been said about this, however, since I
> already wrote this reply below, I thought I might as well make my point ...
> Hi Santosh,
> On 12/04/2010 05:36 PM, Santosh Rajan wrote:
>> My 2 cents on this subject. I think the problem of differing
>> viewpoints is mainly due to the fact that there are two kinds of
>> software development.
>> 1) Software product development
>> 2) Bespoke software development.
>> 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
> The very nature of Open Source Software development model is refactoring !
> It isn't called that but that's what it is. Try to describe the process of
> FOSS development and then the way code is affected by refactoring and you
> would see the similarities. The only difference is in FOSS projects this is
> done by separate individuals in an unplanned manner -- the net effect from
> the /code's/ perspective though is that is being refactored. I'd go as far
> as saying that patches which refactor existing code in mature FOSS products
> are as at least the same in number as those that introduce new features.
My thoughts (not for or against, but just to add to this thread):
- the license of the code doesn't really matter. There are lots of
software that we've contributed to as well as developed at
Thoughtworks, and we give the same level of attention (including
refactoring, testing, CI, etc) regardless of the license. This is true
of other companies, and individuals as well.
- refactoring need not become a bad word just because some book
documents various known refactoring techniques. Martin Fowler is a
very, very humble person. I spent the past three days with him hearing
him talk to various Thoughtworkers in Bangalore, and he's very honest
about giving credit where it's due. If you read his Refactoring book,
he's very clear there that these are various techniques that he's
observed everyone around him use, and he's simply explained a number
of them in very layman terms so that all can understand these
Let's the case of something like "Extract Method". It's very likely
that over a period of time, a developer would notice that a method
could be spilt up into smaller logical private methods so that the
intent is clear to the reader as well as more maintainable. This
technique may be given the name "Extract Method". And this technique
has been applied by all programmers in so many languages.
Applying a refactoring does not make us any less a programmer, and
this activity need not become an insult. Reading a book that documents
various such techniques could be considered a nice refresher even.
Speaking about myself, I wouldn't stay away from a book just because
someone declared that if one has self-respect, one would read that
book. Such a statement need not be an insult. Finally, the loss (in
terms of missed opportunity) would be one's own.
Refactoring could be applied to any language, regardless of whether
it's Object Oriented or not.
> - steve
> random spiel: http://lonetwin.net/
> what i'm stumbling into: http://lonetwin.stumbleupon.com/
> BangPypers mailing list
> BangPypers at python.org
More information about the BangPypers