标签:发送 base 提示 角度 initial expand 文件 并行化 dbi
这本书讲的是关于持续集成的原则和实践。Martin Fowler关于CI的热门文章发表于2006年,这本书作于2007年,虽然十年间CI的工具已经发生了不少变迁,但本书中提到的基本原则和实践仍然值得借鉴,而且书中提到的关于CI未来发展方向的论述也得到了验证。
本书分为两部分:
Martin Fowler在其文章中将CI描述为:
一种软件开发实践,即团队的成员经常集成他们的工作,通常每个成员每天至少集成一次——这导致每天发生多次集成。每次集成都通过自动化的构建(包括测试)来验证,从而尽快地检测出集成错误。许多团队发现,这个过程会大大减少集成问题,让团队能够更快地开发出一致的软件。
这意味着持续集成其实是一系列实践的集合,例如:
关于CI:
CI不仅仅能帮你节省时间,更能帮你减少项目中的以下风险:
出现这种风险的原因可能有:
出现这种风险的原因可能有:
出现这种风险的原因可能有:
出现这种风险的原因可能有:
持续数据库集成(Continuous Database Integration,CDBI)指的是将数据库的变更视为集成的一部分,在每次项目的版本库发生变更时,重建数据库和测试数据库。
为什么要进行数据库集成自动化?
因为团队没有赋予个人修改数据库的能力,许多项目中DBA经常成为瓶颈。
持续数据库集成的推荐实践
db:create
式的命令执行为什么要进行持续测试?
根据系统工程的可靠性定理,线性系统的可靠性是每个系统组件可靠性的乘积,这意味着系统整体的可靠性要低于任一个系统组件的可靠性。更何况考虑到系统组件之间的连接,软件系统应该是一个非线性系统,可靠性比线性系统更低,所以我们必须测试每一个系统组件的可靠性。
自动化测试的分类
持续测试的推荐实践
持续审查是指对代码风格、代码是否符合编码标准的检查,需要通过自动化代码审查和人工审查相结合来进行。
自动化代码审查是人的智慧的增强,通过诸如PMD、Simian等工具来检查代码的圈复杂度、耦合度等指标,有的还能提示代码中潜在的风险。
圈复杂度(Cyclomatic complexity)是一种代码复杂度的衡量标准,在1976年由Thomas J. McCabe, Sr. 提出。
在软件测试的概念里,圈复杂度用来衡量一个模块判定结构的复杂程度,数量上表现为线性无关的路径条数,即合理的预防错误所需测试的最少路径条数。圈复杂度大说明程序代码可能质量低且难于测试和维护,根据经验,程序的可能错误和高的圈复杂度有着很大关系。
|
|
但自动化代码审查并不能检出所偶问题,人工审查仍是必不可少的,人工审查更关注于自动化代码审查检查不出来的东西,比如代码的可读性、可维护性等。
持续部署的目的是让团队随时随地都可以按需发布能工作的软件,同时使得发布工作量最小。
部署工作应该简化到只需一条类似ant deploy
式的命令即可完成。
一个典型的部署工作由6大步骤组成:
CI存在的意义就是为了能够快速构建并让构建快速失败,目的就是为了能够获得快速的反馈信息。
持续反馈就是在正确的时间,以正确的方式,将正确的信息发送给正确的人。
CI系统可以利用的反馈机制有邮件、SMS、可视设备、windows任务条、宽屏显示器等。时至今日,还有IM消息这样的方式可供选择。
在写作这本书时,人们在CI的实践中经常抱怨:
作者期待在将来看到更多的工具能够支持以下功能:
标签:发送 base 提示 角度 initial expand 文件 并行化 dbi
原文地址:https://www.cnblogs.com/cx2016/p/12078749.html