《软件构架实践》阅读笔记05

      软件构架是控制软件复杂性、提高软件系统质量的重要手段,然而在现实当中,当我们写一个程序或做一个系统时,并不是一步完成的,可能需要及时更新不同的版本。同样,构架重构也是十分必要的,它是一种解释、交互和迭代的过程,涉及很多活动。软件构架重构由信息提取、数据库构造、视图融合、重构这些活动组成,它们以迭代的方式进行。

      顾名思义,信息提取就是从各种源提取信息,信息提取设计分析系统现有的设计和实现制品,以构造系统的模型,所得到的结果就是放在数据库中的信息结合。提取信息使用的各种工具,如解析器、抽象语法树分析器、语法分析器、流行工具等,要根据需要选择。另外,以下指导方针尤为重要:用最少的工作量提取,验证已经提取的信息,在重要的地方提取动态信息。

      数据库构造期间,将提取的信息转换为标准的格式以存储在数据库中。数据输入到数据库中,生成两个额外的表:元素和关系。构造数据库时,要仔细分析数据库设计。数据存储在数据库中,就要对这些信息进行处理,这就是要进行视图融合的必要性,以协调、加强并建立元素之间的联系。到底怎么融合,就要以指导方针为基础,视实际情况而定。至于重构,由两个主要的活动组成:可视化和交互以及模式定义和识别。

      每一次构架的重构就像做手术一样,即使再成功,也会伤元气,所以决策者们首先要分析架构重构的理由和其他备选方案,明确重构的目的是为了满足业务需求,并且是不得不做的最佳方案,然后再考虑其他问题。有时候,经过分析就会发现,也许还有其他解决方案,或者重构的目的不是为了业务需求,那就没有必要做了。确定重构的目的和必要性十分重要。

      如果确定要重构,那么要把目标明确下来,也就是重构的边界条件,怎么才算是完成了重构,目标要有数据量化,或者有能够测试的办法。这也是一个需求分析的过程,如果需求不明确,那么规格说明书没法写清楚,负责重构的团队也没有明确的目标,不能以重构的时间或者主观的判断为结束的依据。目标明确之后,团队才找到合适的办法。定义“重构完成”的界限也就显得十分必要。

      现在软件研发最流行的就是快速迭代、持续交付、尽早反馈。这同样可以用在架构的重构上,重构过程不比构建一个新产品简单,所以在设计重构的时候,要引入持续交付的流程,每一个重构步骤或者模块都要快速部署并得到反馈,以便评估重构的效果,及时作出策略调整。  

原文地址:https://www.cnblogs.com/qianxia/p/6388683.html