《持续交付 发布可靠软件的系统方法》读书笔记
持续集成要求每当有人提交代码时,就对整个应用进行构建,并对其执行全面的自动化测试集合。 而且至关重要的是,假如构建或测试过程失败,开发团队就要停下手中的工作,立即修复它。
持续集成的目标是让正在开发的软件一直处于可工作状态。
高效使用持续集成的那些团队能够比那些没有使用它的团队更快地交付软件,且缺陷更少。在交付过程中,缺陷被发现得越早,修复它的成本就越低,因此也就大大节省了成本和时间。
当今市场上有很多产品可以提供针对自动化构建和测试过程的基础设施。持续集成工具最基本的功能就是轮询版本控制系统,查看是否有新的版本提交,如果有的话,则签出最新版本的软件,运行构建脚本来编译应用程序,再运行测试,最后将运行结果告知你。
持续集成是一种实践,不是一个工具,它的有效性依赖于团队纪律。
要让持续集成系统能够发挥作用,尤其是面对一个大型复杂的持续集成系统时,整个开发团队就必须有高度的纪律性。
持续集成系统的目标是,确保软件在任何时候都可以工作。为了做到这一点,下面是我们在自己的团队中使用的一些实践。
持续集成的使用会为团队带来一种开发模式上的转变。没有持续集成的话,直到验证前,应用程序可能一直都处于无法工作的状态,而有了持续集成之后,应用程序就应该是时刻处于可工作状态的了,虽然这种自信取决于自动化测试覆盖率。持续集成创建了一个快速的反馈环,使你能尽早地发现问题,而发现问题越早,修复成本越低。
持续集成需要良好的团队纪律提供支持。事实上,哪种流程不需要纪律呢?其不同之处在于,有了持续集成之后,就有了一个“该纪律是否被严格遵守”的信息指示器:构建应该保持在常绿状态。假如发现构建是绿的,而大家却并没有足够地遵守纪律,比如没有达到单元测试覆盖率,你就能非常容易地将各种检查加入到持续集成系统中,强制团队养成良好的行为习惯。