敏捷软件开发 第十八章
本章将薪水支付案例大致分析了一下,过程中还提到了一些注意事项,摘取一些进行记录
1、不要过早地设计数据库
将用户素材进行一些记录之后,我们首先想到的是,开始设计数据库,并且在这里关系型数据库比较合适,从需求中我们可以清楚地知道表和字段的可能样子。
不过,如果一开始就着手设计数据库的话,数据库难免会成为我们的关注中心。
而数据库是实现细节!
我们应该尽可能地推迟数据库的设计,有太多的应用程序之所以和数据库绑定在一起而无法分离,就是因为一开始设计时就把数据库考虑在内了。
而抽象的定义是:本质部分的放大,无关紧要部分的去除。
在项目初始设计的阶段,数据库时无关紧要的,它只不过是一项用来存储和访问数据的技术而已。
2、基于用例分析
我们首先需要考虑的是系统的行为而不是数据。
一种捕获、分析系统行为的方法就是创建用例(user case),用例和极限编程中的用户素材的概念非常详细,我们可以认为用例就是用稍多一点细节详细描述的用户素材。
当我们将用户素材转换为具有详细细节的用例时,不应该陷入过多的细节,只要有助于考虑出实现每个素材的代码设计即可。
在用例分析中,粗略的 UML 图、设计原则和设计模式都是非常有帮助的。
3、找出潜在的抽象
为了有效使用 OCP,我们必须要搜寻并找出隐藏于应用背后的抽象。
通常情况下,应用的需求,甚至用例不会表述,甚至间接提及这些抽象。
需求和用例太关注于细节以至于不能表达潜在抽象的一般性。
要发现潜在的抽象,就要仔细地考虑需求,并且要能洞察出用户社团的误导。过度信赖工具和过程以及低估智力和经验都是灾难的源泉。