詳解引擎技術之約定式編程的實現(xiàn)理念(1)
2016-02-20 19:33:35 來源: 曲毅 51CTO.com 評論:0 點擊:
三、如何抽取出適用我們的引擎?
對核心引用的庫抽取,對邏輯控制抽取,對展現(xiàn)抽取,對業(yè)務進行抽取。
四、我們如果要編寫引擎,至少要完成哪些功能?(能稱之為引擎至少要具備的條件)
雖然沒有明文規(guī)定做一個引擎到底需要多少東西,但是這里我給出一個參考方案。如果一個引擎可以提供給別人使用,至少需要有以下處理機制,或者說設計好以下處理機制,可以把自己寫的庫很好的給其他人使用。
代碼約定模式,交互抽離模式,數(shù)據(jù)封裝模式,加密混淆機制,工具類包,插件管理模塊,加載器,攔截器,動畫處理模塊,緩存控制器,超時監(jiān)聽器,模版控制引擎,性能處理模塊(懶加載,按需加載,加速器),業(yè)務邏輯控制工廠,操作日志管理。
當然根據(jù)不同的項目還有很多特殊的模塊,例如做客戶端涉及到解壓縮這樣的,可以設計一個請求代理模塊。
對外還要提供一個給開發(fā)人員配置或者編寫的API層。當然還需要一個盡可能完整的使用說明。
五、什么是約定式編程?它和引擎技術有什么關系?
我們在編程的時候,如果盡可能的減少代碼量,最直觀的方式就是約定了。例如spring種就有約定模式的影子。所以在設計Crow5的時候,我大量的采用了約定的模式。
簡單的描述,如果頁面叫index.html,那么控制器的調用可以叫UI.index。那么,頁面請求的接口可以約定成romote_index。調用的模版名字可以叫做index_tpl。如果是ajax處理的事件綁定函數(shù)可以約定成 ___index 等等。所有的處理邏輯入口和調用的名字都是可以約定的。如果有了這個約定的方式,那么所有類似的編碼就有了規(guī)則,這樣就可以抽象成規(guī)則引擎。那么以后我們只需要傳輸參數(shù),配置。代碼就按照規(guī)則自動生成了。
上面的頁面都是用引擎自動生成的,我們可以看一下代碼。
編寫的代碼就是配置文件,其余所有代碼由引擎自動搞定。所有的性能處理都可以配置。這樣最大的減少重復編碼。
六、你對引擎技術的研究后續(xù)會是什么樣子?
對于未來繼續(xù)研究的是語義方面的抽取,所有引擎的代碼部分是可以通過云平臺自動實現(xiàn)按需分配,生成項目的引擎核心。根據(jù)平臺的配置自動實現(xiàn)配置文件的自動生成。這樣在做APP或者demo的時候,可以實現(xiàn)自動生成。
探索無止境,需要很多靈感,很多設計靈感就是從動物身上得到的,例如在設計心跳保持技術的時候,就是觀察青蛙冬眠這個事情上,抽取總結心跳加速,減速,停止,蘇醒等。希望能把引擎技術繼續(xù)往語義方向上突破,可能那個時候的編程就變成了問答。
【編輯推薦】
