通过阅读 过程与规则,我们知道了程序员的工作目标就是使用已知规则去描述“私人教师”的各项规则。规则包含了三个部分:
1) 抓取:抓取本规则公式所需要的变量的具体值的过程。
2) 公式:将抓取到的变量值代入公式计算得到结果的过程。
3) 存放:将计算得到的结果保存起来。
每个页面包含了一个规则定义文件(也被称为服务器端文件sjs),用于描述本页面“私人教师”可提供给学生感知的规则,如果页面蕴含的规则复杂了,我们可以任意将其拆分,通过建立新的view来描述这个拆分出的规则。因此,在WIDE中,每个页面都包含了规则定义文件,默认的规则是直接呈现静态内容。在WIDE里,提供了一些工具来描述规则的三个剖面:
1) 抓取:输入参数定义是最主要的一个变量抓取方式,用于抓取用户提交的数据。
2) 公式:使用基础规则来描述页面规则的过程,基础规则有标准第三方接口调用,可以进一步嵌套其它页面描述的规则。
3) 存放:将计算得到的结果保存起来,目标是保存到输出信息里。我们通过标注为每个需要填空的地方命名,保存到输出信息里,每次请求就会自动填充模板中对应名称的空。
既然需要变量存取,总要有地方将变量写下来以备查阅,请阅读 纸张与存储来了解WWARE都提供了哪些可以保存变量值的纸张,以及这些纸张的含义和作用。
WWARE提供了若干基础规则,可以在页面规则中直接使用。这些基础规则包括了使用第三方接口,查询数据库,验证用户身份等等规则。实践中,请不要使用自定义规则来书写规则,而是尝试使用提供的基础规则来拟合你所需要的规则。
我们提供的自定义规则,可以使用javascript代码,主要目的是用来做信息结构转换的。关于这个特殊的规则使用,下文“信息结构”会给予详细说明。
由于规则则个词不同语境下使用时含义不同,我们在以后使用“代码段”来指代规则,因此,在WIDE中自定义规则被称为自定义代码段,标准查询规则被称为标准查询代码段。请记住,我们使用代码段表示这里定义的规则:包含了抓取、公式、存放三个环节的动作。
请回忆模板化一章告诉你的,我们的最终目标是 使用数据填空,因此,我们本质上只是在使用规则来处理数据罢了,数据才是我们关注的重心。在接下来的“信息结构”篇章里,我们将会了解到, 虽然“私人教师”的的实现手段是规则,实际上,我们思考以及执行时,只是在使用与自然语言中相同含义的名词进行思考的。在学完下一章“信息结构”之后,你会理解到,实际上,我们只需要有四个基础规则,分别是对数据C(Create,创建),R(Read,读取),U(Update,更新)和D(Delete,删除)。之所以提供了很多的基础规则,是因为基础规则库里 融合了很多基础的名词处理以方便您组合——这句话,在学习完下一章节“信息结构”之后就会理解。
到这里为止,我么已经知道, 只需要知道一个页面的任意两个实际数据运行过程,我们就可以像玩找茬游戏那样,通过对比两个实例页面,知道需要填充哪些空,从而得到模板;通过对比两个实际计算过程,把不同部分符号化(代数化),从而得到规则。
在实战中,我们很快会发现,规则涉及的信息好多啊,动辄成百上千,而且这些信息之间彼此纠缠,互有逻辑关系。如何组织这些成千上万的信息呢?实际上,如果您了解产品过程,就会知道, 对产品设计而言,是先有信息点才有页面的,页面不过是被产品设计出来表现信息的一个形式而已。那么,产品如何组织信息点呢?其实产品组织信息点的方式和程序是一致的,详情请阅读下一章“信息结构”。