敏捷设计(上)

满足工程设计标准的唯一软件文档,就是源代码清单。

一、软件腐化

在软件项目中最不稳定的就是需求。需求处在一个持续变动的状态之中。这是我们作为开发人员必须接受的事实。我们生存在一个需求不断变化的世界中,我们的工作是要保证我们的软件能够经受的住那些变化。如果我们软件的设计由于需求变化了而退化,那么我们就是不敏捷的。

画外音:当你进行代码编写时,觉得很代码逻辑很复杂,停下来,找找其他方向。当面临第一次需求添加时,抓住这个机会改进设计,充分考虑到未来的可能变化,至少满足当前方向的所有新需求添加。

敏捷开发人员知道要做什么:

1、遵循敏捷实践去发现问题

2、应用设计原则去诊断问题

3、应用适当的设计模式解决问题

敏捷软件开发致力于保持设计尽可能的适当、干净。这不是一个随便的、暂时性的工作,这个是一个过程、一个持续的应用原则、模式以及实践来改进软件的结构和可读性的过程。每天、每时、每分钟都要尽可能保持软件干净、简洁富有表现力。

二、单一职责原则

就一个类而言,应该仅有一个引起它变化的原因。

每一个类都有属于自己的职责,每一个职责都是变化的一个轴线。当需求变化时,该变化会反映为该类职责的变化。如果一个类承担多个职责,那么引起它变化的原因就有多个。职责的耦合,一个职责的变化可能会引起这个类完成其他职责的能力。

三、开发封闭原则

软件实体应该是可以扩展的,但是不可修改的。

任何系统在其生命周期中都会发生变化,如果我们期望开发出的系统不会在第一版就被抛弃,需要牢牢记住这一点。

如果程序的一处改动会引起连锁反应,那么设计就是僵化的。如果正确应用 OCP 原则,那么再进行同样的改动,只需要添加新的代码,而不改动已经正常运行的代码。

特征:

1、对于扩展是开放的

2、对于更改是封闭的

开发人员应该仅仅对程序中呈现出频繁变化的那些部分做出抽象。拒绝不成熟的抽象和抽象本身一样重要。

你可能感兴趣的:(敏捷设计(上))