代码审查终结者。评论,您将对此表示感谢


Ginger可以帮助我查看代码。而且,当他不喜欢某些东西时-也是一个真正的终结者,即

“代码审查终结者”,一位同事在经过特别卓有成效的审查后曾经给我打电话。一方面,它招待了捷克共和国,令人愉快。另一方面,一位同事确实学到了一些新知识,这使他可以编写更好的代码。如此共赢。

换工作后,同事也换了。但是在新的地方,他们也开始感谢这次审查。我决定找出原因,然后放在架子上。原来有11条建议。

1.将审查视为主要活动之一


仅留下“然后没有足够的null检查”之类的注释是不够的。有必要:

  • 找出需要做什么
  • 了解如何完成
  • . ( , , )?
  • , , . — , .

2.


坐在一个同事旁边,讨论一个问题,看着一个屏幕是一回事。另一件事是查看github或bitbucket上的代码。在文本中进行交流时,很容易误解同事的意图。采取短语“此行中有错误”。是的,很明显,该短语表示该文章存在错误。但是,可能会以不同的情绪告诉她:愤怒,惊讶,高兴,发现了该虫并没有投入生产。也许冷漠。

您的同事可能会误解您的意图-这会导致怨恨,团队中的紧张情绪,并且通常会很糟。

让您的生活更轻松:使短语变得柔和,将其转化为问题,或者添加一张笑脸。



3.分配时间


为了确保代码正确正确地工作,您需要完全理解它。这需要时间。确保突出显示它。请记住,检查应用程序中您不知道的部分将花费更多的时间。

通常,这是良好评论的另一面:这很耗时。如果您没有时间做好准备,请尝试推迟或任命其他人(听起来像拖延者的建议,但情况有所不同)。如果这不是一个选择,但是您需要进行审核-请记住,您牺牲了质量。虽然有必要,但要妥协。如果将其变成一种习惯,将来您将承担更多的技术债务。

4.不要做假设;


当您遇到看似简单的任务的奇怪代码或过于复杂的解决方案时,默认情况下不要假定同事犯了错误或错误的选择。也许他知道您不知道的某些情况。如果您不公平地责备某人,您可以简单地澄清并避免出现不舒服和压力大的情况的风险。例如:“也许您可以在这里使用这样的课程?据我了解,他将非常适合这里,而且比拟议的实施要容易。”



5.遇到需要直接联系的情况


通常,审阅是异步执行的。因此,您可以将自己沉浸在代码中,从而减少同事的注意力。但是在某些情况下,最好直接联系(通过上门或致电):

  • 截止日期快到了。快速反馈加快了决策速度。但要整齐:在截止日期等条件下,一切都变得异常复杂,分心会烦人并降低注意力。
  • 严重错误。公开讨论这些内容可能会使某人感到尴尬和沮丧。最好亲自交谈并解释问题。也许这只是一个疏忽,或者是知识上的空白-现在已经填补了。
  • 选择了完全错误的方法。要告诉某人您需要放弃他的工作,则需要小心。最好使用肢体语言和语调来进行澄清,而不会冒犯他人。

好吧,将对话摘要添加到评论系统是个好主意。

6.先读票


看似正确的拉取请求中可能未涵盖某些要求。为避免这种情况,只需先阅读问题说明。同时,这将有助于理解更改中通常发生的情况。



7.提出建议


某些错误(例如打字错误)不需要解释。但是,如果您提供替代的体系结构解决方案或其他名称,请说明两种选择的优缺点。对您而言显而易见的事物可能对其他人而言并非完全显而易见。

另外,有一句谚语:“给一个人一条鱼,你就给他喂一天。教他钓鱼,你就养活他一生。” 当您教同事一种新方法时,他将来将可以使用它并更好地编写代码。同时,项目质量也将提高。

8.称赞好决定


审核不一定要列出错误。如果您看到了一个好地方,一个有趣的解决方案,一个有用的方法,请告诉我。简短的评论“冷静的决定”可以改善一个人一整天的情绪。是的,不要赞美糟糕的拉扯要求:它太紧,破坏了创意的含义。



9.有礼貌


提示:“ 我们能否摆脱对大脑造成破坏的愚蠢的网络注释语法风格?这样的短语并不礼貌(对不起英语,但这是Linus Torvalds的直接讲话,翻译起来很愚蠢;他坚持不使用它会很丰富多彩。为了礼貌起见,在某种评论中添加了“请”。



10.帮助


如果在审阅过程中您分析了几个文件,结果找到了替代解决方案,请放弃同事到这些文件的链接。您甚至可以使用行号,这更加方便。您无需花费很多精力,但同事可以节省很多时间。

11.建议,不注明


当您提出一种不同的审阅方法时-不要按订单要求您的同事使用您的选择。争论,让你的同事决定。他很可能会接受您的建议。如果没有,那可能是什么原因?

  • 两种方法大致相同。如果没有客观原因选择新方法,那么就没有理由浪费时间并采用它。免责声明:代码统一是客观原因。
  • 有一个客观的原因使您的方法更好。但是由于某种原因,代码的编写者不理解它。回顾您的论点,再次进行解释-同时检查您自己是否犯了错误。
  • 个人冲突。这是滑冰,您需要在这里谨慎操作。并且这已经超出了审查主题的范围。



就这样。总结:

让您周围的世界变得更好。做好评价。



UPD。本文是我英文原版的免费翻译从“翻译”转换为“文章”,以免混淆读者。

All Articles