有关默认值的一般问题-默认返回函数值,默认参数值,缺少某些内容时的默认逻辑,用于处理异常的默认逻辑,用于处理边缘条件的默认逻辑等。
很长一段时间以来,我都认为默认值是“纯粹的邪恶”,它“掩盖了灾难”并导致非常难以发现错误。但是最近我开始考虑将默认值视为某种技术债务……这不是一件坏事,而是可以提供一些“短期融资”的东西使我们能够在项目中生存(我们中有多少人可以负担得起)在没有抵押的情况下买房?)。
当我说“短期”时,我的意思不是“首先快速地做某事,然后在它投入生产之前再进行重构”。否-我说的是在生产软件中依赖硬编码的默认值。当然-可能会导致一些问题,但是如果仅在一年内造成一次麻烦该怎么办。
再说一遍-我在这里谈论的是“平均”主流软件(不是核电站软件)-会计软件的普通网站或UI应用程序,这意味着人们的生命不会受到威胁,也不会数百万美元。
同样,根据我的经验,业务用户宁愿使用“以某种方式工作”的软件,也不愿等待完美的软件。如果您以RAD风格开发软件,则使用默认值会很有帮助。但是,我再次使用了最长的调试会话,这是因为默认值引入的错误(在此过程中不再是“默认值”),或者由于小型子系统最近已升级,因此升级并没有正确处理默认值(例如,空列表vs空,或空字符串vs空字符串)。
所以我的问题是-默认值是好是坏。而且,如果这些债务属于技术债务,该如何计算您可以借入的金额,以便您有能力偿还还款?
非常感谢您的投入。
干杯。
编辑:
如果我使用默认值作为在开发过程中偷工减料的方式-如果偷工减料会导致错误和问题-从这些问题中恢复的方法是什么?