【问题标题】:How you assure software's code quality? Is it worth it in an agile environment? [closed]如何确保软件代码质量?在敏捷环境中值得吗? [关闭]
【发布时间】:2016-09-23 00:38:08
【问题描述】:

首先很抱歉这个无代码问题,但我想澄清一件事。

我的团队中有一位高级开发人员正在积极推动代码质量 - 合并请求审查,没有蹩脚的代码和类似的东西。但是团队中的大多数其他人都有 - 完成了该死的心态。作为一个商务人士,我根本不检查代码,但如果我没有那个关心质量的人 - 在我看来,我们会在某个时候遇到一些繁重的重构周期。

但是,过分关注质量当然也有不利之处 - 只是需要时间来做到这一点。当我们必须随着业务需求的变化而调整时,也许我们将不得不抛出很多漂亮的代码。

两个问题:a) 您如何保持产品的质量?你使用什么做法? b) 对代码质量的关注到底在哪里(不是太少也不是太多)?

【问题讨论】:

  • 您需要保持标准,现在可能看起来并不重要。但是在一年左右的时间里,当你需要回去做更改或功能更改时。代码越干净越好,就越容易。我尝试使用 SOLID 和 Clean 代码。
  • 如果您将来要维护代码,这一点绝对重要。我经历过这个。我曾经是一个“把事情做好”的人,但现在不是了,因为我在做一些项目的 V2 时遇到了严重的麻烦。 DRY 是我目前遵循的,带有适当的注释代码和命名约定。我还建议尽可能编写单元测试。
  • 我投票结束这个问题作为题外话,因为这是关于开发过程,而不是可以在技术上解决的问题。有关类似问题,请参见软件工程网站

标签: software-quality technical-debt


【解决方案1】:

代码质量很重要,与您是否开发敏捷无关。你说得对,质量改进需要额外的时间。大多数人之所以失败,是因为他们花时间在更大的块(“重构项目”)上或多或少地清理任意位置的代码,目的是尽可能减少质量问题的数量。

我建议使用的过程是遵循童子军规则,始终让更改的代码比以前更干净(更好)。这意味着每当您更改函数、过程、方法或其他代码单元时,都要修复其中的质量问题。优点是您已经理解了代码(因为无论如何您都必须更改它)并且它将被测试(因为您需要测试原始更改)。这意味着质量改进的额外努力(添加评论、改进标识符、删除冗余......)非常低。此外,您只改进正在使用的代码,不要浪费时间改进从未接触过的代码。

遵循童子军规则可确保质量不会下降,而是会随着时间的推移而稳步提高。这也是一种合理的“关怀”水平。我写了更多关于这个here。此外,您还需要像 Teamscale 这样的高质量分析工具,能够可靠地区分遗留问题、新问题和您最近更改的代码中的问题。

【讨论】:

    【解决方案2】:

    获取并实施良好的单元测试框架,并通过自动化集成测试对其进行备份。

    关于敏捷,我发现早上 10 分钟的 scrums 很有用,但冲刺结束会议往往很长。

    【讨论】:

      【解决方案3】:

      我使用Sonar Qube 获得了很好的体验,这是我们用于静态代码分析的工具。所以我们可以跟踪 我们代码库中的代码异味等。另一点是,可以在冲刺中计划解决问题! IDE 集成也可用!

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-02-16
        • 1970-01-01
        • 2011-04-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-01-20
        • 1970-01-01
        相关资源
        最近更新 更多