我目前正在开发一个大型项目,许多开发人员随着时间的推移工作,代码很糟糕。经过多次重构后,我们现在到了一个点,代码没问题。现在我在想什么“好”意味着 - 可能对每个人来说都是不同的。
你认为可以指定“ok”吗?什么是重要的? NDepend指标?测试覆盖范围?评论?编码风格?文档?
我知道有很多关于编码风格或评论的主题(例如here)。这个问题只是关于什么事实很重要。
答案 0 :(得分:3)
我认为对于任何非繁琐项目,您应该有适当的编码指南(样式,评论等)和指标,以了解它们是否被遵循。你列出的清单是一个非常好的开始。
答案 1 :(得分:1)
你混合了两件不同的东西。
您谈论编码风格,但之后提到测试覆盖率,指标等。
当然可以指定编码样式 - 文档必须说明的所有要求是“为了代码维护和一致性,该项目将遵循这些编码样式和标准。”
然而,一般而言,大多数项目仅需要“良好的行业实践”和“整个项目的一致编码风格”,并将实际的定义和实施留给开发人员。
然而,你正在讨论的其他问题,需要重构的错误代码,测试,覆盖等等(我还要抛出LINT和静态分析)这些应该明确指定和要求。没有理由将它们排除在规范之外 - 它们是硬性指标,可以显示哪种类型的编码错误(或者,在样式和错误代码之间形成模糊线,可能产生错误代码的编码模式类型)很可能在任何给定的代码中,它的执行情况以及测试显示正确操作的程度。
在大型项目中,客户将与主要开发人员坐下来讨论LINT配置,以确保满足他们的需求,并且没有任何轻微的错误会降低开发速度。
所以,简而言之,是的,所有这些都可以(并且应该,恕我直言)为任何重要项目指定。
- 亚当
答案 2 :(得分:1)
你是对的,对每个人来说都不一样。也就是说,一旦你确定了预期,通过频繁的代码审查,维持它的最佳方式就是通过代码审查。
人们,特别是项目中的新人,总是带着自己的风格。代码审查有助于代码化。
答案 3 :(得分:0)
有很多东西可以说是ok / good代码的属性。
关于这个话题,还有一些关于SO的其他主题......
答案 4 :(得分:0)
有很多东西可以改善与代码和工具无关的项目质量。
需求管理。 有一些过程可以将质量控制应用到您的要求中。他们有道理吗?谁要求了?他们是提出这些要求的合适人选。
测试设计。 根据要求构建测试,而不是实现。 不要让你的程序员进行测试!
每次都测试一切。 对于每个版本,都要经历完整的测试周期,没有一个小版本。
根据我的经验,代码指标和代码标准之类的东西永远不会真正起作用。你会知道那些无赖的编码员是谁;你不需要一个正式的过程来识别它们。
真正致力于提高质量和产量的tecnique是代码审查。你需要一些代表和骨干来让你的三个资源花一天时间来完成5天的工作。但是,没有任何事情能够彻底揭示潜在的问题,并且,如果他们知道有人会在下周批评它们,他们就会编写更好的代码。
答案 5 :(得分:0)
StyleCop ......还有,FxCop ......
团队应该绝对标准化他们的风格。一些个人选择的空间,但团队应该绝对标准化他们的风格。代码更易读,更易于维护,更容易查看等等。
答案 6 :(得分:0)
某种指导方针(风格不如内容IMO重要),例如:最佳模式/实践,但更重要的是代码评论。