06-敏捷开发框架-apis 脚本库 引用位置无关性设计

动态引入技术的设计,对咱们来讲很是重要。前端

同时也说明动态语言的使用对咱们来讲也是很是重要。api

没有动态语言的支撑,有些想法可能不容易实现,或者有替代方案,可能会花更大的代价。框架

 

 

前端开发框架咱们规划设计了 apis文件夹编码

这个文件夹是用来存放全部的api定义的spa

规范要求设计

全部的api定义都是名动词开发

同时按照各个实体分别创建对应的js文件产品

 

例如 Contract.js  里面就是关于合同的相关 apiit

例如 Company.js 里面就是关于公司的相关 api后台

Contract.js 里面就是

ContractLoad     合同加载

ContractSave     合同保存

ContractDelete  合同删除

ContractSearch  合同查询

ContractApply   合同申请

ContractBack     合同退回

……

 

 

image.png

规范就是所有放在 apis文件夹内

软件项目是动态变化,

如上一开始规模可能不是那么大的时候这个10几个js都放一个目录里面是没有任何问题的。

 

问题是随着时间的变化,项目的变化,可能又有10个

这时候这个文件夹里面的内容有点多,那么感受须要有子文件夹进行分门别类的管理会更好。

可是这些js都是被具体的某个页面,或者多个页面引用的。

从代码重构的角度看,从新规划下目录结构是很是合适的。

可是,可能考虑到同时又要调整

image.png

可能存在多个页面都引用这个js,那么就很是容易形成修改遗漏的状况发生。

 

若是可以作到页面引用和文件位置不相关就行了。

若是这样的话,就能够根据须要,尝试不断的调整。

为何要调整,这个重构的须要,动态发展变化的须要。

不能归结于一开始没有规划到位的问题,在当前的规模、当时的状况是很是到位的。

 

若是可以作到位置和引用无关,那么咱们的重构才能得以实施。不然只能看着代码一天一天发展成本身讨厌的样子。

引用地址以下

image.png

如何才能作到,不相关,这就成了设计的关键。

为了达到这个终极目标。

不相关,意思就是可能哪天放A目录、哪天感受不合适调整到B目录

这是一个动态的,那么这块的引入也就须要设计成动态的,不能如上图静态硬编码了。

 

如何实现动态

敏捷开发框架提供以下的加载方式

 

image.png

Apis.Load 后台动态加载

业务页面只管,我这个页面须要用到 RuleCompany.js

那么就如上写,彻底不关心,这个 js文件的位置,框架自动帮忙搞定。

若是一个页面依赖多个呢,以下图,逗号分隔。

image.png

 

 

 如上图,咱们的业务代码就和apis  js 文件的位置实现了解耦。

 要想正确运行,运行时,确定是要引用正确位置的文件。

这所有交给框架的 ApiManager来管理。

ApiManager在应用程序初始化的时候,会自动收集全部 实体对应的js文件所在的目录

建立一个Map地图

Apis.Load 方法 根据运行时的Map 自动找寻到正确的路径,保证项目的正确运行。

 

 

最后咱们的代码以下,截几个实际的例子:

image.png

如上图,这是咱们的产品查询画面,产品查询画面须要调用产品相关的api 如 apis.ProductInfoSearch  

apis.ProductInfoDelete

 

因此,咱们动态 Apis.Load("ProductInfo")

 

 

image.png

上图是企业编辑画面,Apis.Load("Enterprise")

 

引用和位置无关特性,为将来通向将来设计了一条康庄大道,让在apis管理上提供了重构的可能。

所谓的重构是 在须要的时候动手,不须要的时候不能过多的考虑,不然叫过分设计。

但须要留有修改的可能,Api js引用和位置无关特性就是预设的伏笔。

相关文章
相关标签/搜索