模組六|測試、效能與上線(Day 26–30) 昨天講完效能預算訂了沒量。今天講部署,而且要先撤回一個標題。 這一天原本要叫「GitHub Pages 的...
前言 作為一名 AWS 的忠實用戶,使用 s3 存放檔案是日常常見的事情以往如果要用 nodejs 就要用 aws-sdk 去實現相關行為,bun 基本上有內...
模組六|測試、效能與上線(Day 26–30) 昨天講完測試的分工,也講了 CI 只跑四個命令。今天講一張比測試更早存在的東西:效能預算表。 這個專案在寫任...
前言 每個程式語言都有他與檔案處理和溝通的方式,當然 nodejs 也不例外,當然在 bun 這方面也是非常厲害,甚至比想像中多不少東西,今天我們會一一介紹一...
上一篇,我們用找零錢的問題認識了 Greedy。假設要找 67 元,可以使用 50、10、5、1 的面額。當我們每一步都選擇: 不超過剩餘金額的最大面額 會...
前幾篇,我們一路從 dependency、propagation 談到 Graph 本身也可能隨著系統執行而改變。到這裡,我們已經不只是在描述資料結構,也開始面...
上一篇,我們談到 dependency 不只可以描述: 誰必須先完成? 也可以幫助我們回答: 當某個東西改變時,哪些地方可能需要跟著重新計算? 例如:...
上一篇,我們把 npm 專案看成了一張 Dependency Graph。當一個 package 依賴另一個 package 時,我們可以把關係畫成 A → B...
前幾篇,我們已經從「事情的先後順序」一路談到有向圖、Cycle、DAG 與拓樸排序。例如: A → B → C 代表: B 依賴 A,C 又依賴 B 這種...
上一篇我們看到,Dependency Graph 最麻煩的情況之一,就是出現循環。例如: A → B → C → A 如果箭頭代表: 前面的工作必須先完成,...
上一篇我們開始把「事情必須按照先後順序完成」畫成有向圖。例如: 買食材 → 備料 → 烹煮 → 上桌 箭頭代表 dependency: A → B 可以理解...
前幾天我們一直用 Graph 描述「東西之間怎麼連在一起」。例如捷運路網: 我們在意的是: 從 A 能不能走到 F?哪條路比較短?哪條路花的時間比較少? 但...
上一篇我們討論 BFS 時,用了一個很適合它的問題: 從 A 到 F,最少要經過幾個站? 只要每經過一個站,都把它看成相同的一步,BFS 就能一層一層往外搜...
前兩篇,我們分別看過了兩種很常見的 Graph 搜尋方式: Graph + Stack → DFS Graph + Queue → BFS DFS 選擇先沿著...
上一篇談到 DFS 時,我們做了一個很明確的選擇: 先沿著一條路一路走到底 這是一種搜尋策略。但如果今天問題換方向了呢? 假設我們面前不是迷宮,而是一張捷運...
昨天我們終於把 Graph 從紙上的線條,變成程式真的能保存的資料。例如一張簡化的路網: 我們可以用 Adjacency List 表示: const grap...
上一篇我們用捷運路網理解 Graph。例如有幾個站點: 如果把它看成 Graph: 每個車站是一個 node 站與站之間的連接是一條 edge 畫出來很直...
上一篇我們從資料夾開始認識 Tree。像這樣: Documents ├─ Work │ ├─ report.pdf │ └─ meeting.md │ └─...
前幾篇我們一直在問一個很類似的問題: 資料要怎麼拿? Queue 說:最早進來的先拿 Stack 說:最後進來的先拿 Priority Queue 說:最...
前面幾篇,我們其實一直在討論同一類操作需求: 下一個要拿哪一筆資料? Queue 的答案是最早進來的那一筆。 Priority Queue 的答案是現在最...
模組六|測試、效能與上線(Day 26–30) 昨天講完存檔:九條通往「當作全新存檔」的路徑,每一條都有測試。今天把鏡頭拉遠,看整個專案的測試長什麼樣。 先...
上一篇談 Priority Queue 時,我們看到了一件很重要的事: 資料不一定按照進來的時間被處理,「誰先被拿出來」本身就是問題的一部分。 Queue...
上一篇我們從超商結帳、客服電話與列印工作認識了 Queue。簡單複習一下 Queue,例如四個人依序進入隊伍: A → B → C → D 那麼處理順序自然就...
你走進超商,前面已經有三個人在排隊。你站到隊伍最後面,等待前面的人依序結帳。我甚至不用特別講,你也能腦補這個機制: 第一個來的人先結帳 第二個來的人接著結帳...
今天的故事 真的寫到 Day 30 了。 如果現在要我說這 30 天最大的感受,我第一個想到的,其實跟剛開始做 PawPal 的時候很像。 就是: 我根本沒有...
前言 以前老 nodejs 玩家肯定知道 express, koa Fastify 等相關框架可以快速啟動 web services在 nodejs 的世界裡...
模組五|關卡、UI 與資料(Day 21–25) 昨天的素材是我準備好放進 repo 的。今天這份資料不是——它是玩家自己產生的,存在他的瀏覽器裡,我改不到...
今天的故事 寫到 Day 29,我開始回頭想一個問題: 「這 30 天,我到底變成了什麼樣的人?」 如果只看技術,我不敢說自己突然會了很多。 有些東西我現在還是...
前言 In-memory bundling(虛擬檔案),這算是比較冷門的部分,不過因為他可以跑在記憶體上面的特性,因此主要普遍多用來進行測試,這樣反而低估它本...
模組五|關卡、UI 與資料(Day 21–25) 昨天講場景切換要清乾淨自己配置的東西。今天往前推一步:這些東西是怎麼進到記憶體裡的。 先攤開數字。這個專案...