开发工具
在开发团队内部,使用相同的IDE、编译器等开发工具,工具的版本号和配置保持一致,便于开发团队积累使用经验,避免、消除工具的差异引入的问题。
代码质量
从检查时机看,分为:
- 开发人员本地检查,便于本地检查、修复问题。
- 流水线门禁检查,避免存在问题的代码被意外合入到代码仓库中。
检查工具,分为:
- 静态检查,比如
- cpplint,侧重于代码排版风格。
- pclint,侧重于编码规范。
- infusion,侧重于代码设计。
- fortify,侧重于代码安全。
- 动态检查
- 单元测试,比如基于googletest打造单元测试的运行框架,方便开发团队集成和使用。
- 内存检查工具,比如
- valgrind,在Linux平台。
- umdh,在Windows平台。
流水线
在流水线上,一般会维护如下几类构建任务:
- 提交门禁构建
- 开发快照构建
- 版本发布构建
对于提交门禁的构建任务,在代码合入仓库前自动执行,针对变化的代码,执行如下操作:
- 代码质量静态检查
- 增量编译
- 部分基础单元测试用例
- 部分基础的集成测试用例
对于开发快照构建,一般在每天的夜间自动运行,执行如下操作:
- 代码质量静态检查
- 完整编译
- 全量的单元测试用例
- 基础的集成测试用例
- 部署至开发环境
对于版本发布构建,按照版本转测试节奏,手工触发,执行如下操作:
- 代码质量静态检查
- 完整编译
- 全量的单元测试用例
- 基础的集成测试用例
- 部署至测试环境
开发架构
对于开发架构的看护责任人,有一些工作需要作为日常工作内容,按照一定的节奏来推进,比如:
- 选型构建工具
- 维护构建脚本
- 选型编译器
- 及时升级编译器的版本
- 增加编译器的类型,比如clang
- 使用较新的C++标准
- 消除编译告警
- 组织学习C++编程规范
- 提升UT用例覆盖率,督促开发团队,增加、维护UT用例
- 组织代码重构
- 识别代码坏味道
- 梳理改进方案
- 指导、督促开发团队完成重构任务
业务架构
梳理业务原始需求和实现方案,整理
- 用例图
- 架构图,比如:
- 业务架构
- 逻辑架构
- 技术架构
- 数据架构
- 业务流程的时序图
- 模块职责
- 接口
- 通信协议
- 接口清单
- 编解码
- 技术选型,比如:
- 开源软件
- 免费软件
- 商业软件
- 业务特性对硬件的诉求,比如CPU、内存、IO等
识别、收集、梳理当前交付过程中存在的问题,整理改进方案,明确对策、投入和产出,制订可落地的重构计划,排定优先级,获得项目管理团队、设计团队、开发团队、测试团队等关键角色的认同,推进重构工作。
基础技术选型
基本特性的选型,比如:
- 日志系统
- 配置文件系统
- 数据库
- 进程间通信
- 通信协议
- 编解码
- 开发IDE
- 构建工具链
- 单元测试工具