接触到《Google的工程实践文档》纯属机缘巧合。自认为是一枚资深码农,对代码review早已驾轻就熟。读完之后,仍旧受益匪浅。受到原文中“希望其他组织也能从中受益”这句话的感召,我决定将其翻译成中文,托管到Github上,与大家一起分享。
原文标题为工程实践文档,表达更直接点,就是代码review规约。全文分两部分,一部分是针对代码审核人的指南,另一部分是针对代码提交人的指南,两部分文档交相呼应。
这份文档讲述了代码review的标准是什么,详细列举了在代码review过程中常见的问题,如何避免或解决这些问题,同时讲解了这么做的原因以及不这么做可能产生的后果。
文档列举了不少正面与反面的例子,可操作性很强。相信企业文化接近的朋友在读了本文之后,会有很深的认同感。在文档中提到、现实中做得不够好的地方,能很快掌握,并能把它融进自己所在的团队中,提升整个团队的开发效率。企业文化差距比较大的朋友读了之后,即使管理机制与此不兼容,在个人的层面也有很多可以改进的地方。从事非软件开发行业的朋友读了之后,相信也能有所感悟。文中提到的一些软技能,如情绪管理、沟通技巧等,在日常生活与工作中也非常有用。
回顾自己过去十几年review代码与被review代码的经历,有些事项一直都这么做,我知道为什么应该这么做;有些事项一直都这么做,至于为什么这么做我颇有微词;也有事项直到今天才知道原来这样做更好。
荀子在《劝学》中提到:不积跬步,无以至千里。抗战时期“积小胜为大胜”的战略思想,也是同样的道理。在本文中,鼓励每次都做一点微小的改进,多次微小的改进比一次大的改进容易得多。这与Scrum把大User Story拆分成小User Story的观点相吻合。因为Points比较大的User Story,往往因为太大而无从下手,时间上也不可控。在进行Scrum指导时,我常对团队说“我们一个迭代周期只需改进两三个重要的问题,不必一次到位。习惯的力量太强大,需要逐步改进、适应,再改进,直到我们需要改进的措施成为我们的习惯。”
原文提到一条看似要求很低的原则:在修改时,至少不要恶化代码。不要恶化代码是底线,一旦发生微小的恶化,破窗效应开始起作用,代码的健康状况会飞流直下。制定过高的标准,容易让人受挫;而合理的标准配以可实操的步骤,更容易达到目标,建立自信心。
我见过这样的主管,一次性提出很多要求,让下属立即(或很快)按照要求实施,而他要求的这些改变与团队当前的环境、习惯、认知存在很大的差距。立即实施的要求看似简单,但缺乏行之有效的措施,忽视了客观环境,忽视了突然改变所付出的代价与造成的负面影响,注定无法长期坚持下去。道理很简单,反面教材在生活中的确很常见,如上海严格的垃圾分类政策。
关于尊重,在彼此尊重的环境里,大家心态比较放松,愿意以积极的心态去避免或解决问题。因为彼此的尊重,大家更愿意通过沟通、讲理的方式去解决问题,而非依职位定高下。在这方面,不少企业还有很大的提升空间。
提到沟通,本文提到了一些沟通与冲突解决的技巧。如,当审核者与开发者有不同观点时,文档对审核者说,“开发者对代码更熟悉,先考虑对方的看法是否是正确的。”对开发者说,“先思考审核者提供的反馈中是否存在有价值的部分。”很有趣,在冲突解决时,都是先审视自身,对方是否是对的。如果每个人都以这种方式处事,相信全人类离世界和平的愿望又接近了一步。
世事并不完美。在代码审核过程中,“违反专业礼仪时间一件很严重的事情。我们可以保证自己遵守,但永远没法保证他人不违反。”当他人违反了专业礼仪,我们该怎么做呢?本文也提出了解决方案。
还有一点很重要,“不要在代码审核中带着情绪回复评论。” 为人处世也是如此,在情绪激动(或紧张)时,人很难理智地思考,此时做出的决定往往会让自己后悔。不如先采取措施让自己冷静下来,之后再做决定。
以上是我的个人感悟,有兴趣的朋友读读原文吧。
相关文档
相关推荐
包括像Google、微软这些公司,CodeReview都是基本要求,代 我一直认为CodeReview(代码审查)是软件开发中的最佳实践之一,可以有效提高整体代码质量,及时发现代码中可能存在的问题。包括像Google、微软这些公司,...
在 Gitlab 中,代码 review 是一个重要的组成部分,它允许团队成员对提交的代码进行检查和讨论,确保代码符合项目规范和最佳实践。 Gitlab 代码 review 插件,如描述中提到的 "gitlab code view google extionsions...
代码审查(Code Review)是软件开发过程中的一个重要环节,它旨在提高代码质量,发现潜在的错误,提升团队协作效率,以及传播最佳实践。以下是一些关键的代码审查知识点,基于提供的文档内容: 1. **定期进行Code ...
代码审查(Code Review)是软件开发过程中的重要环节,它涉及到多个角色和一系列的步骤,目的是在开发初期就发现代码中的错误,提高代码质量,促进团队成员之间的知识共享和技能提升。在这份代码审查指南中,将详细...
总的来说,这些文档构成了一套完整的流程,教你如何在自己的环境中设置和使用ReviewBoard与SVN进行代码审查。通过这样的系统,你可以确保代码的质量,促进团队间的沟通,并提高整体开发效率。记住,实践是检验真理的...
本文将根据“Coding Review Checklist(代码审查清单)”的内容,详细解析其涉及的关键知识点。 #### 二、常规项 1. **代码运行性**:确认代码能够正常运行,这是最基本的要求。如果代码无法运行,那么后续的所有...
静态测试方法之代码审查(CodeReview)的清单。代码审查可以帮助提高代码质量,避免由于代码习惯而造成的bug。下面列出的这些要点因该可以作为大部分代码审查的指导,如果是Java应用的话,这些建议应该被视作最佳实践...
了解代码review做的ppt,可以帮助人理解代码review的概念
**代码审查(Code Review)是软件开发过程中的一个重要环节,旨在提高代码质量,发现潜在的错误,提升团队协作效率,并确保代码遵循最佳实践和项目规范。本文将深入探讨代码审查的原理、步骤以及如何有效地执行代码...
Tao-ReviewBoard是Eclipse的一个插件,用于与ReviewBoard集成,使得在Eclipse中可以直接提交代码进行审查。而SVN(Subversion)则是一个版本控制系统,用于管理代码的版本和历史记录。 在搭建过程中,需要注意...
是reviewboard为实现自动化提交代码的脚本
代码审查是软件开发过程中的重要环节,它可以帮助发现潜在的错误、提升代码可读性,并促进团队成员之间的交流与学习。Jupiter提供了一个用户友好的界面和一系列强大的功能,使得代码审查变得更加高效。 ### Jupiter...
6. **源代码管理集成**:Code Review Helper通常会与版本控制系统(如Git)集成,使得代码审查与日常的开发流程无缝衔接,确保每次代码提交都能得到适当的审查。 在实际使用中,下载的压缩包文件"IntellijIDEA-Code...
与集中式的版本控制系统不同,Git采用分布式架构,每个开发者电脑上的代码库都是完整的,这样的设计使得版本控制的效率极高。Git支持多样的工作流程,包括传统的集中式工作流,也支持更高效的特性分支工作流。 ...
根据给定的文件信息,我们可以提炼出关于代码审查(Code Review)及其在谷歌开发流程中的应用的关键知识点。 ### 什么是代码审查? 代码审查是一种软件工程实践,其中一名开发者编写代码后,由另一名开发者进行...
在Java项目开发中,代码审查(Code Review)是确保代码质量、遵循最佳实践以及提高团队协作效率的关键步骤。本文档将深入探讨在Code Review过程中常见的问题,并提供实例分析,以帮助开发者避免这些问题。 **第一章...
提供一个很好的代码Review工具。可以设置4个级别,可以对优秀代码进行学习,还可以对有问题的代码进行复查。
3. **协作与沟通**:CodeReview宏支持集成常见的版本控制系统(如Git、SVN等),方便开发者将代码更改与评审过程与版本控制相结合。此外,它还可以与邮件系统集成,自动发送评审请求和反馈,促进团队间的沟通。 4. ...
开发编写代码需要知道的基本准则,仅供参考,非原创,如有雷同侵权请联系作者删除 纯属分享