閱讀776 返回首頁    go 阿裏雲 go 技術社區[雲棲]


《JavaScript忍者秘籍》——1.4 當前最佳實踐

本節書摘來自異步社區《JavaScript忍者秘籍》一書中的第1章,第1.4節,作者:【美】John Resig(萊西格) , Bear Bibeault(貝比奧特) 譯者: 徐濤 更多章節內容可以訪問雲棲社區“異步社區”公眾號查看。

1.4 當前最佳實踐

掌握JavaScript語言和跨瀏覽器編碼問題是成為Web應用程序開發專家的重要條件,但它們並不是全部。要進軍專家行列,還需要秀出以下很多開發人員之前都已經掌握的高質量代碼。我們將在第2章深入研究這些被稱為最佳實踐(best practices)的特征,除了熟練掌握語言外,還包括如下元素。

  • 測試。

  • 性能分析。

  • 調試技巧。

在我們的編程過程中,時常遵守這些最佳實踐是極其重要的;跨瀏覽器開發的複雜性也直接證明了這一點。讓我們來看看這些實踐。

1.4.1 當前最佳實踐:測試
在本書中,我們將使用大量的測試技術,以確保示例代碼的運行符合我們的預期,同樣也作為測試一般代碼的示例。對於測試,我們將使用的一個主要工具是assert()函數,其目的是斷言代碼是true還是false。

該函數的一般形式是:
screenshot

第一個參數是一個條件,應該是true,而第二個參數則是一個消息,在第一個參數不為true時進行顯示。

考慮如下代碼:

screenshot

如果變量a的值不等於1,斷言就會失敗,這些過於戲劇性的消息就會顯示。

注意,assert()函數並不是JavaScript語言的原生特性(一些像Java這樣的語言,也提供這樣的功能),所以我們會自己實現它。我們將在第2章討論assert()函數的實現以及使用。

1.4.2 當前最佳實踐:性能分析
另一個重要的實踐是性能分析。瀏覽器的JavaScript引擎在JavaScript本身的性能表現上取得了驚人的進步,但這並不是我們編寫劣質和低效代碼的借口。

我們將使用本書稍後的如下代碼,收集性能信息:

screenshot

上述代碼中,我們在代碼執行的地方記錄時間戳:一個在代碼執行開始前,一個在代碼執行後。兩個時間戳之間的差值告訴我們代碼執行了多少時間,使用相同的方式,我們可以測量其他替代代碼方案的執行時間。

注意我們是如何多次執行代碼的;在本例中,我們執行的次數由maxCount表示。因為代碼的單次操作執行太快而很難準確地測量,所以我們需要多次執行代碼以獲取可衡量的值。至於執行次數有多頻繁,這個數可以是成千上萬,甚至上百萬,這取決於被測代碼的性質。通過反複試驗,我們可以選擇一個合理的值。

這些最佳實踐技術,以及在這個過程中我們將學到的其他實踐,將極大地提高我們的JavaScript開發水平。用瀏覽器提供的有限資源開發應用程序,再加上瀏覽器功能和兼容性問題的日益複雜,因此掌握完整和強大的技能是非常必要的。

最後更新:2017-06-06 07:36:40

  上一篇:go  《第一本Docker書(修訂版)》——1.2 Docker組件
  下一篇:go  《Docker生產環境實踐指南》——導讀