iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Modern Web

用 Effect 實現產品級軟體 系列

我成為工程師的時間剛好是 ChatGPT 剛問世的時候。當時它還不怎麼好用。但到了現在,伴隨著各種 AI 工具的問世。在激烈的市場競爭下,AI 的能力也隨之大幅提升,甚至已經成為我每天 coding 不可缺少的夥伴。但隨之我也發現一個很大的問題。作為一個 code reviewer,我發現很多工程師的程式碼品質沒有因為 AI 的幫助而提高。甚至讓我覺得 AI 在扼殺他們的成長。所以我想找一個方法可以有效的做出產品級的軟體。因此選擇了學習 Effect 這個 TypeScript 套件,作為這 30 天挑戰的主題。

參賽天數 22 天 | 共 22 篇文章 | 2 人訂閱 訂閱系列文 RSS系列文
DAY 11

[學習 Effect Day11] 實際建立一個 pipeline

我們前幾個章節講了這麼多 Effect 的語法與知識,但都沒有做啥實際有用的玩意兒。這次不同以往,我們實際來建立一個具有業務場景的 pipeline。讓讀者對...

2025-09-25 ‧ 由 erictsai83 分享
DAY 12

[學習 Effect Day12] 用 Effect.gen 扁平化流程:結束巢狀地獄

前言 在上一篇,我們一起做了一個 pipeline,把一連串應收金額的產出步驟用 pipe 串起來。pipe 雖然很適合銜接簡單流程,但當需求變得複雜、需要插入...

2025-09-26 ‧ 由 erictsai83 分享
DAY 13

[學習 Effect Day13] Effect 錯誤管理 (一)

這篇我想要來講解為什麼在 Effect 的錯誤模型中,我們偏好用 class 來定義錯誤。如果不用那會遇到什麼樣的限制與麻煩。 為什麼會有這個疑問? 在 Typ...

2025-09-27 ‧ 由 erictsai83 分享
DAY 14

[學習 Effect Day14] Effect 錯誤管理 (二)

Effect 把錯誤當作一等公民。本文以實作為主,逐步帶你掌握「期望錯誤 vs. 非期望錯誤」、短路語義、常用錯誤處理 combinators,以及在 Effe...

2025-09-28 ‧ 由 erictsai83 分享
DAY 15

[學習 Effect Day15] Effect 進階錯誤管理 (一)

在前面的文章中,我們已經學會了 Effect 的基本錯誤處理 combinators,像是 catchAll、catchTag、orElse 等。這些工具讓我們...

2025-09-29 ‧ 由 erictsai83 分享
DAY 16

[學習 Effect Day16] Effect 進階錯誤管理 (二)

在前一篇文章中,我們學習了 Effect 重試機制的概念與實作。然而,重試機制並非萬能,當所有重試都失敗時,我們需要一個降級策略來確保系統的可用性。這篇文章將深...

2025-09-30 ‧ 由 erictsai83 分享
DAY 17

[學習 Effect Day17] Effect 進階錯誤管理 (三)

這一篇帶你用最直覺的方式,理解 Timing Out 相關的 Effect API。每個段落先用白話說明,再附上可直接跑的程式碼範例;所有console.log...

2025-10-01 ‧ 由 erictsai83 分享
DAY 18

[學習 Effect Day18] Effect 進階錯誤管理 (四)

Effect.disconnect:讓 uninterruptible Effect 逾時時先回應、後收尾 在 Effect 中,Effect.disconne...

2025-10-02 ‧ 由 erictsai83 分享
DAY 19

[學習 Effect Day19] Effect 進階錯誤管理 (五)

本篇要來講一個新的概念錯誤累積(Error Accumulation),它指的是:一次性的執行就把「所有錯誤」都收集回來,而不是遇到第一個錯誤就停止(Fail‑...

2025-10-03 ‧ 由 erictsai83 分享
DAY 20

[學習 Effect Day20] Effect 服務管理(一)

想像你在應用程式裡到處傳 databaseService、loggingService,很快地每個函式都在接收、轉傳一堆 Service,變得又厚又難測。Eff...

2025-10-04 ‧ 由 erictsai83 分享