软件开发流程
经历过几个软件开发,有模块的开发也有产品的开发。这其中并不是每一次都是细分开发过程,但是随着学习的深入,越来越多的自动化操作应用在开发过程中,如果能够更好的细分当前的开发流程,我觉得这会对开发软件有更好的帮助。
小结软件开发过程中需要经历的阶段和专用术语
大体划分
软件开发过程主要包括4个阶段:
- 需求
- 开发
- 测试
- 发布
首先针对将要进行的软件进行功能和应用的研究,明确要实现的需求和相应的功能;接下来进行实际的编程开发(也有可能包括硬件的开发);完成开发后需要进行功能点的测试;最后发布该软件
整个过程并不一定是直线型,即先需求,再开发,再测试,最后发布
相反,往往各个阶段混杂在一起,先开发一部分需求,每开发完成一个需求点就进行测试,测试成功后发布给用户体验;测试发现的问题反馈给开发解决;在发布给用户后,根据用户体验决定是否更新需求
持续集成、持续部署、持续发布
软件开发往往是一个多人协同进行的过程,每一个人负责一部分的功能实现
持续集成(continuous integration)的概念指的是开发人员完成某一个功能点后马上进行测试,解决测试发现的问题以及是否进一步合并代码
要实现持续集成,需要构建一个自动化测试的环境,代码上传到服务器后,通过钩子(hook
)拉取新代码并进行单元测试,发布测试结果并发起合并请求
持续部署(continuous deploy)的概念指的是测试开发环节的代码并自动部署到生产环节
持续发布(continuous release)的概念指的是实现新的功能后马上发布给用户体验,如果出现问题也可以更准确的进行定位
这几个术语来自于敏捷开发,强调的是小步快跑的概念,通过自动化工具的辅助进行软件功能的快速迭代,不但能够给予开发成员更加便捷的工作环境,也能让用户更快的体验到新的功能