我应该为可能的/预测的未来更改准备我的代码,以便即使我不知道这些更改是否随时都需要更容易进行这些更改?
我很可能因为这个而对自己的看法感到害怕,但在这里我走了.
虽然我多年来一直在阅读这些理想主义文章,并且通过太多的研讨会和讲座,直截了当地说明了这种好处,但我在脑海中也有类似的问题.这种思路会导致代码的大量过度设计,在设计,开发和测试估算中增加许多工时或更多时间,增加成本和开销,而实际情况并非如此.你有多少次重复使用你的代码或库.如果它将通过众多项目在许多地方使用,那么你应该这样做.
但是,大多数时候情况并非如此.您经常会发现,只有当您确实知道要再次使用它时,才能更经济地(时间和金钱)重构您的代码以便重用和配置.其余的时间真正的好处都会丢失.
我不重复,这不是写一个草率,设计不良,文档记录不佳的代码的借口.这应该是一个完全根深蒂固的基础,你无法打破它,但写一个类重用是大多数时间的浪费,因为它永远不会被重用.
这有明显的例外.如果您正在编写第三方库,那么显然情况并非如此,重用和扩展应该是您设计的关键.某些其他类型的代码应该是显而易见的重用(日志记录,配置等)
我在这里问了一个类似的问题Code Reusability:它值得吗它可能有所帮助.
在合理的范围内,当然如果没有太大的努力.
我不认为你总能应用这个,因为它可以让你过度设计所有的东西,然后它需要太长时间而你赚不到多少钱.考虑客户端实现某些东西的可能性,现在准备它需要多少额外费用以及以后节省多少时间.
如果需要大量工作,但省钱有意义,可以与客户一起提高.
我似乎总是在这里与很多人发生分歧,他们总是这么说 - 但我已经看到很多事情已付出努力使未来的功能易于实现......但他们从未实施过.如果客户没有支付使功能易于实施所花费的时间,那么就可以直接从您的底线获得资金.
编辑:我认为它的相关性指出我来自代理商环境.如果您正在为自己编写代码,那么您可以更加确定地预测未来的开发,因此在更多情况下执行此操作可能是可行的.
YAGNI.
http://en.wikipedia.org/wiki/YAGNI (*由友好编辑插入:-)*)
修复你今天写的那些可怕的代码中的错误.
当时机成熟时重构.