软件开发生命周期:SDLC(Software Development life cycle)
需求分析、设计、实现、测试、进化
软件开发(传统开发):瀑布模型
软件开发:敏捷式开发
核心:迭代开发、增量开发
迭代开发:对于大型软件项目,传统的开发方式是采用一个大周期(比如一年))进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次""大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
增量开发:对于大型软件项目,传统的开发方式是采用一个大周期(比如一年))进行开发,整个过程就是一次"大开发";迭代开发的方式则不一样,它将开发过程拆分成多个小周期,即一次""大开发"变成多次"小开发",每次小开发都是同样的流程,所以看上去就好像重复在做同样的步骤。
软件的持续集成
持续集成(Continuous integration,简称Cl)指的是,频繁地(一天多次)将代码集成到主干。
持续集成设计:
- 开发者向代码仓库提交代码
- 测试:合并到主干,就会自动化测试
- 构建:测试通过后再进入第二轮测试,所谓构建,指的是将源码转换为可以运行的实际代码,比如安装依赖,配置各种资源(样式表,JS脚本,图片等)
- 测试:构建完成,就要进行第二轮测试,如果第一轮已经涵盖了所有测试的内容,第二轮可以省略。
- 部署:可以将这个版本的所有文件打包(tar filename.tar *)存档,发送到服务器;
- 回滚:一旦当前版本发生问题,就要回滚到上一个版本的构建结果,最简单的做法就是修改一下符号链接,指向上一个版本的目录;