模块拆分

预先学习页面与模块的概念,学习完之后应该体会到了,模块是更加贴近业务功能的描述角度,而页面只是业务功能的实现载体.因而,将页面视为若干模块组成的视角来看更容易完成页面动态化.

当然,不考虑模块,只考虑页面所涉及的信息点,创建后端视口是也是能够完成的. 但这么做的缺点有 

     复用性不高: 比如用户信息,很多页面都是相同的.需要每个页面都要获取一次用户信息,造成麻烦

     维护性较差: 由于模块是更加贴近业务功能的描述,所以如果使用信息点来沟通业务功能,会造成沟通上的困难,包括理解上的偏差等等

而上述的缺点通过模块化的方式来动态化页面则能有效的避免.拿到一个页面,首先应该是划分这个页面都包含了哪些模块(名词). 然后寻找哪些模块已实现.直接使用这些模块,而那些未实现的模块应该是按照模块URL规范来创建出对应的模块.这么做的优点就是:

     复用性提高: 比如当右上角用户信息处原来显示用户名,后来改为显示昵称,只需要修改对应模块中一处,所有使用这个模块的页面无需变动即可生效.

     维护性提高: 沟通起来更加贴近了业务功能,避免类似"xxx表aaa字段"的词汇.需求的变更或者业务逻辑的理解上更加贴近自然语言.

通常的页面动态化过程应该是这样的:

    首先, 应该圈出这个页面所涉及的模块,使用虚线框框出来

    然后, 按照模块的url规范寻找已实现的模块

    然后, 罗列未找到实现的模块,告知项目经理,又项目经理统一维护模块列表

    最后, 综合使用模块内提供的元素,view,数据视口来完成页面中每个模块的动态化.

模块url命名规则

命名规则分两种情况:

   1.提供逻辑处理的地址l: /模块名/rest/表名/crud+名词.json. 这种地址表示提供的逻辑处理视口
   2.提供的view地址: /v/模块名/表名/crud+名词.html. 这种地址表示提供的是view

表名:相关信息结构图的名称(只取其一)
crud:对应创建、读取、更新、删除(只取其一)
名词:从表名或者表中字段选取一部分,如表名yhxxb或者字段名yhxxb7yhm,yhm或者yhxx;如果遇到多个同张表的操作视口且相同名词,可以在原有的名词上加形容词(根据类型、状态等等)来区分