iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

模組化設計 系列

這篇系列文章將分三大主軸,首先介紹模組化的基本概念跟相關 Pattern,第二個範疇是分析 Open Source 的模組設計,並打照自己的模組,最後會以怎麼管理模組與相關工具的使用介紹做結尾。

此篇幅是 Modern Web 2019 演講主題「初探 Javascript 模組化開發 」的延伸,當初礙於議程只有 40 分鐘,刪減了非常多內容,透過 IT 鐵人賽的機會,讓這些內容可以重現天日。

鐵人鍊成 | 共 30 篇文章 | 34 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day11 - Module Loader

Module Loader 通常是指某個函式庫,例如 RequireJS 和 SystemJS,我們可以透過 Module Loader 來加載使用 AMD 或...

2019-09-18 ‧ 由 alincode 分享
DAY 12

Day12 - 最簡單的起手式

模組一開始怎麼界定模組範圍是最困難的,最簡單的方式就是先盡可能切出最小介面,能不公開的就先都不要公開,等到有確定的需求後,再開出新的 API。 以小模組來說,模...

2019-09-19 ‧ 由 alincode 分享
DAY 13

Day13 - 模組的預設參數設計

前一篇我們有提到 koa-router 提供的建構子是可以帶值的,常見用途就是讓使用者可以彈性的覆蓋預設參數,這其實是非常常見的設計,你可以在很多模組都可以看到...

2019-09-20 ‧ 由 alincode 分享
DAY 14

Day14 - 打照自己的模組注意事項

當你要打照自己的模組時,除了要注意設計自己的模組之外,一定也會使用到其他外部模組,在選用模組時,需要考量未來使用你設計的模組的使用者執行環境是哪裡。 如果你的執...

2019-09-21 ‧ 由 alincode 分享
DAY 15

Day15 - 切割模組注意事項

如果模組越來越大的時候,就必須要開始思考怎麼切割模組了,在切模組的過程中,我們將遇到一些挑戰如下: 那原始碼怎麼辦?repo 也要切開來嗎? 版號管理呢? 切...

2019-09-22 ‧ 由 alincode 分享
DAY 16

Day16 - 管理原始碼的解決方案 Monorepo 和 Polyrepo

管理模組化的原始碼的兩種策略 Monorepo 和 Polyrepo Monorepo Monorepo 是指在一個 repo 中,管理多個模組。 截至...

2019-09-23 ‧ 由 alincode 分享
DAY 17

Day17 - yarn workspace

在前面的篇幅,我們有提到如果希望能再不公開前,讓子模組互相使用到最新的更動,可以透過 npm link 的方式,將子模組彼此之前連結起來。 但是如果模組很多的話...

2019-09-24 ‧ 由 alincode 分享
DAY 18

Day18 - lerna.js 基本操作

lerna init 初始化,並選擇版號管理模式 fixed 模式 lerna init { "app-api-server": &q...

2019-09-25 ‧ 由 alincode 分享
DAY 19

Day19 - lerna.js 自動產生 changelog

自動產生 changelog lerna.js 具有自動產生 changelog 的功能,運作邏輯說起來也沒有太神奇,基本上就是你在做 git commit 時...

2019-09-26 ‧ 由 alincode 分享
DAY 20

Day20 - lerna.js 其他實用指令

lerna bootstrap 安裝所有相依的模組,並且將相依的模組連接 (linking) 起來。 lerna bootstrap lerna publis...

2019-09-27 ‧ 由 alincode 分享