[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: refactoring when using CVS

From: Noel Yap
Subject: Re: refactoring when using CVS
Date: Fri, 22 Feb 2002 08:09:28 -0800 (PST)

--- "Greg A. Woods" <address@hidden> wrote:
> Of course Aegis is even better with XP than CVS
> because of the two-phase
> commit which helps with the "Only one pair
> integrates code at a time"
> rule; and also with the ability to enforce and run
> test modules for
> every commit (which obviously helps with the "All
> code must have unit
> tests" and "All code must pass all unit tests before
> it can be released"
> rules).

I would argue that "All code must have unit tests" is
as practically unenforcible as "All commits must have
comments" since enforcing such rules using tools would
just get garbage tests and comments.  I would also
argue that enforcing "All code must pass all unit
tests before it can be released" is the job of the
version control tool (although it is part of the
overall SCM picture), but propertly supporting
moves/renames under refactoring is.

> Indeed, and refactoring in the XP way doesn't occur
> across the
> development of multiple change sets, but only within
> the development of
> one change set and thus the integration of
> refactored code won't
> distrupt development.

Nope.  As (I think) Kaz had posted previously, CVS
doesn't handle well (if at all) concurrent development
while move/renames are occurring.

>  XP is also more about
> refactoring at the design
> level than the implementation, i.e. as opposed to
> something like in
> Smalltalk where refactoring is more at the
> implementation level.
> "Refactor" is one of those buzzwords often over- and
> miss-used in our
> industry today.

But you left out the fact that design is constantly
(or at least "very" periodically) occurring.

> Strictly speaking if you follow the XP practices to
> the tee (including
> the rule to "Fix XP when it breaks"!) then you don't
> need any change
> management tools at all.  You integrate your changes
> often (every time
> they work), your changes are small, and only one
> pair integrates at a
> time.  You don't even need a bloody computer to do
> XP -- you could have
> all the typing, compiling, and testing done by the
> QA team!  ;-)

You know, of course, that this joke supports the
statement that CVS isn't ideal for XP (or maybe XP
isn't ideal for CVS :-).

> If you're using XP correctly then the development
> process never stops
> because you can be bloody well certain that the
> customer is never going
> to be satisfied with any final acceptance test --
> there'll always be new
> and changing requirements and thus always new and
> changing design and
> ongoing development.  "Make many frequent small
> releases"

Exactly, and these many, frequent, small releases
include a design phase which includes refactoring.


Do You Yahoo!?
Yahoo! Sports - Coverage of the 2002 Olympic Games

reply via email to

[Prev in Thread] Current Thread [Next in Thread]