1.考虑能够工作的最简单的事情
XP团队最开始的工作是以尽可能简单的方式实现第一批用户需求。尽可能寻找实现当前用户需求的最简单的设计。在实现当前的用户需求时,如果能够使用平面文件,就不去使用数据库或者EJB;如果能够使用简单的socket连接,就不去使用ORB或者RMI;如果能够不使用多线程就别去用它。
2.假设将不需要某些基础结构
XP团队的工作可能不会从基础结构开始,他们可能并不先去选择使用数据库或中间件。开始时假设将不需要那些基础结构。只有在有证据,或者至少有十分明显的迹象表明现在引入这些基础结构比继续等待更加合算是,才将其引入。
3.消除重复的代码
无论在哪里发现重复的代码,都应该消除它们。当发现那些重复的代码时,可以通过定义一个函数或基类的方法消除它们。有时两个或多个算法非常相似,但是它们之间存在着微妙的差别,就将它们变成函数,或者使用TEMPLATE METHOD模式。
消除重复的最好方法就是抽象。毕竟,如果两种事物相似的话,必定存在某种抽象能够统一它们。消除重复的行为会迫使团队提炼出许多抽象,并进一步减少了代码间的耦合。