软件研发效能提升之美
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

1.4 基于工具协作的研发效能提升

下面我们从软件开发、测试和发布的视角来看一下各个阶段研发效能提升需要关注的问题,其主线是围绕CI/CD的一些实践,如图1.4所示。

图1.4 研发效能提升的关注点

其中,我们列举一些常见的可以提升研发效能的做法:

• 可以通过All-in-One的开发环境降低每位开发人员开发环境准备的时间成本,同时又能保证开发环境的一致性。更高级的方法是使用云端IDE,实现只要有浏览器就能改代码。

• 可以借助基于AI的代码提示插件,大幅度提升IDE中代码的开发效率。同样输入一段代码,不借助AI代码提示插件,需要敲击键盘200次,启用插件可能只需要敲击键盘50次。

• 代码的静态检查没有必要等到代码递交后由CI中的Sonar流程来发起,那个时候发现问题再修复为时已晚,完全可以通过SonarLint插件结合IDE实时发起本地的代码检查,有问题直接在IDE中提示,直接修复。

• 单元测试比较耗费时间,可以借助EvoSuite之类的工具降低单元测试的开发工作量。

• 对于规模较大的项目,每次修改后编译时间比较长。可以采用增量编译,甚至是分布式编译(Distcc和CCache)来提升效率。

• 前端开发可以借助JRebel和Nodemon之类的工具使前端开发预览的体验更流畅。

• 选择适合项目的代码分支策略对提升效率也大有帮助。

• 构建高度自动化的CI和CD流水线将大幅提升价值的流转速率。

• 选择合适的发布策略也会对效能和风险之间的平衡起到积极的作用。比如,架构相对简单,但是集群规模庞大,则优选金丝雀;如果架构比较复杂,但是集群规模不是太大,可能蓝绿发布更占优势。

实际工作中其实远远不止以上9种做法,读者也可以在工作中摸索出属于自己的研发效能提升工具链。