实现目标必须遵守规则_你应该遵守规则吗?

实现目标必须遵守规则

在上一篇文章中,我写道我非常喜欢用于静态分析的工具 。 这些工具可帮助您遵循既定规则。 更具体地说,只要您违反这些规则,他们就会通过红色版本对您大喊大叫。 很好吗? 在您的代码接受审核之前,我们已经确定许多事情已经经过检查,并且我们不必再次从这一方面验证代码。

但是,该解决方案存在问题。 当开发人员收到反馈时,他们知道出了什么问题,但并不总是知道为什么代码的特定部分被认为是无效的。

缺乏对规则的理解会导致巨大的损失。

怎么了

最近,我团队中的一位同事试图推送代码进行审查。 但是,静态分析构建并没有让他这样做。 失败了 问题在于缺少util类的构造函数。 好的,修复它并继续前进,但是…在添加构造函数之后,发现了另一个问题–甚至没有针对私有构造函数的单个测试。 为了覆盖!

我不想谈论我们的规则是否良好。 我想谈一谈在收到此类消息一段时间后可能会出现的感觉。

我在写什么呢? 刺激。 不是因为您在代码中犯了一个错误。 每个人都没有问题。 不是因为构建是红色的。 太好了,万一我们犯了错误,它应该会失败。 不是因为我们必须解决一个问题。 修复代码中的问题是合理的。 问题是我们什么也没学。 有一条消息描述了问题所在,但没有解释为什么会出现问题。

为什么有问题?

当您不了解原因时,静态分析工具发现的下一个问题会变成令人讨厌的噪音,不是一个好建议。 您开始从规则中寻找例外 ,以作为打破例外的借口。 这不是因为您不想创建高质量的代码。 您确实想要,但是除非您不了解该规则背后的原因,否则您可能会觉得很愚蠢。 它可能看起来一文不值。

如果您没有发现异常会怎样? 可能您将开始遵守此规则。 自动。 但这仍然会不利于您,会打扰您。 而且您不会遵循这样的建议,因为您知道它为什么很重要。 不,您必须遵循它,因为您必须这样做。 这种做法会充满负面情绪。 而且,如果某天有新人问你为什么用这种方式编写代码,你会告诉他们这是因为“一些愚蠢的规则”。 现在将有两个人在不了解的情况下将其应用到他们的代码中。

真的有问题吗?

真的那么糟糕吗? 让开发人员在不理解的情况下编写出色的代码,而不是让他们编写较差的代码,不是更好吗?

嗯,是。 如果我们从这个角度来看,这是事实。 但是,我们希望与优秀的开发人员合作,我们希望传播对良好实践的知识和理解。 我们想教别人,并与他们分享经验。 对双方来说,这将是双赢的局面。 我们希望与可以改善我们的解决方案并挑战我们的想法的人们一起工作。

随着时间的流逝,如果我们必须与盲目遵守规则的人员一起工作,则代码的质量将会变差。 为什么? 因为缺乏知识。 代码审查,重构,设计和重新设计等是需要特定知识的活动。 如果我们不共享它,将会有大量的开发者因为不知道如何而不会这样做。

修理它!

解决了代码中的所有问题之后,我们就这些静态分析工具的价值进行了广泛的讨论。 我在上面解释过的价值观和风险。 当我们谈论问题时,我们开始思考如何避免这些问题。 或至少最小化。 如何将描述变成解释? 我们提出了更改默认消息的想法。 添加说明为什么所描述的问题是问题。 或至少添加一个链接。 我们应该避免让人们没有知识。

我们的想法是将那些失败的构建变成一个很好的教训! 这是我们的主意,对此我感到非常兴奋。 我知道改善所有消息会花费一些时间,但另一方面,我也很确定值得付出努力。 你怎么看待这件事? 也许您有自己的想法? 在评论中分享它们。 很高兴知道您的想法。

翻译自: https://www.javacodegeeks.com/2016/05/should-you-follow-the-rules.html

实现目标必须遵守规则

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值