首页 > 代码库 > 《Code Complete》ch.29 集成

《Code Complete》ch.29 集成

WHAT?

集成是这样一种软件开发行为:将一些独立的软件组合为一个完整的系统。

WHY?

  • 更容易诊断缺陷
  • 尽早获得一个可工作的产品
  • 更好的顾客关系
  • 增强士气
  • 更可靠地估计进度表
  • 更准确的现状报告

HOW?

集成的两种方式

  • 阶段式集成(爆炸集成)
  • 增量集成(滚雪球集成)

增量集成的策略

  • 自顶向下(Top-Down):使用底层stub类,逐渐替换为实际的类。若底层接口实现起来有bug,或者有性能问题,会导致顶层设计变更
  • 自底向上(Bottom-Up):“让底层细节驱动高层类的设计”违反了信息隐藏原则
  • 三明治(Sandwich)
  • 风险导向(Rick-Oriented)
  • 功能导向(Feature-Oriented):先搭骨架
  • T型集成(T-Shaped)

冒烟测试

对完整程序执行相对简单的检查,跑得通主流程,看看产品在运行时是否“冒烟”

Daily Build

  • 降低了低质量的风险,振奋士气,令隐藏起来的问题浮出水面不至堆积
  • 每日build
  • 检查失败的build
  • 如有必要成立专门的build小组
  • 在早上发布build,这样可以让测试人员当天测试新鲜的build,而且在白天也更易找到开发人员。若在晚上发布build而且失败了,肯定要加班
  • 两次checkin之间最多间隔一两天
  • Microsoft Windows 2000有5000万行代码,散布于数万个源文件中,完整地build一次需要若干台机器运行19小时——即使这样开发团队仍然设法每天build