WEB开发网
开发学院软件开发Java 演化架构与紧急设计: 积累惯用模式 阅读

演化架构与紧急设计: 积累惯用模式

 2010-01-20 00:00:00 来源:WEB开发网   
核心提示: 依赖于紧急设计的敏捷方法学则尝试一种不同的方法,敏捷架构和设计在编写代码前也不会避开设计,演化架构与紧急设计: 积累惯用模式(2),但是它们的实际工作者已经知道,只有等到实现了重要的部分后,而传入耦合则表示其他类通过字段或参数引用当前类的次数,我使用 CJKM 指标工具收集 Struts 代码库

依赖于紧急设计的敏捷方法学则尝试一种不同的方法。敏捷架构和设计在编写代码前也不会避开设计,但是它们的实际工作者已经知道,只有等到实现了重要的部分后,才能彻底地理解整个问题。紧急设计中的开发技巧使您可以推迟做决定,直到掌握了更多的上下文。精益软件运动有一个很好的概念叫做 最后可靠时刻(last responsible moment):不是将决定推迟到最后时刻,而是最后可靠时刻。越是往后推迟设计决定,就能掌握越多的信息,从而可以做出更精妙、更符合实际的决定。

积累惯用模式

紧急设计要求在已有代码中发现设计元素。可以将那些元素看作有复用潜力的有效的抽象。积累那些惯用模式的一种技巧是使用指标组合。为了演示这种技巧,我将(像之前几期那样)使用 Apache Struts 代码库。之所以使用 Struts,并不是因为我认为它存在缺陷(实际上恰恰相反),而是因为它比较出名,并且是开源的。我认为每个代码库都包括惯用模式,所以可以使用任何项目。

使用指标

在 “通过指标进行紧急设计” 中,我讨论了使用指标来发现不熟悉的代码库中有趣的部分,作为重构的目标,以改进设计。我使用了两个指标:圈复杂度(cyclomatic complexity) 和 传入耦合(afferent coupling)。圈复杂度是衡量一个方法相对于另一个方法的相对复杂度的指标。因此,该指标只有与其他圈复杂度指标相比较才有用。但是,可以说,具有较低圈复杂度的方法通常更简单。而传入耦合则表示其他类通过字段或参数引用当前类的次数。我使用 CJKM 指标工具收集 Struts 代码库上的这些数字。

对 Struts 2 代码库计算这两个指标可得到图 1 所示的表,其中只显示关心的两个指标:

上一页  1 2 3 4 5 6 7  下一页

Tags:演化 架构 紧急

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接