在這篇裡,我們要來介紹 Effect 最強大的功能,排程還有錯誤重試 重覆執行 有時你可能需要重覆執行一段程式碼,平常你可能會使用迴圈做,如果還要加上定時的話,...
上上篇(Day8)我們有講到盡可能 run Effect 在你的程式邊界(Edge),如果你整個程式都是由 Effect 組成,那大部分的時候你應該只會執行你的...
這篇我們總於要來看一下怎麼實際用 Effect 來實作一些功能了,第一篇是資料清理,我們要來看怎麼使用 Effect 協助我們清理資料,並安全的處理各種錯誤的情...
在講怎麼組裝 Effect 建構程式之前,本文會先比較兩種建立 pipeline(指一系列的步驟,每個步驟都會接收前一個步驟的輸出,並回傳新的輸出) 的方式。並...
在前一篇文章中,我們介紹了怎麼在 Effect 中處理錯誤,然而,目前我們拋出的錯誤型態只有 Error ,說好的一看 type 就能知道會發生什麼錯誤呢?在這...
前一篇我們介紹了 Effect Type 的定義和創建 Effect 的方法,這一篇我們要來講講如何執行 Effect。但在實際講語法之前,我想先講一下 Eff...
Effect 的核心目標,是把「副作用的描述」與「副作用的執行」徹底分離,讓我們能以型別安全、可組合的方式建構複雜流程。你可以把 Effect 想成「一份待執行...
在這篇中,我們要來看 Effect 中的兩種錯誤類型:預期的錯誤 Expected Error 與非預期的錯誤 Unexpected Error ,另外看在 E...
還記得之前我們建立 Effect 時還有分 sync 跟 promise 的嗎?另外還有提到 Effect 像是藍圖,設計好程式的流程後我們才開始執行,這篇裡我...
呦~這篇是延續上一篇,若還沒看過上一篇可以先看過再過來喔。 Nix flake:跨平台一致的開發環境 它是什麼? Nix 是跨平台的套件與環境管理器,能在 Li...
在前一篇講了那麼多怎麼建立 Effect 跟如何執行,總覺得好像少了什麼東西,條件判斷的 if 還有像迴圈的 for 這些東西跑到哪邊去了,其實很簡單的,這邊想...
前言 我過去經驗主要是從使用者視角來打造我心中想要的產品。對於如何把產品(尤其是後端服務)做到足夠穩健(robust)並不是我的強項。所以我選擇直接用官方 CL...
我們終於要來建立 Effect 了,但… 其實建立 Effect 有非常多的方法,執行 Effect 雖然少一點,但也不只一種,我就介紹幾個比較常用的 使用立即...
程式中的副作用 在程式開發中,「副作用」指會影響外部世界的操作,例如記錄日誌、發送網路請求、存取資料庫、寫入檔案,甚至 console.log。相對地,在記憶體...
在開始前,我們先來看一個範例,關於以下的 function 你覺得可能有幾個地方可能發生錯誤呢? function fetchItemDetail(id: nu...
這篇與上一篇是連貫的,如果你還沒看過,請先看過再來看這篇。 加入中斷機制 const getTodo = async ( id: number, opt...
生產環境的程式碼必須面對現實,而現實幾乎從來不是一路順遂的「快樂路徑(happy path)」。Effect 作者:Michael Arnaldi 前一章節...
在第一篇我們說到會介紹一點 functional programming (FP) ,不過不用太緊張,我們不會很深入 FP 的概念,我想應該有不少人,看了一些...
前言 我成為工程師的時間剛好是 ChatGPT 剛問世的時候。當時它還不怎麼好用。但到了現在,伴隨著各種 AI 工具的問世。在激烈的市場競爭下,AI 的能力也隨...
Effect 是近一兩年興起的一套 TypeScript 的函式庫,可以幫助我們打造更加強韌的應用程式,目前我已經使用 Effect 這個套件一年多了,這段時間...
快速回顧 還記得這張圖嗎?上一篇我們透過實作 Registry 這層抽象,讓我們能夠有不同資料結構處理 Effect 排程的選擇權,那你一定會想... 為什麼需...
引言 上一篇我們已經完成一個具備訂閱功能的 Signal 核心,這一篇我們來實作 Effect,讓每個依賴項都能自動去追蹤,順利讓原本靜態的圖能具有響應性的動起...
前言 有了前面幾篇的解釋,相信大家已經對 Signal 和 Fine-grained Reactivity 的概念有初步的認識,今天我們就回到開篇內容的主軸,接...