知识卡片
无逻辑与嵌入逻辑模板引擎的取舍
内容
模板引擎有两个理想化的极端:无逻辑模板引擎只做占位符替换、不执行任何逻辑,把所有计算都推给处理器,好处是彻底分离表现和逻辑、渲染速度快;嵌入逻辑模板引擎允许在模板里直接写编程语言代码,表达力强但代价是逻辑分散到各处、代码难以维护(PHP是这条路走到极致的例子,早期模板引擎最终演变成了独立语发散:这本质是”表现层该有多少能力”的边界划定问题——能力越大,复用越强,但边界也越容易被侵蚀,最终吃掉。
参考来源
- 位置:《Go Web编程》第5章《内容展示》(源文件:_epub-src/OEBPS/text00018.html)
- 结论依据:原文在该章节围绕“模板引擎有两个理想化的极端:无逻辑模板引擎只做占位符替换、不执行任何逻辑,把所有计算都推给处理器,好处是彻底分…”给出定义、示例或限制条件;摘录中的术语、代码片段或对比关系直接支撑本卡片的结论。
- 原始内容:生成最终的HTML,而处理器则负责调用模板引擎并将引擎生成的HTML返回给客户端。 如前所述,Web模板引擎演变自SSI(服务器端包含)技术,并最终衍生出了诸如PHP、ColdFusion和JSP这样的Web编程语言。这种演变导致的一个结果是模板引擎并没有相应的标准,并且对各个因为不同原因创造出来的模板引擎来说,它们拥有的特性也是五花八门…