1. 文档及其规范的重要性
2. 版本管理的整洁
- 目前认为的best practice:以Git管理代码,SVN管理文档及其他
- 代码库仅保留代码,不保留生成及lib(若为老式项目,不是maven gradle项目等有依赖管理的,则保留lib也算合理)等
- 例如maven项目默认的target文件夹和eclipse生成的.eclipse文件夹等,均为应ignore对象
- Git可使用gitignore文件,SVN可添加至ignore列表
3. 单元测试
- 由开发人员编写,单元测试直接以代码为准,代码注释即文档
- 单元具体到什么地步(细化)看业务要求,aop的话应以切片为准
- UI测试可使用自动测试框架(如selenium)
- 所有单元测试应可全程自动完成,除了编译项目开始动作以外不需要人工干预(也是为了以后自动发布流程)
- 测试环境及properties应与生产环境配置分离(maven项目中有src/test文件夹)
4. 持续集成
- 可用Jenkins框架进行持续集成的实现
- 持续集成包括(构建,测试,发布),完全自动化
具体做法可以如下:
- 首先将项目信息加入Jenkins平台中(包括版本管理库信息,支持Git和SVN等)
- 配置钩子,每次版本更新自动构建并测试
- 若都通过则自动发布到配置的位置
- 不通过的也可通过配置查看每次构建失败的原因和状态
也可以配置定时执行某些任务或者程序,用途很多
- 此种做法需要一定的熟悉过程才能达到最高效生产力,至少可以节省一般流程四分之一的时间(总体来看肯定不止,如果熟悉了这套流程的话)(别看四分之一听起来有点少,一个大些项目的周期可以达到一年甚至几年,总体来看不止一点点)
5.数据库
- 项目数据模型基本稳定后,所有的表都通过文件管理
- 通常的方式是每个表一个sql文件,有对结构进行改动的首先对sql文件内容进行改动,然后再通过执行的方式反映到数据库
- 实时性要求并没有达到秒级别的表,全都加上
DELETE_FLAG
,INSERT_USER
,INSERT_DATE
,UPDATE_USER
,UPDATE_DATE
五个字段,使得数据变更变得可控可追溯