我只是想知道 - 为相对简单的任务创建函数(分解)是不是很糟糕的编程风格?
例如,在PHP中,我发现在会话,发布,获取和cookie上使用'$ _'然后是大写字母很烦人。所以,如果我创建了一个名为setSesVar('key','value')的函数,它会为我创建一个会话变量,那是不是很糟糕?每次值得为它调用函数的开销是多少?或者是不相关/自己的偏好?
其他一些例子:
还有一个稍微偏离的主题问题 - 我习惯于使用更多'严格'数组的语言;在PHP中,你可以添加一个元素到最后购买只是说myArray [] ='newElement'。我觉得我应该做myArray [sizeof(myArray)],但我敢打赌,添加unessesary代码可能是不好的风格。
答案 0 :(得分:1)
只有当你的名字不够冗长时 - 如果它们太短,你最终会无意中混淆你的代码以备将来的维护者使用。另一方面,如果它们足够冗长,一半时间使用原始代码会更快。我会说如果你使用过短的函数名来避免'额外'输入,那么分解只是一个坏主意。
答案 1 :(得分:1)
取决于功能的作用以及您执行此操作的程度。如果你把所有东西都拿出来做一个单行功能,那你就没有真正摆脱任何复杂性。事实上,您已经以两种方式添加了复杂性:
首先,任何没有内置到PHP中的内容都是您的代码新手需要弄清楚的东西。如果我看到$_SESSION['stuff'] = "some value";
,我知道它在做什么 - 就像用PHP花了一个多小时的人一样。另一方面,如果我看到setSessionVar('stuff', 'some value');
,我必须去确定setSessionVar
的作用。我的意思是,除了在$_SESSION
中设置内容之外,它必须做某些事情;否则为什么不做那个?
第二,如果这些功能最终相互呼唤,你最终会得到一只老鼠。函数调用的嵌套。跟踪10(甚至30)线函数比跟踪调用另一个2行函数的2行函数更容易,该函数调用可能或可能的整个其他2行函数不要再调用另一个2行功能。您必须通过该文件(或更糟糕的是,在一堆不同的文件之间切换)才能跟踪您的代码。
在我看来,任何内置于PHP中的东西 - 可以用一行简单的代码表达 - 都不值得拥有自己的功能。我建议将函数限制为至少3行,但有一个例外:需要访问对象内部的方法(例如getter或setter)可以更小。但是大多数函数都应该做一些PHP并不是很容易做到的事情;如果他们不这样做,那么你就会失去功能的目的,并且没有充分的理由增加复杂性。
答案 2 :(得分:0)
我想这将取决于。你会把这些功能放在哪里?最重要的是如果你要在每一堂课中复制这些,那么这可能是一个坏主意。如果你把它们放在一些utils类中,那么目的可能会被打败:
System.out.println(" ... ");
VS
MyUtils.println(" ... ");
真的没有多大意义。 (与其他人一样)