天天看點

《JavaScript架構設計》——導讀

《JavaScript架構設計》——導讀

前言

javascript架構設計

首先說明一下,本書雖是講解架構設計,但寫個架構不是很深奧的事情,重點是建立更為完整的前端知識樹。隻有自己嘗試寫個架構,才有機會接觸像原型、作用域、事件代理、緩存系統、定時器等深層知識,也才有機會了解applyelement、swapnode、importnode、removenode、replacenode、insertadjacenthtml、createcontextualfragment、runtimestyle等偏門api,也才會知曉像getelementbyid、getelementsbytagname、setattribute、innerhtml存在大量的bug,當然你也可以嘗試最近幾年浏覽器帶來的新api(包括ecma262v5、v6、html5或大量誤認為是html5的新子產品),如object.defineproperty、css.supports、webkitshadowroot、getdefaultcomputedstyle……

雖然這難免落入“造輪子”的怪圈中,但“造輪子”在這世界卻是出奇普遍。一般創造性的活動,一開始都是臨摹他人的作品。就算不“造輪子”,也要收集一大堆“輪子”,作家有他的素材集,設計師有大量icon與筆刷,普通的“碼農”也有個commonjs存放着一些常用的函數。以前的程式員們,經常會為了做一個資料處理程式而自己開發一門程式設計語言。如charls moore,他在美國國家天文台做射電望遠鏡資料提取程式時開發了forth;高德納為了讓自己寫的書排版漂亮些,寫了tex;dhh為了做網站寫了rails……如果連寫一個控件都要百度或google查找答案,那水準不容易提高。

目前很少有技術書教你寫架構的,即便是衆多的java類圖書,大多數也是教你如何深入了解shh的運作機理。

如果你是這兩三年才接觸javascript,那恭喜你了。現在javascript的應用洪荒時代已經過去,portotype.js的幕府“統治”也已結果,且已迎來非常強勢的jquery紀元,有大量現成的插件可用,許多公司都用jquery,意味着我們的技術有了用武之地。

但事實上還是要通過調試程式獲得經驗,隻從javascript書上學習的那些知識點沒法明白jquery的源代碼。

許多大公司的架構師根據技術發展的情況,他們都有自己一套或幾套javascript底層庫,各個部門視情況還發展針對于自己業務的ui庫。而企業開發中,ui庫就像流水線那樣重要。而底層庫隻是一個好用的“錘子”或“膠鉗”。要想迅速上手這麼多公司架構,基礎知識無疑是非常重要的。假若之前自己寫過架構,那就有了經驗。道理是一樣的,架構設計的一些“套路”肯定存在的。本書就是把這些“潛規則”公開出來,迅速讓自己成長為技術達人。

[第 1 章 種子子產品

<a href="https://yq.aliyun.com/articles/91895">1.2 對象擴充</a>

<a href="https://yq.aliyun.com/articles/91900">1.3 數組化</a>

<a href="https://yq.aliyun.com/articles/91908">1.4 類型的判定</a>

<a href="https://yq.aliyun.com/articles/91912">1.5 主流架構引入的機制——domready</a>

<a href="https://yq.aliyun.com/articles/91917">1.6 無沖突處理</a>

[第 2 章  子產品加載系統

<a href="https://yq.aliyun.com/articles/91935">2.2 加載器所在路徑的探知</a>

<a href="https://yq.aliyun.com/articles/91938">2.3 require方法</a>

<a href="https://yq.aliyun.com/articles/91945">2.4 define方法</a>

第 3 章 語言子產品

第 4 章 浏覽器嗅探與特征偵測

第 5 章 類工廠

第 6 章 選擇器引擎

第 7 章 節點子產品

第 8 章 資料緩存系統

第 9 章 樣式子產品

第 10 章 屬性子產品

第 11 章 事件系統

第 12 章 章異步處理

第 13 章 資料互動子產品

第 14 章 動畫引擎

第 15 章 插件化

第 16 章 mvvm

繼續閱讀