自己動手寫 javascript 框架 Zijs (1) 總體設計

th-5.jpeg
一個想法
我們作為架構師往往更多地是專注技術,而是忽略了使用者和市場這些關鍵因素。我們設計出來架構和應用都是服務於特定人群。好的東西即使沒有價值沒有人用,也就是失去其存在意義。
平時個人喜歡畫點畫,小時候畫畫時候總是喜歡摳細節,然後從一點開始畫,畫到來可能發現比列不對,或者紙張不夠了。架構一樣我們不需要摳細節,先定大方向,先畫大輪廓。有了輪廓定了邊界,定了色調和氛圍,起碼我們的架構不會出現大問題。
前端搞了也有一段時間了,在別人框架做出修改,不過自己還是沒有勇氣寫一個屬於自己的庫。語言我選擇 typescript,預計一週搞定,一週來寫出一個框架雛形機會是在說大話和開玩笑。連我自己也不相信,趕著做吧。
定義大框很重要,定義好大框就好像出一套試卷或者是調查問卷我們只要將答完也就會完成我們框架的設計。分多分少根據個人能力而定,最起碼我們方向不會錯。當然要是不及格也就是失敗了。試卷沒有標準答案。使用者就是我們評審員。
基於函數語言程式設計寫,功能邊寫邊看吧。
框架特點
適合開發大型 web 應用
多終端解決方案
準備對檢視層進行抽象,檢視僅作為抽象和規範,只要終端實現這些規範就可以將應用執行到該終端。
模組化
將框架拆解為模組,降低模組耦合度,通過模組擴充套件讓框架提供更加豐富的功能。
全新的二進位制模板
以二進位制生成模板檔案更好、更快執行在瀏覽器上。
增強的檢視渲染 API
會整合 WebAssembly 來實現瀏覽器端支援高密度的計算,有關 WebAssembly 具體是 go 語言還是用 Rust 實現還沒有想好。
機器學習
因為有 WebAssembly 我們可以想象一下,可不可以在客戶端完成一些計算呢。
相容性
當下暫時僅支援 es6 , 隨後有機會進行降級 shim/polly 支援到 es5。

html5-css-javascript-logos.png
參考資料
參考《javascript 函數語言程式設計》《你不知道 javascript》
javascript 開發者大會的 present