iT邦幫忙

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

技術 理解 Signal 運作原理

前言 有了前面幾篇的解釋,相信大家已經對 Signal 和 Fine-grained Reactivity 的概念有初步的認識,今天我們就回到開篇內容的主軸,接...

鐵人賽 Modern Web DAY 11

技術 實作 effect (I): 讓圖真正「動」起來

引言 上一篇我們已經完成一個具備訂閱功能的 Signal 核心,這一篇我們來實作 Effect,讓每個依賴項都能自動去追蹤,順利讓原本靜態的圖能具有響應性的動起...

鐵人賽 Modern Web DAY 12

技術 實作 effect (II): Effect 內部選型

快速回顧 還記得這張圖嗎?上一篇我們透過實作 Registry 這層抽象,讓我們能夠有不同資料結構處理 Effect 排程的選擇權,那你一定會想... 為什麼需...

鐵人賽 Software Development DAY 1

技術 0. Effect 魔法:替你的應用程式注入堅不可摧的力量

Effect 是近一兩年興起的一套 TypeScript 的函式庫,可以幫助我們打造更加強韌的應用程式,目前我已經使用 Effect 這個套件一年多了,這段時間...

鐵人賽 Software Development DAY 3

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

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

鐵人賽 Software Development DAY 2

技術 1. Functional Programming 簡介

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

鐵人賽 Modern Web DAY 1

技術 [學習 Effect Day1] 產品級軟體

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

鐵人賽 Modern Web DAY 2

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

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

鐵人賽 Modern Web

技術 [學習 Effect Day31] 完賽心得

其實我現在唯一個感想是: 很想趕快用這30天學到到東西做點什麼~😅但總覺得不寫個完賽感言怪怪的。畢竟第30天我完全沒提到比賽的感想。結束的實在是有點唐突。所以我...

鐵人賽 Modern Web DAY 4

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

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

鐵人賽 Modern Web DAY 28

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

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

鐵人賽 Software Development DAY 5

技術 4. Effect 的基本使用

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

鐵人賽 Software Development DAY 4

技術 3. 第一個 Effect

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

鐵人賽 Modern Web DAY 6

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

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

鐵人賽 Modern Web DAY 3

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

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

鐵人賽 Modern Web DAY 30

技術 [學習 Effect Day30] Effect 併發執行(二)

延續 Day29,我們已經了解 Fiber 是如何在單執行緒上提供「可管理的併發」運算。今天我們要講解用 Effect 的高階「組合子」來實現併發效果。除此之外...

鐵人賽 Modern Web DAY 25

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

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

技術 30. Effect 生態系: `@effect/ai` Effect 也有 ai

這篇要介紹的是另一個 Effect 官方的套件 @effect/ai ,這個套件可以幫助你使用 AI ,同時你的程式不需要知道不同家 AI 的 sdk 之間的不...

技術 31. 結語

對於看到這篇的讀者,請讓我在此感謝你們,這篇算是完賽心得跟聊一下我自己對於 Effect 的想法,不過在開始前,我想先推薦幾個東西 EffectPatern...

鐵人賽 Software Development DAY 24

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

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

鐵人賽 Modern Web DAY 7

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

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

鐵人賽 Modern Web DAY 8

技術 [學習 Effect Day8] 執行 Effect

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

鐵人賽 Modern Web DAY 29

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

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

鐵人賽 Modern Web DAY 5

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

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

鐵人賽 Modern Web DAY 15

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

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

鐵人賽 Modern Web DAY 20

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

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

鐵人賽 Modern Web DAY 21

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

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

鐵人賽 Modern Web DAY 9

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

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

鐵人賽 Software Development DAY 28

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

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

鐵人賽 Modern Web DAY 14

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

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