安裝本網站至主畫面:

[書籍回顧] JavaScript: Best Practice 評價

PUBLISHED ON DEC 20, 2018 — REVIEW
Facebook Twitter LinkedIn LINE Skype EverNote GMail Yahoo Email

    前言

    JavaScript: Best Practice 是 SitePoint 所出版的 the Modern JavaScript Collection 套書中的第三本。該套書共有四本:

    JavaScript 已經問世 20 多年了,在這段時間內,JavaScript 和網頁技術產生許多的變化。該系列書籍期望能帶來到西元 2018 年為止的最新實務。在 ES6 之後,JavaScript 變動快速,如何將這些新的特性整合進最佳實務中,就是程式人重要的課題。本書對此進行一些討論,給予讀者一定的啟發。

    本書共 121 頁,分為 8 章,算是一本輕量級的書籍。我們接下來會逐一介紹各章節。

    Chapter 1: The Anatomy of a Modern JavaScript Application

    本章是對現代 JavaScript 程式設計的一個概論,包括以下議題:

    • 在 ES6 以後的新語法特性
    • Node.js 簡介
    • 套件 (package) 管理
    • 自動化建置 (build automation)
    • 專案架構
    • 發佈專案 (depolyment)

    由於這系列書籍是套書,故本章放在此處。筆者認為本章應該放在第一本書的第一章才對。

    Chapter 2: Clean Code with ES6 Default Parameters & Property Shorthands

    本章介紹兩個讓程式碼更乾淨的新語法:

    • Default parameters:用更乾淨的語法傳遞物件實字為變數
    • Property shorthands:用更簡短的語法寫物件實字

    這兩項特性都和物件實字相關,算是一些實用小技巧。

    Chapter 3: JavaScript Performance Optimization Tips: An Overview

    我們不能假定每個造訪我們網站或網頁程式的使用者都會用 iPhone X 這類高階手機;許多網站訪客僅使用中低階手機,我們應該優化我們的 JavaScript 程式,以接納更多潛在使用者。 註:仍需以團隊本身的市場考量為主。

    本章提到一些優化的概念:

    • 必要時才進行優化
    • JavaScript 是直譯語言
    • 我們引入的每個函式庫都可能會占用一定運算資源
    • 壓縮程式碼的確可節省容量

    這篇的內容偏向基礎,如果想學更多優化技巧仍需閱讀其他資料。

    Chapter 4: JavaScript Design Patterns: The Singleton

    本章以 ES6 的新語法實作 Singleton 模式,算是偏短的一章。經典的設計模式有 23 種,若再加上其他 JavaScript 特有的模式就有更多模式了。筆者以為,本章的份量稍嫌少了點,或許 SitePoint 日後可考慮對這方面的議題另出專書。

    Chapter 5: JavaScript Object Creation: Patterns and Best Practices

    本章介紹幾個建置 JavaScript 物件的方式:

    • 物件實字
    • 建構函式
    • 承上,搭配原型鏈 (prototype chain) 以節約記憶體
    • ES6 新增的 class

    由於 class 的效能較佳,語法也易寫,應優先使用。

    Chapter 6: Best Practices for Using Modern JavaScript Syntax

    本章提示一些重要的概念:

    • 學習基礎知識比追逐工具來得重要
    • ES6+ 的新特性不僅是語法糖,有時會有行為上的差異
    • const 在某些情境下不是常數 (!)
    • class 比傳統的建構函式來得簡單
    • 適時地用 arrow 函式可簡化程式碼

    我們在學習 ES6+ 的特性時,要注意這些特性所要處理的議題及帶來的改變,而非盲目地使用。

    Chapter 7: Flow Control in Modern JS: Callbacks to Promises to Async/Await

    由於 JavaScript 以單線程運行,大量地使用非同步程式來增進其效能。但早期的非同步程式可能會寫出複雜的回呼程式,這現象戲稱為回呼地獄 (callback hell)。在 ES6 後,程式人可透過 promises 和 async/await 來改善回呼程式的程式碼。本章介紹這兩種新特性及其應注意的事項。

    Chapter 8: JavaScript’s New Private Class Fields, and How to Use Them

    本章介紹如何在類別中建立屬性,包括:

    • 公開屬性
    • 靜態屬性
    • 私有屬性

    在筆者撰文期間,私有屬性仍在提案階段,尚未完全穩定下來,目前筆者傾向先用其他手法來模擬這項特性。想嘗鮮的讀者可看看本章。

    結語

    最佳實務的書籍會比單純的語法書難寫,對於特性豐富、手法多變的 JavaScript 來說更是如此。讀這類書籍時,不應盲目地遵照其建議,而要去思考這些建議的脈絡,藉此建立自己的經驗。本書雖稱不上經典,仍具有一定的參考價值。

    本書承襲 SitePoint 系列書籍輕薄短小的特性,閱讀一次應該不會花太久的時間。但 JavaScript 有許多的議題,僅以 120 多頁的份量是無法完整交待的,所以 the Modern JavaScript Collection 這個系列以四本書的容量來介紹 JavaScript,讀者可視自己的需求單獨購買或成套購買。

    如何購買

    如果讀者想購買本書,可以參考以下的連結。讀者可依自己需求選擇要單買或是整套買。

    你或許對以下產品有興趣