当前位置: 首页 > 科技观察

更少的代码更干净吗?

时间:2023-03-22 15:55:49 科技观察

在我看来,干净的代码就是简单易懂的代码。没有过度设计,模板文件尽可能少,语义清晰。那么,这是否意味着代码越少越干净?我不这么认为。大多数时候,更少的代码往往在语义上更加模糊并且更难理解(因此更难维护)。当我使用jBehave工作和测试元过滤时,我编写了类似于以下的代码:Arrays.asList("-"+ignoreParameter));}后来在讨论这段代码的时候,我的一位同事说他只是去掉了一些“不需要的”私有方法,所以代码变成了这样:@OverridepublicEmbedderconfiguredEmbedder(){Embedderembedder=super.configuredEmbedder();embedder.useMetaFilters(Arrays.asList("-ignore"));returnembedder;}显然,方法更短,代码更少。对我们来说,使用这样一个类,可能让我们在工作的时候,可以一目了然地看到这个方法发生的变化。但是,如果有人是该项目的新手并且以前从未使用过jBehave怎么办?对他来说,更长的代码可以获得更多的信息,即使他不知道jBehave是如何工作的,什么是“元过滤器”,以及minus是什么意思——但至少他能理解我们想要达到的目标。当我试图解释自己时,其他开发人员同意我的看法,但认为通过添加注释也可以达到同样的效果。是的,我完全同意,添加注释绝对有效。这只是风格问题。我个人不喜欢注释,但是在上面的例子中,也许注释是更好的选择,因为我们可以通过注释来说明metafilter代码和jBehave层文件之间的联系。于是***,代码就变成了这样:@OverridepublicEmbedderconfiguredEmbedder(){Embedderembedder=super.configuredEmbedder();//ignorestoriesandscenarioswithmetainformationparameter@ignore.embedder.useMetaFilters(Arrays.asList("-ignore"));可以说,这么小的案子,不值一提。但是,一个项目的风格,我觉得很重要。您还可以通过讨论具体示例来找到一般风格。也许其他开发人员会考虑他的代码是否会混淆新同事并添加注释而不是将方法减少到一行代码。结论干净的代码并不总是意味着更少的代码。所以,你需要权衡编写更多小方法和减少代码行数之间的利弊。关于代码风格,我将在以后的另一篇文章中讨论。您更喜欢哪种解决方案,为什么?欢迎留下你的意见。