任何直接的答案都是极端的。显然,在某些情况下,截止日期太紧,您必须使用丑陋的代码;在某些情况下,代码太丑陋,值得错过改进它的截止日期。您需要的是判断您所处状态的方法,以及可能设定现实期限的方法,以便有时间编写更好的代码。
不要保存清理以备后用。除非您习惯性地有除重构之外别无其他事情的时期,否则没有“后”的理由来整理代码比现在要具有更高的优先级。常规是“红色,绿色,重构”,而不是“红色,绿色,在两个星期内做完全不同的事情,重构”。实际上,您不会更改代码,直到下次由于其他原因再次访问它时,您也可能会处于截止日期。您真正的选择是立即修复或保留它。
当然,假设您计划再次阅读,则样式良好的代码比样式不良的代码更好。如果您打算不再阅读它,那就不要整理它。运送通过测试的第一件事。但这是一种非常罕见的情况,对于大多数程序员而言,它几乎永远不会发生。忽略这种情况,只有您拥有实际案例的详细信息,才能判断修复的成本与不修复的成本(在将来的维护中增加)。
在某些需要维护代码的地方,有些事情要比现在更难解决。这些实际上并没有给您带来什么好处,现在就修复它。最明显的是不容易解决的(空白错误等),因此很难想象您有时间问这个问题而不要解决它们;-)对于那些不重要但属于此类的问题,可以,您的代码有些不理想,但必须务实。它可以正常工作,而且您必须按时完成。用它。
某些事情现在比以后在以下情况下更容易修复:(a)在每个人的脑海中它们都不那么新鲜;(b)编写了其他依赖或模仿它们的东西。这些现在更有价值,因此请优先处理。如果您没有足够的时间来解决这些问题,那么您就需要尽力争取更长的期限,因为您在代码库中积累了债务,下次访问时可能需要偿还债务代码。
固定代码的首选方法是通过审核过程。评论您所遇到的问题,然后将其发送给初中生以进行更改。您可能会举例说明您的意思,而让初级人员在适用于它们的代码中查找所有案例,但不仅要为它们完成代码。如果这样做,您将无济于事。
您应该将常见问题写到样式指南中,指出“不要这样做,而要这样做”,并说明原因。最终,原因是“为了使我们的代码在美学上保持一致”,但是,如果您不准备以合理的理由写下规则,那么您也可能不应该执行它们。只需让每个程序员自由选择。
最后,请注意会无限期调整内容的趋势。收益递减,您需要通过经验学习,在这些经验仍然不错的地方。形成一个足够好的东西的现实想法是绝对必要的,否则您将无法进行谈判,以确保截止日期给您时间来创建“足够好的”代码。把时间花在不够好的事情上。