【问题标题】:Is it better to write many small functions or less large functions?写很多小函数还是少写大函数更好?
【发布时间】:2016-11-02 18:16:03
【问题描述】:

目前正在做一个项目,突然想到:

小函数多写好还是大函数少写好?

如果它在编译等方面很重要,我正在用 PHP 编写,但在一般意义上哪个更好?

伪代码示例一:

// Param i
func example
  switch i
    case x: 
      do func 1
      do func 2
    case y:
      do func 3
      do func 4
  end
end

伪代码示例二:

// Param i
func example
  switch i
    case x:
      do stuff from func 1
      do stuff from func 2
    case y:
      do stuff from func 3
      do stuff from func 4
  end
end

【问题讨论】:

  • 为什么不写一个类?
  • 这取决于代码,如果从逻辑上讲,将一组放在一个地方是有意义的。这真的取决于每个开发人员。
  • 两者都写并进行时间比较,这样您就会知道哪个更快满足您的需求。但是,如果您正在谈论一个非常大规模的应用程序,则需要考虑可读性和易于编辑;节省 0.5 秒的时间使其更难维护,反之亦然。这是您的选择
  • 由于框架的原因,我认为这是我无法控制的@KIMB-technologies(但是我还在学习它,所以可能是一个选择)

标签: php function optimization


【解决方案1】:

如果您评估您要求这些函数执行的操作,函数中是否有大块代码具有不可忽略的被调用但未被使用的机会?

例如,如果您有一个处理图像并在 PNG 或 JPG 时执行的函数,则运行两个函数会更容易,一个用于 PNG,一个用于 JPG,并且只需有一个决定器函数来选择其中的哪一个将被调用基于传递的图像参数。

一大功能

imageloader($imgFile){
    if (image is PNG){
        load image 
        resize image
        output image
    }
    if (image is JPG){
        load image 
        resize image
        output image
    }   
}

几个较小的函数

imageloader($imgFile){
    if (image is PNG){
        call pngimg function
    }
    if (image is JPG){
        call jpgimg function
    }
    resize image
    output image
}

pngimg($file) {
    return load PNG image
}

jpgimg($file) {
    return load JPG image
}

上面的代码现在意味着如果您的代码的另一部分需要加载 JPG 图像,但 不需要 需要调整它的大小,您可以简单地调用 imgjpg 函数,这增加了为您的代码使用提供更高级别的灵活性。

还取决于一个函数的某些部分在其他情况下可能有用,在这种情况下,使该函数本身成为一个函数,并简单地从正在运行的函数中调用它。以D运行而不是R重复Y我们自己(DRY)的编程原则。

这都是假设性的,并且在很大程度上取决于您的实际代码实际上是什么、您打算将其用于什么以及您未来代码维护和后续开发的时间表。

【讨论】:

  • 感谢您的回答。这是值得记住的好信息
猜你喜欢
  • 1970-01-01
  • 2012-12-01
  • 1970-01-01
  • 2020-09-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多