HTML-ViewParse的Controller层插件开发小结
為什么80%的碼農都做不了架構師?>>> ??
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其實就是依賴流程的核心,自動識別錯誤的、循環的依賴,并做一些妥協的處理,可惜由于硬盤被自己給不小心格式化而夭折了…………現在可能要到后期做一個小插件來實現吧。
轉載于:https://my.oschina.net/gaubee/blog/160245
總結
以上是生活随笔為你收集整理的HTML-ViewParse的Controller层插件开发小结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2.2 Wrappers访问控制
- 下一篇: HTML5按钮的点击态问题