我想知道哪个版本是最好的实现。参数是有两个可能值的状态。这是实际问题的一个抽象例子。我正在用一种过程语言(没有类)进行编程,并且没有类型化变量。我刚读了一篇文章,说版本1对可读性和调用者都不好。就我个人而言,我也不喜欢第2版。也许还有更好的选择?
第1版:
doSth(par1, par2)
第2版:
doSthWithPar1Is1AndPar2Is1()
doSthWithPar1Is1AndPar2Is2()
doSthWithPar1Is2AndPar2Is1()
doSthWithPar1Is2AndPar2Is2()发布于 2018-04-03 13:03:43
假设您已经考虑过V1可行,那么不同的参数值组合在如何处理值方面有一些共同之处。
在V2中,您只需输入和阅读更多内容,我会说这是引入错误/不正确和丢失需求的最常见的原因。
在V2中,您必须重复单个实现中常见的内容,如果您犯了错误,总体逻辑充其量也是不一致的。如果你想修复它,你可能需要在几个地方修复它。
但是,您可以基于V1优化代码安全:为该过程选择一个更“冗长”的名称,如
doSomethingVerySpecificWithPar1OfTypeXAppliedToPar2OfTypeY(par1, par2)(我有点夸张了.)所以你会立即看到你最初的意图。
您甚至可以从V2中获得最佳效果,并引入单独的函数,这些函数只需重定向到V1的公共函数(因此避免了冗余)。清晰性的提高几乎总是超过效率的轻微损失。
doSthWithPar1Is1AndPar2Is1()
{
doSomethingVerySpecificWithPar1OfTypeXAppliedToPar2OfTypeY(1, 1);
}永远记住大卫·惠勒:“计算机科学中的所有问题都可以通过另一个层次的间接解决”。
顺便说一句:我不认为长的方法命名一个问题,而是一个好处(当然,在一定的长度内)。
https://stackoverflow.com/questions/49630285
复制相似问题