SoftwareSeam
Last edit January 3, 2006
MichaelFeathers
describes a Seam as
a place where you can alter behavior in your program without editing in that place
in his book
WorkingEffectivelyWithLegacyCode
.
An excerpt of the full description is published at
http://www.phptr.com/articles/article.asp?p=359417&seqNum=2&rl=1
. --
BrianTakita
As with stone-cutting, you discover seams in your
LegacyCode
as you try to extract smaller gems to
UnitTest
from the
BigBallOfMud
of your
LegacyCode
(to extend a metaphor).
There are several ways to implement a seam:
using the language pre-processor or other macro facilities of the source language
using virtual methods if working in an object oriented system
using linker options