iT邦幫忙

effect相關文章
共有 65 則文章
鐵人賽 Modern Web DAY 17

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

這一篇我們要來講 Timing Out 相關的 Effect API。😀 逾時(Timing Out) 外部呼叫(API / DB / I/O)有時會變慢甚至卡...

鐵人賽 Modern Web DAY 16

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

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

鐵人賽 Software Development DAY 16

技術 15. Effect 實戰分享 3: 資料遷移

這篇要來分享的是之前將 Effect 用在資料遷移的經驗,其實這篇就是「8. Effect 實戰分享 1 :資料清理」的後續,稍微前情提要一下,你拿到了一個老舊...

鐵人賽 Software Development DAY 15

技術 14. dependency injection 與測試

在上一篇我們簡單的介紹了怎麼測試 Effect 的程式,不過好像跟測試一般的程式沒有太大的差別,但別忘了,我們之前還有提到 DI 可能幫助我們更好的寫測試,那就...

鐵人賽 Modern Web DAY 15

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

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

鐵人賽 Software Development DAY 14

技術 13. 如何測試 Effect 的程式

這篇我們要來幫 Effect 的程式寫測試,現在寫測試大家應該都是以 vitest 為主了吧,我們就來用 vitest 吧,若你平常有在寫測試,像這樣的測試應該...

鐵人賽 Modern Web DAY 14

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

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

鐵人賽 Software Development DAY 13

技術 12. Effect 的實戰分享 2:簡易爬蟲

這篇要來介紹怎麼使用 Effect 做個簡單的爬蟲,雖說是簡易的爬蟲,但我們要來做一個 「好」爬蟲,代表我們不會送一堆的請求到伺服器,會加上延遲等等,如果可以做...

鐵人賽 Modern Web DAY 13

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

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

鐵人賽 Modern Web DAY 12

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

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

鐵人賽 Software Development DAY 12

技術 11. Effect layer: 管理 dependency 的相依性

在上一篇中我們講到了 DI ,這篇要來介紹 Effect 中的 DI 要如何透過 Layer 管理相依性 所以為什麼需要管理相依性,我們來講個例子,你設計了一個...

鐵人賽 Modern Web DAY 11

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

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

鐵人賽 Software Development DAY 10

技術 9. Effect 的超級魔法:排程與錯誤重試

在這篇裡,我們要來介紹 Effect 最強大的功能,排程還有錯誤重試 重覆執行 有時你可能需要重覆執行一段程式碼,平常你可能會使用迴圈做,如果還要加上定時的話,...

鐵人賽 Modern Web DAY 10

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

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

鐵人賽 Software Development DAY 9

技術 8. Effect 實戰分享 1 :資料清理

這篇我們總於要來看一下怎麼實際用 Effect 來實作一些功能了,第一篇是資料清理,我們要來看怎麼使用 Effect 協助我們清理資料,並安全的處理各種錯誤的情...

鐵人賽 Modern Web DAY 9

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

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

鐵人賽 Software Development DAY 8

技術 7. 用 Effect 打造自訂的錯誤型別

在前一篇文章中,我們介紹了怎麼在 Effect 中處理錯誤,然而,目前我們拋出的錯誤型態只有 Error ,說好的一看 type 就能知道會發生什麼錯誤呢?在這...

鐵人賽 Modern Web DAY 8

技術 [學習 Effect Day8] 執行 Effect

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

鐵人賽 Modern Web DAY 7

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

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

鐵人賽 Software Development DAY 7

技術 6. Effect 中的錯誤

在這篇中,我們要來看 Effect 中的兩種錯誤類型:預期的錯誤 Expected Error 與非預期的錯誤 Unexpected Error ,另外看在 E...

鐵人賽 Software Development DAY 6

技術 5. 初識 Effect 中的 concurrency

還記得之前我們建立 Effect 時還有分 sync 跟 promise 的嗎?另外還有提到 Effect 像是藍圖,設計好程式的流程後我們才開始執行,這篇裡我...

鐵人賽 Modern Web DAY 6

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

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

鐵人賽 Software Development DAY 5

技術 4. Effect 的基本使用

在前一篇講了那麼多怎麼建立 Effect 跟如何執行,總覺得好像少了什麼東西,條件判斷的 if 還有像迴圈的 for 這些東西跑到哪邊去了,其實很簡單的,這邊想...

鐵人賽 Modern Web DAY 5

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

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

鐵人賽 Software Development DAY 4

技術 3. 第一個 Effect

我們終於要來建立 Effect 了,但… 其實建立 Effect 有非常多的方法,執行 Effect 雖然少一點,但也不只一種,我就介紹幾個比較常用的 使用立即...

鐵人賽 Modern Web DAY 4

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

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

鐵人賽 Software Development DAY 3

技術 2. 為什麼需要 Effect, Promise 不夠嗎

在開始前,我們先來看一個範例,關於以下的 function 你覺得可能有幾個地方可能發生錯誤呢? function fetchItemDetail(id: nu...

鐵人賽 Modern Web DAY 3

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

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

鐵人賽 Modern Web DAY 2

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

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

鐵人賽 Software Development DAY 2

技術 1. Functional Programming 簡介

在第一篇我們說到會介紹一點 functional programming (FP) ,不過不用太緊張,我們不會很深入 FP 的概念,我想應該有不少人,看了一些...