一堆互相称呼的小功能。更好的组织代码的方法?

时间:2011-09-30 18:05:31

标签: php function coding-style

我是初学者,但我已经写了我的第一个小项目,有些事情并不是真的感觉不错。我希望我能清楚地描述这个问题。

我的整个程序基本上是一堆相互调用的小函数,然后是一行或两行代码调用初始函数来启动'连锁反应'并返回所需的结果。

看起来有点像这样(我正在使用PHP):

$result = func_A($args);

function func_A($arg1, $arg2){
    $localvar1 = blah blah;
    $value = func_B($localvar1, $arg2);
    return $value;
}

function func_B($arg1, $arg2){
    $localvar1 = blah;
    $value = func_C($localvar1, $arg2);
    $return value;
}

function func_C($args){
    blah blah blah
}

因此,当我尝试浏览我的代码时,我会疯狂地在各种函数之间跳来跳去。

有更好的方法吗?我应该在其他功能中创建本地功能吗?这感觉不太对劲。

3 个答案:

答案 0 :(得分:2)

如果你正在进行程序编程(就像你看来的那样),这种方法没有任何内在错误(实际上很多正确)。

PHP现在支持对象(虽然在我看来是一种非常丑陋的方式)所以,可能有一个论点要修改你的代码更多OO。但是,将各种任务隔离到可以编辑的小型单个函数中是有意义的。

我知道这有点争议,但是如果你刚刚开始使用PHP,除非它是你的客户/雇主的核心要求,我会完全绕过它并研究Node.js. 通过在客户端/服务器端的两侧使用一种语言可以获得很多好处,而不是将任务划分为两种类似但看起来不同的语言,这些语言在您处理它们时不断共享屏幕空间,原因是保持服务器和显示部分代码真正分开是多么麻烦。

当然,PHP已经变得如此根深蒂固,许多人认为这已成定局。但是(在我不相关的意见中)除了所有的粉丝,它有许多缺点,并且退休的时机已经成熟。

答案 1 :(得分:2)

总的来说这很好。我们需要了解更多有关具体目标以及代码正在做些什么以获得更多细节。通常,将螺母和螺栓保持在函数中并从一个主要的“命令”中心调用它们是程序编程的一种很好的方法。

然而,一些适用于我的一般高级规则:

  • 不要重复自己。如果你发现你正在做同样的事情 再一次,做一个功能。如果从a加载值 文件,用它计算一些东西,并回显它,为它做一个函数 它

  • 不要过分专注。可能有很多2行功能 这不是一件好事。

  • 如果可以的话,一般。不要连接5个不同的功能 到5个不同的数据库。创建一个函数并传递名称 数据库连接到它。请参阅有关不重复的规则 自己。

  • 如果你有一个函数调用另一个调用另一个的函数,和 他们总是这样使用,考虑做一个单一的功能 它们。

  • 对象非常适合处理一组值并使用它们进行操作。对于一个快速的脚本,不是那么多,但如果你要做一些实质性的工作,比如验证数据,存储它,读入它,把它变成一个单独的字符串,这是一个很好的机会。类可以方便地放入一个文件,然后你可以在其他项目中使用,如果你经常对这个类进行维护,如果你的初始设计是可靠的,那么使用它的脚本可能根本不需要改变。

答案 2 :(得分:0)

您可以使用引用来避免重复。将函数名称添加到数组中,当需要解决方案时,您有一个循环遍历该数组的main函数,并使用$ this-> $ function_name调用该函数。