通常,程序员编写生成其他代码的代码.
(技术术语是metaprogramming,但它比仅仅交叉编译器更常见;考虑生成HTML或每个XSLT文件的每个PHP网页.)
我发现一个具有挑战性的领域是提出一些技术来确保手写源文件和计算机生成的目标文件都明确缩进以帮助调试.这两个目标似乎经常相互竞争.
我发现这在PHP / HTML组合中特别具有挑战性.我认为这是因为:
>源文件中有时会生成比生成PHP更多的HTML代码
> HTML文件往往比SQL语句更长,需要更好的缩进
> HTML具有对空间敏感的功能(例如标签之间)
>结果是比SQL语句更公开可见的HTML,因此要做更合理的工作会有更大的压力.
你用什么技术来解决这个问题?
编辑:我接受至少有三个参数不打扰生成漂亮的HTML代码:
>增加了生成代码的复杂性.
>浏览器渲染没有区别;开发人员可以使用Firebug或类似功能来很好地查看它.
>轻微的性能损失 – 增加了空白字符的下载时间.
我当然有时会生成代码而不考虑缩进(尤其是SQL).
但是,有一些论点推动了另一种方式:
>在实践中,我发现我经常阅读生成的代码 – 有额外的步骤来访问它是不方便的.
> HTML有一些偶尔会引起空间敏感性的问题.
例如,考虑代码:
$fooHeader();
$fooBody();
$fooFooter();
?>
它比以下代码更清晰:
$fooHeader();
$fooBody();
$fooFooter();
?>
但是,由于HTML中包含的空格,它也有不同的渲染.