【发布时间】:2018-12-01 03:45:37
【问题描述】:
是编写许多小方法(或函数)更好,还是简单地将这些小进程的逻辑/代码直接写入您将调用小方法的地方?即使暂时只从一个地方调用它,将代码分解成一个小函数怎么样?
如果一个人的选择取决于某些标准,它们是什么?程序员应该如何做出好的判断?
我希望答案可以普遍适用于多种语言,但如有必要,给出的答案可以针对一种或多种语言。特别是,我正在考虑 SQL(函数、规则和存储过程)、Perl、PHP、Javascript 和 Ruby。
【问题讨论】:
-
拆分有助于代码的可读性。 if(Convert.ToBoolean(row["IsActive"])) 的可读性不如“if(obj.IsActive)”。 :)
-
嗯。相关 SOF 问题:stackoverflow.com/questions/20981/…
-
我个人不喜欢代码有很多非常小的函数(1-3 行)只能从一个地方调用(像
int foo(){ return do_foo(); } int do_foo(){ /*actual code*/ }这样的东西是最糟糕的,IMO)然后,要了解实际由这些部分组成的有用功能,我必须追逐每个子功能,它a)很容易迷失在b)容易忽视可能的优化。我会说如果它很好地适合一个屏幕并且没有重复使用的潜力,请不要拆分它。 -
@PSkocik 我发现(使方法更小)的主要好处是它们更容易测试,因为它们的范围/责任更小,并且更容易“融入”人类思维.
-
@Pistos 这是一个平衡。大型单体函数绝对是禁忌,但太多不必要的微函数也会损害可读性——至少对我来说是这样。
标签: language-agnostic function