iT邦幫忙

effect相關文章
共有 60 則文章
鐵人賽 Software Development DAY 30

技術 29. Effect 生態系: `@effect/platform` 不同平台也能有一樣的 API

這篇要來介紹的是 @effect/platform , Effect 將不同平台的 API ,主要是 Browser 跟 Node.js 中可以共通的部份抽出來...

鐵人賽 Modern Web DAY 29

技術 [學習 Effect Day29] Effect 並行執行(一)

在 JS/TS 中,Promise 能夠處理單個或多個非同步的運算。但遇到取消、資源清理、超時、平行度控制與競速等需求時,卻缺乏一致的標準寫法,往往得自行組合...

鐵人賽 Software Development DAY 29

技術 28. 不可變的資料型態們: Array, Record, HashSet, HashMap

這篇要來講 Effect 內的一些資料型態,不過有些你可能在我們之前的一些範例中都見到了,比如 Array ,我們之前就用過 Array.map ,不過在那之前...

鐵人賽 Modern Web DAY 28

技術 [學習 Effect Day28] Effect 資源管理(二)

延續前一篇「Effect 資源管理(一)」,本篇聚焦在 Scope 與相關的 API:Effect.addFinalizer、Effect.scoped、Eff...

鐵人賽 Software Development DAY 28

技術 27. Match: tag 與模式比對

這篇我們要來看 Effect 裡怎麼做模式比對,模式比對是我覺得一個非常方便的功能,如果有看過我之前寫的文章,你可能會知道我是個 Rust 的愛好者, Rust...

鐵人賽 Modern Web DAY 27

技術 [學習 Effect Day27] Effect 資源管理(一)

在長時間運行的應用中,像是資料庫連線、檔案操作、網路請求,這些「使用後必須釋放或關閉」的資源若沒有妥善處理,系統就會發生資源外洩。常見的外洩種類有兩種: 記憶...

鐵人賽 Software Development DAY 27

技術 26. Effect schema:資料格式驗證

這篇要來介紹的是 Effect 內建的資料格式的驗證工具 Schema ,另外我之前也提到,我個人平常還是偏好使用 zod 這個老牌的格式驗證為主,這篇我們一起...

鐵人賽 Modern Web DAY 26

技術 [學習 Effect Day26] Effect 中的 Data Types(二)

昨天我們介紹了 Option、Either、Result、Exit、Cause 的用法,今天我們來介紹其他常用的 Data Types。我保證這篇是最後一篇 d...

鐵人賽 Software Development DAY 26

技術 25. Effect 與 Observability

這篇要來介紹 Effect 與 Observability , Observability 中文叫可觀測性,意思是你的程式的執行的過程是可以被觀察的,特別是在分...

鐵人賽 Software Development DAY 25

技術 24. Effect logging

這篇來介紹的是在 Effect 裡面怎麼寫 log ,不知道各位平常有沒有習慣在寫 log ,如果程式有 log 的話,可以幫助我們了解程式現在的狀態,在除錯上...

鐵人賽 Modern Web DAY 25

技術 [學習 Effect Day25] Effect 中的 Data Types(一)

Effect Type vs Data Type Effect Type:一個「尚未執行的工作描述」。它可能需要外部環境才能跑,實際執行時要嘛成功回傳結果、要...

鐵人賽 Software Development DAY 24

技術 23. Effect 應用 2 :用 orpc 與 Effect 打造強韌的 API 介面

這篇要來看 Effect 在後端又可以怎麼樣的使用,這次我們會搭配 orpc 這個 RPC 的套件來一起使用, orpc 可以幫助我們寫出 type-safet...

鐵人賽 Modern Web DAY 24

技術 [學習 Effect Day24] Effect 服務管理(五)

用 Effect.Service 簡化服務定義 Effect.Service 是把「tag + 預設實作 + 對應的 Layer」合在一起的語法糖。 很適合應用...

鐵人賽 Software Development DAY 23

技術 22. Effect 應用 1 : 如何在 React 中呼叫 Effect 的程式

這篇要來介紹怎麼在實際的環境中使用 Effect ,這次介紹的是在 React 中會怎麼使用,除了簡單的情境我們可以直接用 Efect.runPromise 外...

鐵人賽 Modern Web DAY 23

技術 [學習 Effect Day23] Effect 服務管理(四)

延續 Day21-Day22 資料庫服務範例 在 Day21-Day22 我們已經建立好 ConfigLive、LoggerLive、DatabaseLive,...

鐵人賽 Software Development DAY 22

技術 21. Effect runtime :自訂如何執行 effect

這邊要來講的是 Effect 的 runtime ,不要懷疑,就是執行 Effect 的 fiber 的那個runtime ,你可能會覺得這有什麼好講的,我們平...

鐵人賽 Modern Web DAY 22

技術 [學習 Effect Day22] Effect 服務管理(三)

在上一篇文章中,我們學會了如何用 Layer 來解決服務依賴服務的問題,避免需求外洩(Requirement Leakage)。我們建立了 ConfigLive...

鐵人賽 Modern Web DAY 21

技術 [學習 Effect Day21] Effect 服務管理(二)

在上一篇文章中,我們聊到如何用 Context 建立服務,並把服務提供給 Effect 使用。不過在文章的最後我們有提到服務依賴服務的問題。這會帶來一個設計上的...

鐵人賽 Modern Web DAY 20

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

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

鐵人賽 Software Development DAY 21

技術 20. Effect 資源管理與作用域

這篇來要講個我個人認為挺有趣的東西,資源管理,一般如果是在前端,需要資源管理的情況可能比較沒有那麼多,因為網頁重整了就什麼都沒了,這可能是後端會比較需要的,不過...

鐵人賽 Software Development DAY 20

技術 19. Effect 實戰分享 4: 取得看版資料

這次要來分享的是之前實作過的一個比較複雜的介面:看版,以及在裡面我們是如何用 Effect 協助我們取得資料的 什麼是看版 (圖片來源 wiki) 如果你平常有...

鐵人賽 Software Development DAY 19

技術 18. Request and batching

這篇我們要來看 Effect 中如何做到 batch request ,但為什麼我們會需要 batch request 呢?我之前正好有寫過類似的文章,有興趣的...

鐵人賽 Software Development DAY 18

技術 17. Effect 的 concurrency 調度器: Fiber 簡介

這篇我們要來看 Effect 是怎麼調度我們的程式的執行流程的,如果你之前有碰過一些比較偏向系統程式的東西,你可能會知道, fiber 指的是協程,意即一種需要...

鐵人賽 Modern Web DAY 18

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

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

鐵人賽 Software Development DAY 17

技術 16. 再看 concurrency:使用 fork 在背景執行

這篇要來稍微看一下 Effect 到底是如何實作的,同時我們會先來看到,如何在「背景」執行 Effect Effect.fork 先來看今天的主角, Effec...

鐵人賽 Modern Web DAY 17

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

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

鐵人賽 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 等。這些工具讓我們...