這篇系列文章將分三大主軸,首先介紹模組化的基本概念跟相關 Pattern,第二個範疇是分析 Open Source 的模組設計,並打照自己的模組,最後會以怎麼管理模組與相關工具的使用介紹做結尾。
此篇幅是 Modern Web 2019 演講主題「初探 Javascript 模組化開發 」的延伸,當初礙於議程只有 40 分鐘,刪減了非常多內容,透過 IT 鐵人賽的機會,讓這些內容可以重現天日。
我會想寫這個主題的原因是希望透過 IT 邦幫忙鐵人賽,將當初因議程時間限制而刪減的內容有機會重現天日。 30 篇的文章會分成三大部分 理論基礎 模組與模組化...
這是系列文的第一篇,首先讓我們釐清相關的專有名詞開始。 模組 (module) 從維基百科上面的定義,我們可以條列出幾個重點: 模組是由數個「基礎功能元件」組...
單一職責原則 (Single responsibility principle) 簡稱 SRP,相信大家對它都不陌生,它時常出現在物件導向的書中,我最近一次看到...
在前面其實我們已經有提到,可替換性是模組很重要的特徵之一,我們延續上一篇的例子來觀察作者的設計思維,下面這段程式碼是一個最樸實的報表格式,當測試案例通過時,就印...
對一個模組而言,好的 API 設計是非常重要的,需要考慮到很多細節,例如: API 的一致性 當你公開 release 你的模組後,你就得考量向後相容的問題,你...
Javascript 並不像其他程式語言有內建命名空間 (namespace) 的概念,也沒有 private 和 public 語法,但你還是可以透過結構化的...
在我大學畢業後的第一份工作,被派駐到某新竹園區大廠工作時,那是我第一次與模組模式 (Module Pattern) 相遇,當我並不知道它有名字。 當時我們整個專...
ES5 跟 ES6 在模組規範上,採取不同的模式。 CommonJS (CJS) CJS 是採同步的,CJS 規範是為了在瀏覽器環境之外構建 JavaScri...
ESM 全名叫 EcmaScript Module,提供了更簡潔的的語法,支援靜態載入模組、有助於靜態檢查、效能優化等等。 目前處於 Plan for New...
前面我們介紹了多種模組格式,那如果格式不同怎麼辦?這時候我們就可以使用,模組打包工具來幫我們轉換。 模組打包工具有非常多種選擇: Webpack https...