iT邦幫忙

鐵人檔案

2025 iThome 鐵人賽
回列表
Modern Web

用 Effect 實現產品級軟體 系列

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

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

[學習 Effect Day1] 產品級軟體

前言 我成為工程師的時間剛好是 ChatGPT 剛問世的時候。當時它還不怎麼好用。但到了現在,伴隨著各種 AI 工具的問世。在激烈的市場競爭下,AI 的能力也隨...

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

[學習 Effect Day2] 從 POC 到 Production(一)

生產環境的程式碼必須面對現實,而現實幾乎從來不是一路順遂的「快樂路徑(happy path)」。Effect 作者:Michael Arnaldi 前一章節...

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

[學習 Effect Day3] 從 POC 到 Production(二)

這篇與上一篇是連貫的,如果你還沒看過,請先看過再來看這篇。 加入中斷機制 const getTodo = async ( id: number, opt...

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

[學習 Effect Day4] 為什麼需要 Effect

程式中的副作用 在程式開發中,「副作用」指會影響外部世界的操作,例如記錄日誌、發送網路請求、存取資料庫、寫入檔案,甚至 console.log。相對地,在記憶體...

2025-09-18 ‧ 由 erictsai83 分享
DAY 5

[學習 Effect Day5] 建立 Effect 專案 (一)

前言 我過去經驗主要是從使用者視角來打造我心中想要的產品。對於如何把產品(尤其是後端服務)做到足夠穩健(robust)並不是我的強項。所以我選擇直接用官方 CL...

2025-09-19 ‧ 由 erictsai83 分享
DAY 6

[學習 Effect Day6] 建立 Effect 專案 (二)

呦~這篇是延續上一篇,若還沒看過上一篇可以先看過再過來喔。 Nix flake:跨平台一致的開發環境 它是什麼? Nix 是跨平台的套件與環境管理器,能在 Li...

2025-09-20 ‧ 由 erictsai83 分享
DAY 7

[學習 Effect Day7] 了解 Effect Type 並創建 Effect

Effect 的核心目標,是把「副作用的描述」與「副作用的執行」徹底分離,讓我們能以型別安全、可組合的方式建構複雜流程。你可以把 Effect 想成「一份待執行...

2025-09-21 ‧ 由 erictsai83 分享
DAY 8

[學習 Effect Day8] 執行 Effect

前一篇我們介紹了 Effect Type 的定義和創建 Effect 的方法,這一篇我們要來講講如何執行 Effect。但在實際講語法之前,我想先講一下 Eff...

2025-09-22 ‧ 由 erictsai83 分享
DAY 9

[學習 Effect Day9] 透過組裝 Effect 建構程式 (一)

在講怎麼組裝 Effect 建構程式之前,本文會先比較兩種建立 pipeline(指一系列的步驟,每個步驟都會接收前一個步驟的輸出,並回傳新的輸出) 的方式。並...

2025-09-23 ‧ 由 erictsai83 分享
DAY 10

[學習 Effect Day10] 透過組裝 Effect 建構程式 (二)

上上篇(Day8)我們有講到盡可能 run Effect 在你的程式邊界(Edge),如果你整個程式都是由 Effect 組成,那大部分的時候你應該只會執行你的...

2025-09-24 ‧ 由 erictsai83 分享