A design problem I met again and again.

Emile van Sebille emile at fenx.com
Fri Apr 3 09:36:33 EDT 2009


Steven D'Aprano wrote:
> On Thu, 02 Apr 2009 22:18:02 -0700, Emile van Sebille wrote:
> 
>> Steven D'Aprano wrote:
>>> On Thu, 02 Apr 2009 16:51:24 -0700, Emile van Sebille wrote:
>> <snip>
>>>> I refactor constantly during development to avoid code reuse through
>>>> cut-n-paste, but once I've got it going, whether it's 1000 or 6000
>>>> lines, it doesn't matter as long as it works.
>>> If you've been refactoring during development, and gotten to the point
>>> where it is working,
>> yes, but
>>
>>> clear and maintainable,
>> not necessarily
> 
> If it's not clear and maintainable, then there *is* refactoring left to 
> do. 

Agreed.

> Whether you (generic you) choose to do so or not is a separate issue.

Also agreed - and that is really my point.  Doing so feels to me like 
continuing to look for a lost object once you've found it.

<snip>

>> So, I think the question becomes, when does code need refactoring?
> (1) When the code isn't clear and maintainable.
> 
> (2) When you need to add or subtract functionality which would leave the 
> code unclear or unmaintainable.
> 
> (3) When refactoring would make the code faster, more efficient, or 
> otherwise better in some way.
> 
> (4) When you're changing the API.

Certainly agreed on (2) and (4).  (1) follows directly from (3). And (3) 
only after an issue has been observed.

Emile




More information about the Python-list mailing list