iT邦幫忙

javascript相關文章
共有 5828 則文章
鐵人賽 JavaScript DAY 26

技術 bun:ffi × Rust —— 用 cdylib 打造原生擴充模組

前言 在前面幾天,我們探索了 Bun 作為 JavaScript Runtime 的各種特性。今天要來玩一個比較「硬派」的主題:如何用 bun:ffi 呼叫...

鐵人賽 JavaScript DAY 14

技術 Day 14|怎麼讀一條 ReadableStream?從 getReader、read 到 for await...of

摘要 一句摘要:Day 13 的 ReadableStream 是給 consumer 讀的出口;取得 reader 的獨占讀取權後,可用 read() 逐筆等...

鐵人賽 Software Development DAY 9

技術 Day 09:案例——AI 為了讓測試綠燈,硬編碼了預期值

前言:測試綠了,是因為邏輯對了,還是因為它「記住了答案」? 「昨天講到 AI 在 Green 階段容易寫出『讓測試通過的最小手段』,聽起來有點抽象——最小手段到...

鐵人賽 JavaScript DAY 25

技術 Bun 在 CI/CD 的應用:GitHub Actions 加速你的 Pipeline(下篇)

前言 這一篇是為了補齊前篇更進一步的部分,我們要用 github action 的自動化幫助我們打包 image並且上到我們指定的存放 image 的地方,像...

鐵人賽 JavaScript DAY 24

技術 Bun 在 CI/CD 的應用:GitHub Actions 加速你的 Pipeline(上篇)

前言 我們一路從開發到 dokcer 今天我們要討論關於 bun 在 CI/CD 上的整合了bun 效能如此優良,過往用 npm 打包整個 CI 流程跑得非常...

鐵人賽 JavaScript DAY 13

技術 Day 13|從 Iterator 走向 Web Streams 的世界: 認識 Readable、Writable、Transform

摘要 一句摘要:Stream 描述資料隨時間逐步流動的模型;Web Streams 的三個名稱則描述資料管線中的角色與端點。一條 stream 不必同時經過...

My Project NoPause Playback:從分頁切換與視窗焦點,談網站影片自動暫停的處理

大家好,我們是獨立開發團隊 TMETE。這篇想分享一個 Chrome 擴充功能的設計:當網站因分頁切換而暫停影片時,如何減少打斷,同時保留使用者自己按暫停的選...

鐵人賽 JavaScript DAY 23

技術 部署實戰:把 Bun 應用容器化,推上 Docker

前言 我們做網頁或做服務來說,最無法避免的就肯定是部署的部分,當然現在這年頭, docker 與 git 差不多,基本上為現代工程師的標配了所以我們今天要把...

鐵人賽 JavaScript DAY 22

技術 前端整合:Bun + React + Vite 的開發工作流以及前端測試

前言 前幾天,我們討論的是幾個後端經典案例,製作帳密登入以及權限控管的部分今天開始我們要開始往 bun 在前端的應用去做使用,那現今最主要的前端打包工具非屬...

鐵人賽 JavaScript DAY 12

技術 Day 12|從 async Iterator 協議到理解 for await...of

摘要 一句摘要:同步 Iterator 的 next() 立即回傳 Iterator Result;Async Iterator 則用 Promise 表示...

鐵人賽 JavaScript DAY 11

技術 Day 11|await 暫停的到底是什麼?async function 如何交還控制權

摘要 一句摘要:await 不會暫停整個 JavaScript;它只暫停目前 async function 中依賴結果的後半段,將控制權交還給呼叫端,並在 Pr...

鐵人賽 JavaScript DAY 21

技術 認證系統實作:JWT + Session 在 Bun 中的最佳實踐(下篇)

前言 在上一篇,我們完成了 refresh token 以及 jwt 的實作接下來我們要把一切都接起來,整合我們在系統裡常見的幾個實作註冊,登入,登出,以及刷...

鐵人賽 JavaScript DAY 10

技術 Day 10|重新看 Promise:它不是非同步魔法,而是結果的狀態容器

摘要 一句摘要:回到 Promise 的核心:executor 同步執行、狀態只能前進,以及 reaction job 如何安排後續通知。 前置知識:理解函式、...

鐵人賽 JavaScript DAY 9

技術 Day 09|Iterator 改變我看待程式執行的方式:從整批處理到 Lazy 資料流

摘要 一句摘要:Iterator 真正改變的不只是處理資料的 API,而是程式的執行方式:先描述資料怎麼流動,等 consumer 需要時才推進一步。...

鐵人賽 Software Development DAY 4

技術 Day 04:案例——AI 生成的測試全綠,卻沒測到任何有意義的行為

前言:測試都通過了,為什麼還要懷疑? 「AI 幫這個方法寫了三個測試,全部綠燈,這樣應該可以放心合併了吧?」 這句話聽起來很合理——測試通過本來就是我們判斷「這...

鐵人賽 JavaScript DAY 20

技術 認證系統實作:JWT + Session 在 Bun 中的最佳實踐(中篇)

前言 在上一篇中,我們建立的簡單的 sqlite 作為接下來要用 session 的基礎設施以及我們也為密碼雜湊以及驗證做簡單的準備,接下來我們要更近一步把查...

鐵人賽 JavaScript DAY 19

技術 認證系統實作:JWT + Session 在 Bun 中的最佳實踐(上篇)

前言 在 Authorization 相關的系統中,近幾年來始終都是講求無狀態的方式處理授權相關的問題最常見的做法就是 jwt,在早期 jwt 出現之前,大部...

鐵人賽 JavaScript DAY 18

技術 資料庫整合:Drizzle ORM + Bun + PostgreSQL 實戰

前言 在前面的章節,我們除了一開始的基礎操作,隨後到一些 bun 特別的使用今天開始我們要用 bun 開始做些專案,以及實戰,去展現出bun 本身的全端能力...

鐵人賽 JavaScript DAY 8

技術 Day 08|哪些 Iterator Helpers 真的會消費 Iterator?

摘要 一句摘要:map()、filter()、take() 只建立 lazy pipeline;直到 toArray()、reduce()、some() 等 c...

鐵人賽 JavaScript DAY 17

技術 Elysia + Eden:端到端型別安全,不再手刻 API 型別

前言 這裏更近一步講 Elysia 的部分,在 Elysia 的世界有一個值得提及的部分就是 Eden Treaty 有一段時間 trpc 在 nodejs...

鐵人賽 JavaScript DAY 7

技術 Day 07|Iterator Helpers:Lazy Pipeline 如何逐筆處理資料?

摘要 一句摘要:Iterator Helpers 會先接成處理管線;直到 consumer 要一筆資料,請求才會一路往上游 pull,值再逐步回到 cons...

鐵人賽 JavaScript DAY 16

技術 Elysia.js 入門:為 Bun 設計的 Type-safe 後端框架

前言 隨著 Bun 的崛起,最具代表性的後端框架為 Elysia 在 bun beta 版的時候就有聽聞 Elysia 這個框架,在那時候開始 Hono 以及...

鐵人賽 JavaScript DAY 6

技術 Day 06|Iterator 也有 map / filter 了:ES2025 Iterator Helpers

摘要 一句摘要:ES2025 為既有的 Iterator 補上可串接的標準資料轉換 API。 前置知識:知道資料由 consumer 逐筆要求;需要時才處...

鐵人賽 JavaScript DAY 15

技術 Bun Macros:編譯時執行程式碼的黑魔法(下篇- 實戰例子篇)

前言 上一回我們講到 Macro 的基本操作,今天我們要講 Macro 比較進階的部分可能有人在上一篇比較多理論和基本觀念的部分,對於實戰派的朋友,可能雲裡霧...

鐵人賽 JavaScript DAY 5

技術 Day 05|資料何時才真的被產生?Iterator 的 pull 與 lazy 模式

摘要 一句摘要:Iterator 用 next() 讓 consumer 逐筆要求資料; 程式碼流程把工作延後到這個要求資料時才做時,才是真正的 lazy。 前...

鐵人賽 JavaScript DAY 4

技術 Day 04|Generator 的雙重身分:它同時是 Iterator 也是 Iterable

摘要 一句摘要:Generator 把手寫 iterator 的狀態管理改成順序程式碼;呼叫後得到的 generator 同時可 .next(),也可交給...

鐵人賽 JavaScript DAY 14

技術 Bun Macros:編譯時執行程式碼的黑魔法(上篇- 基礎篇)

前言 如果你曾經寫過一段 build script,專門用來讀取 package.json 版本號、抓取 Git commit hash,或是把某個 JSON...

鐵人賽 JavaScript DAY 3

技術 Day 03|for...of 怎麼拿資料?next()、break 與提前離開時的收尾

摘要 一句摘要:for...of 從 Day 02 的 iterable 取得 iterator 後,會一次呼叫一次 next(); 如果我們用 break...

鐵人賽 JavaScript DAY 2

技術 Day 02|為什麼 for...of 看得懂不同資料結構?

摘要 一句摘要:for...of 不需要認識 Array、Set 或字串的內部結構;它只找共同的 Symbol.iterator 入口。 前置知識:會使用...

鐵人賽 JavaScript DAY 1

技術 Day 01|為什麼想重新學一次 JavaScript?

為什麼寫這個系列 兩年前剛轉職進入前端,大部分時間都在追進度。 Vue、Pinia、TypeScript、Nx monorepo、React Native、Re...