iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

文科生的軟體工程啟蒙:用一個代購 App,看懂 30 個系統設計觀念 系列

我是文科背景、正準備轉職的軟體小白。這系列用同一個「代購 App」案例貫穿 30 天,以 Top-down 學習法先建立系統設計的宏觀視角,再逐步深入細節。內容分五階段:界定範疇與約束、資料流與狀態管理、模組化與 SOLID 原則、測試與效能、系統演進與回顧。每篇都誠實記錄我卡在哪裡、怎麼想通的。如果你也是非本科、正在自學路上,這系列是寫給你們的!

參賽天數 26 天 | 共 26 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 21

Day 21:可測試性架構(Testability)——純函式(Pure Functions)與無副作用(Side Effects)的價值

昨天談重構時提到一個關鍵前提:每改一小步,就要重新跑測試,確認外部行為沒有改變。但這句話藏著一個沒講清楚的問題——程式碼要「容易被測試」,本身也是一種需要刻意設...

2026-10-04 ‧ 由 clara_liu 分享
DAY 22

Day 22:單元測試基礎——測試金字塔理論、斷言(Assertions)與 Mock 機制

昨天把純函式和有副作用的程式碼分開放之後,今天要正式談「測試」這件事本身:測試應該分成幾種層級、每一層各自驗證什麼、以及遇到無法避免的副作用時,該怎麼處理。 一...

2026-10-05 ‧ 由 clara_liu 分享
DAY 23

Day 23:效能瓶頸分析——時間複雜度(Big-O)在前端資料過濾與渲染中的實際體現

昨天談的測試,驗證的是「結果對不對」,但一個函式就算結果完全正確,也可能慢到使用者等不下去。今天要回頭把 Day 6 提過的 Big-O,實際套用在前端最常見的...

2026-10-06 ‧ 由 clara_liu 分享
DAY 24

Day 24:防抖(Debounce)與節流(Throttle)——高頻事件下的效能防護機制

昨天談的是演算法本身的時間複雜度,但前端效能問題還有另一個常見來源:使用者操作觸發事件的「頻率」。打字、捲動、拖曳視窗,這些動作短短一秒內可能觸發幾十次事件,如...

2026-10-07 ‧ 由 clara_liu 分享
DAY 25

Day 25:模組打包與依賴管理——從單一腳本到模組建置工具(Bundler)的演進邏輯

Day 17 談的是程式碼「怎麼被組織」成一個個模組;今天要接著談這些模組最終要怎麼被送到瀏覽器裡執行——這背後牽涉到一段工具演進的歷史,也說明了為什麼現代前端...

2026-10-08 ‧ 由 clara_liu 分享
DAY 26

Day 26:程式碼品質工具鏈——Linter、Formatter 與 Git Hooks 的自動化約束

Day 13 談過壞味道、Day 20 談過重構,但這些原則如果只靠「大家自己注意」,在趕時間的時候很容易被犧牲掉。今天要談的是怎麼用工具,把這些規範變成自動化...

2026-10-09 ‧ 由 clara_liu 分享