[占位符]

创建代码审查文化,第2部分:代码评审

这是一个两部分系列的第二部分。在 第一部分 我们看了组织文化和代码的作者如何使他们的代码更易于查看。在最后一部分中,我们将看到一些策略进行更彻底的同情和代码审查。

评审代码

守则的工作是确保审核该代码是正确的,地道的,并且由组织的标准。最有利的方式是相互尊重的语气进行评论。这里的关键是假设人懂得他们的工作做,进行沟通和这样。一些方法来确保您与相互尊重的沟通是 知道何时脱机, 当你不应该做检讨, 包括您的批评理由由是功能的全面性公关需求.

知道何时下线: 搞随着代码审查的教学方面的一种方法是知道何时使其脱机。随着作为一个代码的作者,如果您 认为 你要埋葬有人在评论,或者如果你知道他们是新来的语言,设置了一个时间结对他们而不是试图以异步方式所做的一切。看着他们的工作可能会允许您就如何在语言更富有成效那你是一个专家提示他们。

当你知道不应该检讨: 有时候,你不给审查的最佳人选。在一般的代码审查世卫组织大多数人不懂得的语言声称他们不知道。然而,它也有助于老实说我们现有的能力,在语言,我们 用过的 投资什么项目最赚钱 知道了。谁没有写在一种特殊的语言在很多年,可能是有人缺阵的语言,关键变阵。适用用户使用当一个复杂而陌生的图书馆同样的事情。

包括批评的理由: 当您查看代码,你总是应该尽量包含理由的批评,除非该批判的笨蛋,风格指南违规行为,或明显的bug。 NIT和风格指南违规行为趋于重叠在一起,你不应该有证明使用共享的风格指南或之类的东西正确拼写的。同样,你不应该有证明无缺陷的代码。然而,当涉及到设计选择包括你应该总是理由,您可能希望改变某些事情。

举例来说,如果你要告诉别人使用Python语言使用一台发电机,停止和考虑为什么你告诉他们,并添加背景到的注释。更妙的是,包括一个链接到支持文档细节,发电机和其他可迭代的类型之间的差异。

考虑到你的话怎么可以被接收进本着相互尊重沟通很长的路要走。传达同情的一种方法是问您建议的修改作者的审查。不像命令语句,询问笔者的讨论和反馈邀请体贴,并传达你考虑一下笔者询问值得他们的意见的。

是的全面性公关需求: 投资什么项目最赚钱 投资什么项目最赚钱 投资什么项目最赚钱, 上下文, 关联, 可读性, 生产准备, 命名, 陷阱语言.

投资什么项目最赚钱 传递给每公关执行当您执行通行证想更深入。究其原因,分离是每遍恳请大问题,如果有任何“红旗”对任何人,如果那些移动到更深的细节之前得到解决。换句话说:如果代码没有做它应该,那么,如果压痕的正确与否并不重要。临提示:这两个阶段做出巨大 清单

如何彻底你需要是口述由业主PR的往往是“形”。审查代码一段时间后,你会开始看到在PR的“形状”,它可以帮助你找出那种心态是什么模式,你需要把深入审查。新功能往往把目光从bug修复,这可以看从一个行不同的变化不同。新的功能通常需要最努力的,所以如果你打量,看到这是一个新的功能,确保你有足够的时间来审查PR。有经验的评审员可查看bug修复一般很快,PR假设测试有预防回归和审稿人知道代码库还算不错。一个行更改诱人经常批准没有太多的想法,但要准备你应该慢下来,花几分钟时间来考虑变化的影响。这一条线要打破下游服务?莫非要严重影响你的服务的延迟?知道如何找出你很快有多深需要在评论这是一个技巧,你做更多的开发出代码审查中去。

通过完成每一次

注:清单ESTA SE encuentra单机版 这里.

估量。 这是通过筹备您轻松进入审查代码预期右顶空,并开始设定的预期。

  • 投资什么项目最赚钱 这是一个新的功能?错误修复?重构?一个单行的变化?

  • 是公关的正确尺寸是多少? 如果有人写了一PR这是太大,审核,这是为了让他们打破它的时间。 

上下文。 上下文通的目标是建立丰富的心理模型的PR。希望大部分都会回答的PR说明这些问题。

  • 什么被作出改变? 如果您有什么不明白的变更正在试图做的是大局的一部分,这是不可能的审查,几乎良好。

  • 为什么正在作出改变? 问你为什么会允许获得更广阔的背景为你的头脑模式。

  • 一目了然,不会公关完成预期的变化? 如果你能发现的东西乍一看,评论,首先怒视或不完整。

关联。相关通的目标是到变更的你的头脑型号连接在工程组织的大环境中。

  • 这种变化是由ESTA PR必要做? 投资什么项目最赚钱

  • 投资什么项目最赚钱 如果你看到有人试图复制现有的功能,它们指向预先存在的解决方案。如果这种解决办法不这样做 究竟 投资什么项目最赚钱

  • 另外有一些人应该知道的ESTA公关? 代码审查,因为容易在团队的背景下发生的,这并不是什么稀罕事PRS这是很重要的其他球队忽视。花一秒钟其他球队需要了解这个PR可能标记您的联系点。

通行证更详细的审查

不是所有的这些都将是在任何情况下有关。这挑的有。

可读性。 可读性通的目标是确保卫生组织读取半年代码就能构建代码的精神快速连贯模型的人员。

  • 变化是很少或代码库中没有现成的经验人类合理的理解? 假装你知道的语言,而不是代码库。轻松一切会读给你听?如果没有,为什么?

  • 任何深奥的语言功能正在被使用? 深奥的语言功能,而有时候是有用的,往往会伤害可读性,即使是语言专家。如果你看到正在使用深奥的语言功能,问一个简单的结构是可行的。如果没有,请确保该功能评论说,否则记录,以减少或认知的开销。

生产准备。 生产准备保证传递给我们的代码是安全的,记录在案,可靠,足以投入生产,而不用担心。

  • 投资什么项目最赚钱 通常情况下,这个问题的答案是一样的东西“如果有未处理的异常,警报将被解雇,其中包含一个堆栈跟踪。”这是一个非常合理的答案。然而,它的回答,你需要了解何时代码休息的一种方式。如果你不需要知道它何时爆发,你也许可以删除该代码。

  • 有通过ESTA变化所需的新文件? 投资什么项目最赚钱

  • 投资什么项目最赚钱 当出现变更MOST吃一种用于验证自动变化。哈弗没有测试,应该有一个解释,为什么。

  • 安全是这种变化? 安全性是很难的,而不是每个人都能成为安全专家。然而,大多数有经验的程序员应该知道至少应用编程的几个模式使你的代码小于安全。如果你写的数据库代码,你应该知道什么是SQL注入漏洞的模样。前端如果你写的代码,你应该知道的XSS漏洞的模样。如果您不确定,或者如果你正在做的改变潜在的风险,从贵公司的有关审查安全团队标签的人。

命名。 投资什么项目最赚钱 

  • 我的名字传达什么东西呢? 变量和函数名一直努力传达他们应该做些什么的方式,是毫不含糊的。一个常见的故障模式是这里当函数相通 它用来做什么,但遗漏了一个重要的细节。

  • 事物的名称是地道到他们写的语言? 每一种语言都有关于如何和函数名变量应该是写成语。这些规则的违反玩命的人阅读代码的预期导致认知开销。更糟的是,像语言的情况下,去决定了知名度,这些都可以改变代码的方式设计的违规行为并不打算。 

  • 实现细节泄露名字吗? 他们应该寻求沟通的名字他们做什么,他们是如何做到这不行。相对getips是一个简洁,根据上下文,体面的名称的功能。 getipsbyreadingfromafile赠送的方式太多了。这种微妙的版本是可变的,当包含它们的名称类型,比如“iparray”,而不是“IPS”。在静态类型语言,ESTA达声线,因为你只是重复的名称中已声明的类型。在动态类型语言,你试图通过添加“伪”静态类型的层推挤动态类型的灵活性。 

你的陷阱。 该陷阱通的目的是检查常见的编程疏忽。有经验的程序员意愿的名单,但是我在这里包括了一些我的最爱。 

  • 有什么办法,使添加或更改代码可以打破? 开始使用在这个问题动态语言的常用方法是看变量,并询问他们是否可以是语言的版本的“空”。

  • 投资什么项目最赚钱 ESTA包括诸如关闭的情况的一个错误,错误换位,内存泄漏,空指针引用等

  • 拼写是否正确和一致? 不一致或不正确拼写代码更难使搜索。这里有一点要检查拼写错误的名字还没有被通过自动完成传播。 

  • 投资什么项目最赚钱 在代码默认是从节省不必要的打字代码的用户很方便的方法,但需要进行检查的默认值,以确保它们不会意外炸毁使用时。

语言的。 语言特定通的目标是确保代码是达到标准的专家的社区在组织中的那语言设置。 

  • 该代码是惯用的语言? 非惯用的代码读取提高认知开销。

  • 引入了新的模式是? 投资什么项目最赚钱 

  • 不落入该语言的常见缺陷的代码? 每一种语言都有一些常见的陷阱,那语言初学者陷入。常见的错误例子都是用Python编写深度嵌套列表内涵,或者尝试写一种语言,就好像是另一个。

结论

最终,强大的代码审查文化是被故意关于您的组织如何进行代码审查的产物,它是每个人的责任,贡献他们的文化。如果你准备提高组织的代码审查,但不能确定从哪里开始,这里有一些下面的步骤来帮助你开始:

  • 如果你的团队没有做代码审查,启动。 谈谈你带领球队开始做关于代码审查作为你经常活动的一部分,并征求反馈的所有代码,你“写的。随着作为任何长期变化的努力,最重要的一步是开始。

  • 如果你是一个技术领导你认为 (高级工程师,工程师的工作人员,技术主管等),启动一个工程文件值。 让你的其他领导人,讨论技术并在其上签字。它发布在内部给大家看。 

  • 已如果你查看代码,开始使用代码审查清单。 那发布清单,以便其他人可以使用它。

记住:任何大的组织变革需要时间,但不断反馈的好处是值得的。在促进公司的代码审查文化,你将提高其作为一个整体的工程文化。 


我们的基础设施TLS内性能调优的Postgres

创建代码审查文化,第1部分:组织和作者