極簡化

維基百科,自由的百科全書
跳至導覽 跳至搜尋

極簡化(另稱縮小化),在程式語言 (尤其是 JavaScript) 的範疇裏,指的是在不影響功能的情況下,移除所有非功能性必要之原始碼字元(如:空白換行註解、以及些許的區塊辦識子),因為雖然它們有助於提昇原始碼的易讀性,但在實際運行時卻不是必要的部份。

極簡化後的原始碼特別對於在網絡上傳送的直譯式語言(例: Javascript)有所助益,因為經過極簡化之後,需要傳輸的資料減少了,大幅減少了傳輸所需的時間以及頻寬;極簡化後的原始碼也可以被當作一種代碼混淆的結果,使人不易閱讀或使用,但只需依靠原始碼美化器便可以把結構整理出來;極簡化和常見的數據壓縮也有所不同,因為極簡化的原始碼並不需要經過解壓縮的過程便可以閱讀或執行。

另外,極簡化同時也是一種程式設計師文化:例如在 Perl 的圈子裏,Perl Golf 活動的目標正是追求盡可能的極簡化。

範例[編輯]

舉以下的 JavaScript 為例子

var array = [];
for (var i = 0; i < 20; i++) {
  array[i] = i;
}

與下面極簡化後的原始碼等價

for(var a=[i=0];++i<20;a[i]=i);

歷史[編輯]

2003年,Douglas Crockford 發表了 JSMin 工具,這個版本只移除原始碼中的註解以及空白字元。推出不久後,就由 YUI Compressor 接着發展。

2009年,Google 公開了它們的 Closure Toolkit,當中包括 Closure Compiler,一個能產出原始碼對照表的簡化器,以及一個稱為 Closure Inspector 的 Firefox 外掛。

2010年,Mihai Bazon 發表 UglifyJS;2012年發表重新改寫的 UglifyJS2,以便加入原始碼對照表支援。

原始碼對照表[編輯]

原始碼對照表在原始碼和極簡化後的程式碼中建立所需的對應,如此一來在除錯工具中,極簡化後的原始碼看起來就像是原本的原始碼一樣。

這個對照表的格式,最早是由 Joseph Schorr 作為 Closure Inspector 極簡化計劃裏的一個部份定立的。後續的第二、三版,更進一步減小的對照表的檔案大小。

參見[編輯]

外部連結[編輯]