函数与重复代码

csk*_*wrd 8 php code-generation function

我正在编写一些PHP代码来使用FPDF库创建PDF.我基本上使用相同的4行代码来打印文档的每一行.我想知道哪个更有效率,一遍又一遍地重复这4行,还是会让它成为一个更好的功能?我很好奇,因为感觉函数会有更大的开销,因为函数只有4行长.

我质疑的代码如下:

$pdf->checkIfPageBreakNeeded($lineheight * 2, true);
$text = ' label';
$pdf->MultiCell(0, $lineheight, $text, 1, 'L', 1);
$text = $valueFromForm;
$pdf->MultiCell(0, $lineheight, $text, 1, 'L');
$pdf->Ln();
Run Code Online (Sandbox Code Playgroud)

Chr*_*rra 16

这应该回答:http: //en.wikipedia.org/wiki/Don%27t_repeat_yourselfhttp://www.codinghorror.com/blog/2007/03/curlys-law-do-one-thing.html

Curly's Law,Do One Thing,反映在现代软件开发的几个核心原则中:

  • 不要重复自己

    如果你有多种表达同一事物的方法,那么在某些时候,两个或三个不同的表示很可能会相互脱离.即使他们不这样做,你也可以保证在发生变化时并行保持并行.并且会发生变化.如果您需要灵活且可维护的软件,请不要重复自己.

  • 一次只有一次

    每一个行为声明都应该发生一次,而且只发生一次.在重构代码时,这是主要目标之一,如果不是主要目标.设计目标是消除重复的行为声明,通常是通过合并它们或用统一抽象替换多个类似的实现.

  • 单点真相

    重复导致不一致和代码被巧妙地破坏,因为当您需要更改所有这些时,您只更改了一些重复.通常,这也意味着您没有正确地考虑代码的组织.任何时候你看到重复的代码,这是一个危险的迹象.复杂性是一种成本; 不要付两次钱.


tpl*_*ner 12

而不是问自己哪个更有效率,而应该问自己哪个更易于维护.

编写函数更易于维护.


duf*_*ymo 11

我很好奇,因为感觉函数会有更大的开销,因为函数只有4行长.

这是意大利面条的来源.

定义将其封装到一个函数中并调用它.您担心的开销是最糟糕的过早优化.

干 - 不要重复自己.