上线软件:代码审查–好处

上一次我们讨论了为了使我们能够使用工作软件(敏捷交付的主要指标)而采用的不同机制和实践。 我们讨论了“可运行的软件”如何不仅意味着软件功能正常,而且还具有持久性。 这些实践中最有效的方法之一是代码审查,我们将一如既往地从“为什么”开始。

代码审查的好处

通常,在编写代码时,我们处于“功能模式”,使代码正常工作。 我们是问题解决者,我们尝试将我们脑海中(或我们与团队合作审查过的)设计转变为代码。 我们不仅在打字,而且我们渴望看到它正在工作。

专注意味着我们会前进,但我们会错过前进中的一切。 一个星期后,当我们查看代码时,事情突然发生了,我们要么不了解我们在那里所做的事情,要么认为“我本可以做不同的事情”。 最重要的是,我们仍然完全错过了某些事情。 作为敏捷人士,我们需要反馈。

这是代码审查的地方,它带来了一些很棒的好处。

  • 尽早发现问题

在代码进入生产,测试甚至是集成环境之前 ,我们会让其他人查看我们的代码。 当我们专注于“使其工作”时,我们已经错过了这些问题。 我们未涵盖的内容的影响范围可能从阻止由于构建中断而进行的开发到将错误潜入生产中。 对我们 认为的工作有其他看法可以发现问题,并为我们提供机会在造成任何损害之前进行修复。 敏捷开发就是要降低风险,而早期反馈可以做到这一点。

  • 对抗复杂性

我们编写的任何代码都已经很复杂。 它不仅带有“它做什么”和“它是如何编写的”,而且还带有许多看不见的假设,多重依赖和个人喜好。 除非发生奇迹,而且我们碰巧编写一次代码,而且效果如此之好,它将永远保持下去,否则我们(或其他人)将回到那里。 它越复杂,我们(或他们)将需要更长的时间来理解,维护它,并且增加插入一两个错误的机会。

代码审查是我们必须降低复杂性的机会。 使事情变得更简单,可读和孤立。 了解这些假设,并确保“新手”在几周内进入代码不会错过它们。 而且,进一步的维护比重写整个过程要便宜。 这是我们在敏捷开发中需要的另一种类型的反馈,该反馈在技术上处于领先地位。

  • 知识共享

在大型项目中,我们如此专注于“ 写什么”,而忘记了项目中的所有其他人也都在思考。 我们拥有的人越多,对“其他人的想法”的假设就越多。 我们的思维方式以及他们的思维方式之间的这些差异会导致各种恶作剧。 它们导致更长的集成时间,意外的错误以及充满乐趣的验尸。

传播设计,要求和“事物应该如何工作”的知识,是减少此类社交活动数量的好方法。 我们做得越多,我们就可以避免涉及到的心痛。

代码审查是一种向其他人(最好是将我们的代码与他们的代码集成在一起的人)展示我们的代码的方法。 一个机会来讨论我们在构建它时的想法,它如何解决问题,仍然存在的问题或下一步应该考虑的问题。

无论您是大三还是大四,无论您的评价对象是大三还是大四,每次查看代码都将学到一些东西。

在以后的文章中,我们将讨论如何有效地进行代码审查,但这是一个破坏者:它们简短而频繁,因此存在许多传播知识的小机会。 知识共享遵循技术精湛和可持续发展的敏捷原则。

  • 促进集体代码所有权

极限编程的原则之一是集体代码所有权。 没有人负责一段代码,即使她是该代码的编写者。 这也意味着,当她在加勒比海度假时,该代码中存在生产问题,我们不会等她回来,甚至更糟糕的是,开始迫使她缩短假期,以便她能来救我们。 团队中的每个人都应该能够介入并更改代码。

我们已经讨论了一般的知识共享。 但是,代码审查的好处还要进一步。 鼓励其他人“走进您的房子”(确认这不是您的房子)会创建一个环境,使人们无法保护“他们的”代码免受他人的攻击。 实际上,鼓励他们使它适合其他人居住。 当合作伙伴说“我理解”时,就意味着房子已经可以住了。集体代码所有权是敏捷技术卓越原则的一部分。

  • 保持惯例

在“我可以住在这所房子里”的部分内容中,“我了解所写内容以及为什么要这样写”。 如果何时召集我,我可以在代码中进行更改。 易于理解和进行更改的事情是惯例。

约定可以是风格,命名相关,设计,体系结构等。 它们可以是我们放置括号的地方,可以决定内联函数的好坏,如何拆分包,以及何时引入新服务。 他们全都属于“这就是我们在这里发展的方式”类别。 约定使我们的生活变得轻松,因为要做的决定更少,因此需要担心的事情也更少。 团队惯例应始终胜过个人喜好。

没有“最佳”约定(包括在何处放置大括号)。 有些对团队有好处。 代码审查是教导和执行代码的绝佳机会。 再次成为敏捷技术卓越原则的Struts。

有很多机会

代码审查作为改进的机会似乎是一个反复出现的主题。 但是,这不仅是机会。 如果我们想获得这些好处,我们需要分配时间并确定代码审查的优先级。 接下来的更多内容。

翻译自: https://www.javacodegeeks.com/2017/12/getting-working-software-code-reviews-benefits.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值