HTML-ViewParse的Controller层插件开发小结
2013-09-10 00:29
267 查看
HTML-ViewParse (注:文档没有完全跟进,还没正式公开,公开后不会用这个名字)
Controller层是提供给用户最直接的API操作,而原本打算做成单纯的插件的想法在beta版本的开发中遇到了一些问题,如果真的要做AOP开发的话,等于重写了DataManager模块,得不偿失,所以将Controller层的核心深度耦合到DataManager中,这算整个框架的开发过程中唯一的重度耦合点,因为一开始的时候框架就没有为Controller留位置。
Controller层提供了 监听类 ,如果要和Emberjs一样将每种数据对象转化成内部的set、get(defineGetter、defineSetter)来操作,我不得不说DataManager立马会进入大内存时代,而且需要重新设计数据结构并做大量冗余处理,毕竟我需要做到IE6兼容。
所以耦合点就出现在这里,我需要保持原本的原生js对象的操作,又要去判定是否是监听类实例并保持和元素对象一样的操作,为了尽量避免涟漪效应,果断采取了重写监听类的valueOf和toString函数来保证原本的构架在不需改动的情况下继续正常运作。但DataManager模块的代码没法这样,毕竟它控制的是最底层的数据,数据的分析更新都要它来做。
我不得不承认由于监听类的加入DataManager模块变得很搓,判断的量翻了有一倍多,毕竟多了一种数据类型。后期的优化应该就是把监听类的功能分离成计算类,把监听功能从set、get的切面中分离出来,整合入新的监听类中,然后再切面到计算类中,使得模块尽量独立。
这几天课程多得变态,做个TODO的笔记,免得到周六周天拿起来继续做是忘了该干什么。
PS:说道依赖监听,之前着手开发的Binder.js其实就是依赖流程的核心,自动识别错误的、循环的依赖,并做一些妥协的处理,可惜由于硬盘被自己给不小心格式化而夭折了…………现在可能要到后期做一个小插件来实现吧。
Controller层是提供给用户最直接的API操作,而原本打算做成单纯的插件的想法在beta版本的开发中遇到了一些问题,如果真的要做AOP开发的话,等于重写了DataManager模块,得不偿失,所以将Controller层的核心深度耦合到DataManager中,这算整个框架的开发过程中唯一的重度耦合点,因为一开始的时候框架就没有为Controller留位置。
Controller层提供了 监听类 ,如果要和Emberjs一样将每种数据对象转化成内部的set、get(defineGetter、defineSetter)来操作,我不得不说DataManager立马会进入大内存时代,而且需要重新设计数据结构并做大量冗余处理,毕竟我需要做到IE6兼容。
所以耦合点就出现在这里,我需要保持原本的原生js对象的操作,又要去判定是否是监听类实例并保持和元素对象一样的操作,为了尽量避免涟漪效应,果断采取了重写监听类的valueOf和toString函数来保证原本的构架在不需改动的情况下继续正常运作。但DataManager模块的代码没法这样,毕竟它控制的是最底层的数据,数据的分析更新都要它来做。
我不得不承认由于监听类的加入DataManager模块变得很搓,判断的量翻了有一倍多,毕竟多了一种数据类型。后期的优化应该就是把监听类的功能分离成计算类,把监听功能从set、get的切面中分离出来,整合入新的监听类中,然后再切面到计算类中,使得模块尽量独立。
这几天课程多得变态,做个TODO的笔记,免得到周六周天拿起来继续做是忘了该干什么。
PS:说道依赖监听,之前着手开发的Binder.js其实就是依赖流程的核心,自动识别错误的、循环的依赖,并做一些妥协的处理,可惜由于硬盘被自己给不小心格式化而夭折了…………现在可能要到后期做一个小插件来实现吧。
相关文章推荐
- 一步一步开发自己的Openfire插件http://www.cnblogs.com/hoojo/archive/2013/03/07/2947502.html
- Openfire插件开发小结
- BHO插件开发小结
- 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
- 基于BootStrap Metronic开发框架经验小结【五】Bootstrap File Input文件上传插件的用法详解
- VSCode拓展插件推荐(HTML、Node、Vue、React开发均适用)
- jquery 插件开发 extjs中的extend用法小结
- jquery 插件开发 extjs中的extend用法小结
- jquery 插件开发方法小结
- html快速开发—— 布局与 jQuery插件
- 基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
- intellij idea的插件开发小结
- jQuery插件开发的五种形态小结
- HTML_eclipse开发_Aptana插件的安装
- jQuery插件开发的五种形态小结
- Wireshark插件开发小结
- jQuery插件开发的五种形态小结
- 黄聪:360浏览器、chrome开发扩展插件教程(2)为html添加行为
- 基于BootStrap Metronic开发框架经验小结【三】下拉列表Select2插件的使用
- 基于BootStrap Metronic开发框架经验小结【二】列表分页处理和插件JSTree的使用