瑞星 发表于 2024-5-18 04:51:44

快刀斩乱麻,DevOps让代码评审也主动起来

在Dr.Michaela Greiler的  How Code Reviews at Microsoft一文中提到,微软有140000名员工,此中44%员工是工程师。这意味着,有凌驾6000名的工程师同时在同一个代码库上开发Office、Visual Studio、Windows等产品。
想要确保差别子团队开发的代码能完美协作,并不是一件易事。 那么,如此大的工程师规模下,微软到底是如何确保代码质量的呢?秘密在于代码评审!
微软针对900多名开发职员的观察研究表明,有36%的开发职员表现他们一天回进行多次代码评审。以天为单位和以周为单位的开发职员分别占比39%和12%,仅有13%的开发职员一周内未进行任何代码评审。
https://img2024.cnblogs.com/blog/2028695/202404/2028695-20240423085957440-375086575.png
(图片源自微软观察报告)
代码评审是指在软件开发过程中,对编写的代码进行系统查抄和评估的过程。这是一种质量控制方法,旨在发当代码中的潜伏Bug。 由此可见,代码评审起到了不可忽视的重要作用,从而确保代码可以在如此大规模的开发职员内实现顺畅的协作。
一、是什么绊住了你的代码评审?

代码评审有着诸多好处,如进步代码质量、发当代码中的缺陷、知识转移等。代码评审的步骤看似很简朴,只需要“提交-修改-完善”,但实际过程往往会发生一些预期之外的事情,而这些事情则会降低整个代码评审的积极性以致大概影响团队的工作服从。

[*]评审时间过长
《软件工程通史》的作者卡珀斯·琼斯(Capers Jones)分析了凌驾12000个软件开发项目, 从实验分析结果看,一般的代码评审速率约是一小时150行源代码。但对于一些关键的软件(例如安全关键系统的嵌入式软件)来说,一小时审查数百行源代码的审查速率太快,大概无法找到此中的题目。
我们不难看出,固然代码评审对于发现潜伏Bug起到了重要的作用,但也需要投入大量的时间,像业务需求不稳定、时间要求紧迫的项目,就难以进行代码评审。
 

[*]评审效果难以权衡
代码评审的好处通常在长期和多次的实践中才能显示出来。通过代码评审,团队成员可以学习和应用更好的编码技巧和设计原则,从而进步自身的编码本领。这种个人和团队的成长需要时间和履历的积累,因此,代码评审的效果在短期内大概不容易观察到。
 
正是这些缘故原由, 导致不少开发职员的代码会出现“管他有几个Bug,能跑就行”的现象。长此以往,就会出现“屎山代码”导致可读性差、可维护性差等环境。
https://img2024.cnblogs.com/blog/2028695/202404/2028695-20240423090025956-600531858.png(当你把代码写成一坨屎,仍然能运行时)二、DevOps平台在代码评审中的作用

代码评审并不是浪费时间,代码评审一般可以找到并消除约65%的Bug,最高可以到85%。为相识决绊住代码评审的困难,越来越多的团队开始接纳DevOps平台来辅助代码评审,DevOps平台提供了一种集成和协作的环境,使得代码评审过程更加高效。

[*]代码可视化和协作
代码仓库通过版本控制系统(如Git)管理代码的差别版本和变更历史。代码评审可以针对特定的代码版本进行,通过对比差别版本之间的变更,开发职员可以更好地明白代码的演变过程和改动内容。同时,代码仓库提供了一个协作平台,团队成员可以在同一个代码库中/共同开发和维护代码。

[*]利用代码静态分析工具
静态代码分析是一种在不实行代码的环境下对代码进行测试的方法,开发职员可以通过DevOps平台管理SonarQube等静态代码分析工具,主动检测潜伏的代码Bug,如空指针引用、未利用的变量等。

[*]纳入CI/CD过程
我们可以将代码评审纳入持续集成和持续交付过程。每当有新的代码提交时,主动触发构建、测试和评审流程。如许可以及早发现题目,并确保高质量的代码被纳入主干分支。

[*]数据分析和报告
DevOps平台可以收集和分析代码评审的数据,提供有关代码质量和审查服从的指标和报告。这些数据可以资助团队相识代码评审的效果,并进行持续改进。例如,通过分析代码评审的结果和Bug的修复时间,团队可以识别代码质量题目的瓶颈,并采取相应的措施进行改进。
https://img2024.cnblogs.com/blog/2028695/202404/2028695-20240423090109809-1661585061.jpg
 
三、写在末了

一个成熟的团队中,代码评审是整个研发流程中不可或缺的一步。我们注重代码审查的条件是一定要注重代码规范,统一的代码规范才有助于项目研发有效推进。
在此分享一下,禅道团队的代码规范原则:

[*]是否是驼峰还是匈牙利方法不重要,重要的是实行;
[*]最重要的是命名,与其绞尽脑汁写注释,不如想象如何命名;
[*]好的版式易于阅读,学会用换行和注释做代码片段区隔;
[*]注释最重要是精确,一定要和代码保持同步。
 通过上文,我们不难看出,DevOps在代码评审方面发挥着积极作用,能够进步代码评审的服从。 禅道积极响应市场,推出了 禅道DevOps平台版,这不仅仅打通了从产品、需求、项目到开发、测试、运维环节,还具有加快交付速率、进步交付质量、淘汰团队摩擦、实现快速反馈等优势。
https://img2024.cnblogs.com/blog/2028695/202404/2028695-20240423090209819-1417370032.png(禅道DevOps平台)“冰冻三尺非一日之寒,滴水石穿非一日之功”。固然代码评审会耗费团队不少的精力和时间,但我们不能低估它的长期价值,对峙下去一定会让整个代码库、系统以致团队更加健康。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: 快刀斩乱麻,DevOps让代码评审也主动起来