前言
业界常用的三种研发模式
- 瀑布模式
- 迭代模式
- 敏捷模式
瀑布模式
按照业界标准的研发流程,将项目推进,全部开发完成后再交予用户使用
优点:
- 简单,按照开发计划推进即可
缺点:
- 全部开发完才给用户,如果要修改,可能很麻烦(我认为是最终的完美形态,用户却觉得不好用,要改)
- 开发周期长
迭代模式
在瀑布模式上,拆分出多个轮次,每一个轮次都是一个迭代。本质是开发出一个简陋版本,功能正常(不好用,下一个迭代再改)
优点:
- 每一个迭代,用户都可以提出意见,方便修改
缺点:
- 由于划分出多个轮次,很难从全局去管理开发进度(就是没有规划出一个自己认为完美的东西,下一次迭代会根据用户的反馈进行更改,就难以估计整体项目的工期)
敏捷模式
在迭代模式上升级,把一个大的需求分成多个,每一个需求可以看做是一个独立的项目(可用)
优点:
- 迭代更快,我只要求当前迭代可用,不要求一次性完成整体可用
缺点:
- 由于迭代快,导致开发、构建、测试、发布、部署流程多,增大工作量,不过CI/CD解决了这个问题
CI/CD
- CI: Continuous Integration 持续集成
- CD: Continuous Delivery 持续交付
- CD:Continuous Deployment 持续部署
持续集成
指开发者将代码提交到主分支上后,CI能够对代码进行扫描、测试、构建,并将结果反馈给开发者
持续交付
通过CI后,将CI的构建产物,部署到目标环境中去,生产环境需要手工操作
持续部署
和持续交付的区别,在于生产环境是否能够自动部署