上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.2 分析软件交付过程
软件开发全过程是一个很大的范畴,从确定需求,到设计编码,到集成发布,到运维运营,涉及方方面面。本书不能覆盖以上所有内容,本书只覆盖其中的软件交付这部分。
软件交付这部分?软件交付是哪部分?软件交付包括哪些内容?
本书所说的软件交付过程(Software Delivery Process),是指编程序、改代码之后的一系列活动,直到将软件发布给用户使用为止。也就是说,它不包括源代码的编写和修改本身,而随后的提交、集成、测试等,一直到发布上线,都属于软件交付这一过程。软件发布上线之后,对生产环境的监控、告警等事情就不属于软件交付过程了,因为不论是否发布新版本,都需要持续运维。
据此来看,本书所说的软件交付过程包括但不限于“传统”的集成、测试、发布这个过程。再往“前”看,如果有特性分支,那么在特性分支上进行的构建、单元测试、代码评审等工作,也属于软件交付过程。更进一步,开发人员在代码改动提交前,在个人开发环境中进行的构建、尝试运行、调试等事情,也属于软件交付过程,因为它们也是发生在代码改动之后,尽管改动还没有被提交到服务器端的代码库中。甚至,在IDE中开启的向开发人员提供实时反馈的实时代码扫描,也属于软件交付过程,因为它也是发生在代码的细微改动之后。
以上是往“前”看,下面我们往“后”看。如果采用了灰度发布这样的策略,那么把新版本发布给少量用户,让用户试用并给出反馈,然后据此修改调整的过程,也属于软件交付过程,因为还没有发布给所有用户。还有一些生产环境中的测试,比如在生产环境中进行的全链路压力测试,亦属于软件交付过程。软件的新版本刚发布上线时,可能会出现一些问题,对问题的处理亦属于软件交付过程。