我成為工程師的時間剛好是 ChatGPT 剛問世的時候。當時它還不怎麼好用。但到了現在,伴隨著各種 AI 工具的問世。在激烈的市場競爭下,AI 的能力也隨之大幅提升,甚至已經成為我每天 coding 不可缺少的夥伴。但隨之我也發現一個很大的問題。作為一個 code reviewer,我發現很多工程師的程式碼品質沒有因為 AI 的幫助而提高。甚至讓我覺得 AI 在扼殺他們的成長。所以我想找一個方法可以有效的做出產品級的軟體。因此選擇了學習 Effect 這個 TypeScript 套件,作為這 30 天挑戰的主題。
前言 我成為工程師的時間剛好是 ChatGPT 剛問世的時候。當時它還不怎麼好用。但到了現在,伴隨著各種 AI 工具的問世。在激烈的市場競爭下,AI 的能力也隨...
生產環境的程式碼必須面對現實,而現實幾乎從來不是一路順遂的「快樂路徑(happy path)」。Effect 作者:Michael Arnaldi 前一章節...
這篇與上一篇是連貫的,如果你還沒看過,請先看過再來看這篇。 加入中斷機制 const getTodo = async ( id: number, opt...
程式中的副作用 在程式開發中,「副作用」指會影響外部世界的操作,例如記錄日誌、發送網路請求、存取資料庫、寫入檔案,甚至 console.log。相對地,在記憶體...
前言 我過去經驗主要是從使用者視角來打造我心中想要的產品。對於如何把產品(尤其是後端服務)做到足夠穩健(robust)並不是我的強項。所以我選擇直接用官方 CL...
呦~這篇是延續上一篇,若還沒看過上一篇可以先看過再過來喔。 Nix flake:跨平台一致的開發環境 它是什麼? Nix 是跨平台的套件與環境管理器,能在 Li...
Effect 的核心目標,是把「副作用的描述」與「副作用的執行」徹底分離,讓我們能以型別安全、可組合的方式建構複雜流程。你可以把 Effect 想成「一份待執行...
前一篇我們介紹了 Effect Type 的定義和創建 Effect 的方法,這一篇我們要來講講如何執行 Effect。但在實際講語法之前,我想先講一下 Eff...
在講怎麼組裝 Effect 建構程式之前,本文會先比較兩種建立 pipeline(指一系列的步驟,每個步驟都會接收前一個步驟的輸出,並回傳新的輸出) 的方式。並...
上上篇(Day8)我們有講到盡可能 run Effect 在你的程式邊界(Edge),如果你整個程式都是由 Effect 組成,那大部分的時候你應該只會執行你的...