全站通知:

帮助:模板

来自黑神话:悟空WIKI_BWIKI_哔哩哔哩
跳到导航 跳到搜索

模板是一段可复用的文字或代码,是编写Wiki的利器。

本文将综述我们的模板,包括使用场景和设计思想,旨在为模板使用者和维护者提供参考。

要了解如何使用模板,请参阅:

本文假设读者掌握模板的基本概念和使用方法。


常用模板简介

施工中...


设计原则

设计模板应至少遵循以下原则。

单一职责

即“高内聚低耦合”。

如果一个模板提供多个功能,或者做多个事情,有以下缺点:

  • 增加理解困难:看一个模板=看十个
  • 增加维护困难:难以确定修改的影响。一个地方出错,其他功能也会受影响。
  • 增加测试困难:测试一个功能很简单,测试一堆可能相互影响的功能很困难。

典型的负面例子是BWiki的模板:板块。 它提供了13个模板的功能。

如果修改其中一个子功能时出现了语法错误,导致分配功能的Switch提前结束,可能的异常表现是位于子功能代码后边的所有功能失效。 这会对分析、定位问题带来很大困难。

KISS原则(Keep It Simple Stupid)

设计应当保持简洁、单纯,不加入非必要的复杂性[1]

  • 不复杂化代码
  • 不过度设计
  • 不过早优化
  • 不断重构

KISS原则最后的S并没有隐涵愚蠢的含义,而是恰好要求模板的设计是易使人理解的。

再复杂的模板,其使用者和未来的维护者也是广泛的BWiki用户。我们不能假设所有用户都是MediaWiki的使用专家。

设计和开发模板时,每多使用一个特性,就引入了一个新知识。这会增加对维护者的要求,使用者也更难理解模板的行为和工作原理。 缺少使用和维护的模板会逐渐被抛弃、替换。

合理使用模块

对于复杂的需求,可能要密集的嵌套使用解析函数。这常常导致「解析函数地狱」——阅读、维护困难。典型的是#arraymap函数。

此外,游戏通常可以提取数据数据,比如通过解包和脚本将数据自动整理成json,使用模块查询数据可以大大降低工作量。