`

代码审查最佳实践

 
阅读更多

1. 每天进行代码审查

能坚持做代码审查的企业,多数都以1~3天为基本审查间隔。

个人感觉每天代码审查最好,因为代码量少,思路连续,师傅不至于问徒弟“这是什么”。

某些企业选择“某个功能完成后”做代码审查,也是一个思路,因为只要审核这个功能的代码,思路也是相对连续。但这些功能不宜太大。

思路连续,能快速看完,是这个实践的价值观。

2. 师傅给徒弟看

个人最喜欢的搭配,有责任感,搭配稳定效率高,发现的问题也很少有争议,而且顺便能教徒弟一些东西,之前之五中曾经提到过。

某些团队采用互相看代码,或随便谁看代码,这容易产生争议,或水平相当的人看不出别人的问题,从而降低效率。

责任感,能快速发现问题,有知识传递,是这个实践的价值观。

3. 每人每天看5分钟

听过各种长度的审查,越长越难以坚持。很多超长的代码审查,是因为“每个月审查一次”,而正是因为每个月审查一次,审查才超长,而效率更是变得低下,因为很多代码看不懂了。所以,很多时候时间长不等于看得仔细,而是等于看不懂。

个人最喜欢的是每个徒弟每天最多看5分钟,只解决一眼看到的最关键问题。下面会讲剩下的问题怎么办。

如果每天都看,而且从第一天就开始看,徒弟的代码里边很少会堆积一大堆“关键问题”问题,除非1、2没做好。

时间短才能坚持每天做,是这个实践的价值观。

4. 每次只看1个重要缺陷

有时候很多人尝试一次把所有缺陷都看出来,结果是,每次都看出很多缺陷,而缺陷又层出不穷。原因是当试图解决很多缺陷时,徒弟往往无法记住,也无法再下次避免,结果师傅就变成了徒弟的“代码审查员”。

所以,无论缺陷多少,只解决1个最重要的,比如空指针,野指针,数组越界……等等,但每次解决后,都要帮助徒弟彻底解决,并能在以后避免。

彻底解决和避免缺陷,是这个实践的价值观。

5. 今后……(不要再看到这个缺陷)

授之以鱼不如授之以渔,师傅发现问题,就要讲透。

比如我们当年对待空指针(C++),就三条:一个指针要尽早等于一个值(延迟声明),如果实在不能就等于空;一个指针使用前必须检查是否为空;一个指针删除后必须置为空。不但要帮助徒弟发现缺陷,还要告诉他如何永久避免,才能防止日后再次看到这个缺陷。

彻底解决和避免缺陷,是这个实践的价值观。

6. 之前……(是不是也有这类问题?)

如果从第一天就看代码,这个问题就不太重要了。

如果中间才开始看的,那么要求徒弟在闲暇的时候把以前的代码都看一遍,顺便都改好。

这样就解放了师傅的时间,而且我发现多数程序员在发现学到了一个新方法后,都很乐于到以前代码里边试验一下;可能是因为以往的时候总是被程序欺负,而现在终于可以回去报复一下了。

提高徒弟水平,解放师傅时间,是这个实践的价值观。

7. 师兄带师弟

有两层含义,一层是说代码审查发现问题,要讲什么理论的时候(比如前面说的指针用法),尽量多喊几个徒弟来,一起听;二层是说如果不幸后来又来了新徒弟犯了老问题,可以请听过这个事情的师兄来给他讲。

提高徒弟水平,解放师傅时间,是这个实践的价值观。

分享到:
评论

相关推荐

    代码审查CodeReview的最佳实践

    我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,CodeReview都是基本要求,代 我一直认为CodeReview(代码...

    火爆,Github标星240K的编程学习路线图,适合所有程序员!

    推荐一个涵盖开发、运维、产品设计的学习路线图,在Github已经start超过240K,包括各门编程语言! 该项目涵盖了非常全面的学习路线图: ...代码审查最佳实践 前端性能最佳实践 API 安全最佳实践 AWS 最佳实践

    presentation-CRADE:挑战代码审查最佳实践的研讨会 [SudWeb 2013]

    代码审查和开发环境这是在线编辑javascript代码的平台。 它可以处理多个项目并可以在线运行预定义的测试。为什么 ? 这是专门为研讨会制作的。

    静态测试方法之代码审查(CodeReview)的清单

    下面列出的这些要点因该可以作为大部分代码审查的指导,如果是Java应用的话,这些建议应该被视作最佳实践。  代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分...

    code-review-best-practices:组装学校

    目录 代码审查最佳实践 :face_with_monocle: 在开始评估药丸和项目之前,必须先阅读这些最佳实践,以便您知道如何以最具建设性和专业性的方式提供反馈。 在此页面中,您将看到几种以最佳的方式进行代码审查的最佳...

    java基础i=笔试题-10-Steps-to-High-Quality-Java-Developer:成为高质量Java开发人员的关键

    代码审查最佳实践 构建工具 Maven Gradle 建筑学 构架 工具 进化 基本 你的语言 - Java 部署环境 领域 调试技巧 资源 4 简单设计原则 固体原则 设计模式 蚀 JUnit 持续集成 持续交付 代码审查最佳实践 Maven

    C++编程规范101条规则、准则与最佳实践PDF.rar

    第4条 做代码审查 9设计风格 11 第5条 一个实体应该只有一个紧凑的职责 12 第6条 正确、简单和清晰第一 13 第7条 编程中应知道何时和如何考虑可伸缩性 14 第8条 不要进行不成熟的优化 16 第9条 ...

    代码阅读方法与实践

    昨日开始,看《代码阅读方法与实践》,希望能够有所提高。 序言: 有一扇窗,从未打开,却要永远关闭; 有一些人,确实存在,我们却无缘相见; 有一种生活,还没有到来,我们却已永远离开。 学习编写伟大代码...

    CodeReviewBestPractices_JP_Translation

    代码审查最佳实践日语翻译 该存储库是 以下翻译成日语的帖子可在gh页上找到。此外,该人已经被联系并有权发布。 非常感谢,凯文·桑! 下面是翻译成日语的页面。 贡献 日语翻译出了点问题,更容易理解等。如果您有...

    最佳实践:Codeship Golang最佳实践

    这是为了在入职和代码审查过程中提高可读性,可维护性和效率。 本文档基于Go社区在过去几年中发表的许多文章和演讲并从中得到启发。 这些做法不是唯一的,。内容资源资源额外的东西我们对所有贡献在CI中运行...

    patterns:Best我们的最佳实践,无数代码审查的结果不断变化

    :open_book: 阅读并在欢迎! 这个小小的GitBook的目标是使您和我成为更好的软件开发人员。 它试图通过以模式的形式共享经验和知识,并鼓励您以便其他人可以向您学习,来做到这一点。 :vulcan_salute_medium-dark_...

    保护基于Web的应用程序:最佳实践指南-研究论文

    随着符合PCI 6.6要求的最后期限... 无论使用哪种工具,都应随附代码审查,适当的测试(包括模糊测试),遵循的代码标准以及适当的培训。 无论选择哪种工具配置,都必须应用手动代码审查,培训,编码标准和适当的测试。

    eng-practices:谷歌工程实践文档-https:jimmysong.ioeng-practices

    此文档为长期积累的最佳实践,是集体经验的结晶。我们可以将其地公之于众,您的组织和开源项目也会从中受益。 当前包含以下文档: Google代码审查指南,实则两套指南: 代码审查者指南 代码开发者指南 在线浏览: :...

    rails_best_practices-action:在Github操作中使用Rails最佳实践静态分析代码

    使用Rails最佳实践进行代码审查在Github操作中使用静态分析代码输入项files 更改Rails应用程序的路径options 更改rails_best_practices命令行选项。 以JSON数组格式指定选项。 例如: '["--vendor", "--spec"]'...

    7个jQuery最佳实践

    但是jQuery的大量应用却带来了另外一个问题:在使用JavaScript库的时候,有哪些最佳实践,又有哪些不好的实践呢? 背景 在这篇文章中,我会给大家介绍在编写、调试和审查JavaScript代码的时候一些好的实践(至少我...

    代码IDEA提交审查工具-alibaba规范检查

    规范性强:阿里巴巴Java开发手册是业内公认的Java编程规范标准,其中包含了大量的最佳实践和规范要求。Alibaba Java Coding Guidelines插件将这些规范直接集成到IDE中,提供给开发者使用,能够帮助开发者编写出符合...

    Airbnb Ruby代码风格指南:实战版

    集成自动化工具:包括配置文件,可用于流行的代码质量检测工具,如RuboCop,以自动化代码审查过程。 持续更新:随着Ruby语言和开发实践的演进,资源将定期更新,保持最新状态。 适用场景: 代码质量提升:适用于...

    2024年最全Eclipse安装和配置环境教程.zip

    同时,还介绍了代码版本控制、代码审查和调试、单元测试等最佳实践和技巧。最后,强调了加入Eclipse社区和参与相关活动的重要性。 **适用人群:** 本教程适合所有对Java开发感兴趣的初学者和有一定编程基础的开发者...

    Go编程规范-企业级中文版编程规范-Google.pdf

    希望通过学习规范化的编程风格和最佳实践提升自己的Go语言编程技能和团队协作能力。 使用场景及目标:该编程规范可用于团队内部的代码规范培训、项目开发过程中的代码审查和规范化编码实践。通过遵循Go语言编程规范...

    unit-testing-guidelines:单元测试最佳实践

    单元测试最佳实践以下是帮助实现有效且可维护的单元测试的一系列约定和最佳实践。 大部分内容直接取自优秀的《一书单元测试的 FIRST 属性在较高级别上,旨在为您的单元测试实现以下目标。 ˚FAST:更快的测试运行,...

Global site tag (gtag.js) - Google Analytics