代码质量对客户很重要。 很多。

有人认为,开发人员的主要职责是向客户推销可运行的,可带来价值的软件,理想的概念(例如代码质量)不应阻碍该主要任务。 他们承认,争取良好的代码质量是一件好事,但他们说有时代码质量必须让位给快速交付结果给客户。 在对代码库进行了如此烂烂的工作之后,以至于它使抵抗力降低的程序员发疯了,我不得不强烈不同意。 代码质量不是一个仅在开发人员世界中具有价值的抽象概念,它是非常真实的东西,它直接转化为金钱,也就是说,如果您丢失了金钱,那么它将随着时间的推移而转化为巨大的财务损失。

我不认为我是极端主义者。 我知道代码质量永远不可能完美,它总是可以提高的(例如Bob叔叔在CC的“ 连续精化”中所展示的 ),因此找到合适质量的适当水平总是很重要的。 而且我承认有些代码对质量的要求并不重要,例如一次性使用的一次性工具。 但是,当谈到将要运行5年,10年,20年的企业软件时,代码质量绝不能牺牲。 您可能会通过使用快速破解解决方案来获得暂时的提速,但您因此而造成了技术债务,这种债务将很可能在软件开发期间,当然在软件维护以及长期使用期间的进一步开发期间,已经支付了数倍的费用。 。 相信我,我去过那里,我已经看过,我付出了代价,并诅咒了黑客的作者。

什么是代码质量?

为了使自己更清楚,我应该解释一下术语“代码质量”的含义:

  • 正确的代码结构
    • 分离,隔离和“凝结”各个关注点,从而使一段代码可以完成一件特定的事情,而其他任何一段代码都不会做到–因此,如果您需要更改该功能,则只需要触摸一个位置
  • 可读性–表达性的方法,类和变量名,对代码进行结构化,以便使其像故事一样读–在企业项目的整个生命周期中,许多开发人员会来来往往,并且比编写代码更频繁地阅读代码
  • 测试–尽管不是直接作为代码库的一部分,但单元测试是许多代码质量特征的启用和强制因素

关于代码质量,我非常感谢Kent Beck的四个简单设计规则

您将为忽略代码质量付出很多

如果您不关心代码质量,那么您最终将得到意大利面条代码,因为它们之间的不同关注点(表示,业务逻辑,安全性,日志记录,不同的业务需求等)交织在一起,因此没人能再次将它们分开。 较长的代码段会执行数千种不同的操作(通过复制和粘贴编程在许多地方使用相同的功能),其中包含复杂的多级if-else语句,最好使用魔术常数和神秘命名的变量,这些代码块没有明确的目的,没人知道它们非常有用,但是没有人敢删除它们。更改此类代码中的任何内容都是极具风险的,因为经常需要在很多地方进行更改(您不知道这些地方)。 试图理解代码将花费您很多时间,并且可能会导致大脑在设法掌握代码的作用,原因和方式之前就开始燃烧。 您极有可能无意间破坏某些东西,并且因为您没有单元测试,而且因为代码没有单元而无法创建任何代码,所以它无法创建任何东西,它是有机的,无定形的野兽,除非有太晚的时间,否则没有任何通知您的问题。

当然,这是最糟糕的情况,在这种情况下,大规模(即代码的体系结构)以及单个对象和方法的微观规模都被忽略了。 在这两个中,第一个更糟,因为它不可能部分地改进代码,但是它们都倾向于导致代码的进一步衰减。 开发该软件的开发人员将学习错误的习惯,并为跌倒做进一步的贡献。

如果在5、10年内使用该软件并对其进行了进一步开发,则许多人将尝试使用该软件,并且每个人都将为解决这些问题而苦苦挣扎,并在尝试理解代码,进行修改时付出了很多时间。非模块化的,无定形的,复制和粘贴的代码绝对不适合任何可扩展性,并且最终在寻找由那些失败的尝试引起的错误时也是如此。 这些人的时间非常昂贵,最初是客户应该从快速破解解决方案中获利,然后才是账单。

结论

代码质量,特别是在整体结构级别上,是企业软件的基本属性,随着软件的进一步维护,修改和调整,代码质量直接转换为财务损失或收益。 客户可能不了解他的无形财产,因此,作为技术人员,我们有责任对其进行解释和维护。 我们必须努力争取良好的代码质量,以使代码能够继续存在而不会随着时间的流逝而腐烂。 质量永远不会是完美的,但是它必须足够好-这在一定程度上可以通过各种复杂性指标等来衡量-我们应该遵循Bob叔叔对代码质量的男孩子探究规则:当您处理一段代码时,以更好(永远不会更糟!)的状态返回它,那么您就明白了。 这意味着,如果有机会,他们应该毫不犹豫地进行小规模改进。 结果将是,随着时间的流逝,代码的整体质量将提高,而不是像通常那样衰减。 客户的钱包会为此而爱你。

参考: 代码质量对客户至关重要。 很多。 来自我们的JCG合作伙伴Jakub Holy

相关文章:


翻译自: https://www.javacodegeeks.com/2011/04/code-quality-matters-to-customers-lot.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值