Skip to content

Daemon 模式

一個程式在背景持續運行(background process),不需要使用者直接操作,通常用來提供服務或監聽事件。


1️⃣ Daemon 的基本概念

Daemon(守護程序)是指:

  • 背景執行
  • 長時間運行
  • 等待事件或請求
  • 通常在 系統啟動時啟動

它不會像一般程式一樣啟動 → 執行 → 結束,而是會一直運作。

常見用途:

  • 提供 API
  • 處理排程
  • 監聽訊息
  • 系統服務

pwsh

就是 windows terminal 的 powershell

WebHook

Github Repo Webhook 當作範例:

當你的 repository 發生某個事件(例如 push、PR、issue), GitHub 會自動發送一個 HTTP POST 請求到你指定的網址(你的 server)。


🔔 Webhook 的核心作用

👉 讓 GitHub 主動通知你的系統

而不是你一直去問 GitHub:「有沒有新 commit?」


🧠 運作流程

text
1️⃣ 有人 push commit
2️⃣ GitHub 觸發 push event
3️⃣ GitHub 發送 JSON 到你的 Webhook URL
4️⃣ 你的後端收到資料後做處理

🔄 Webhook vs 傳統輪詢(Polling)

方式解釋缺點
Polling每 10 秒問 GitHub 有沒有更新浪費資源
Webhook有事件才通知你更有效率

👉 Webhook 是「事件驅動架構(Event-Driven Architecture)」的核心概念。


🛠 Webhook 實際用途

1️⃣ CI/CD

當有人 push → 自動建置部署

2️⃣ 通知系統

當 PR 開啟 → 發到 Discord

3️⃣ 自動翻譯 commit

當 push → 呼叫翻譯 API → 發到 Telegram

4️⃣ 寫入 ELK 監控

你之前有玩 Elasticsearch,Webhook 很適合串 log pipeline。

🎯 一句話理解

Webhook = GitHub 主動把「發生了什麼事」推給你的系統

ContentScript (內容腳本)

在瀏覽器擴充功能(Browser Extension)的架構中,Content Script(內容腳本) 是扮演「橋樑」角色的關鍵組件。

簡單來說,它是擴充功能中唯一可以直接訪問並操作網頁內容的部分。


核心定義與功能

Content Script 是由擴充功能注入到特定網頁中的 JavaScript 檔案。它的主要任務是讀取修改增強使用者正在瀏覽的網頁。

  • 操作 DOM:可以像網頁原本的腳本一樣,修改 HTML 元素、更改 CSS 樣式、隱藏廣告或是添加新的按鈕。
  • 監聽事件:捕捉使用者的行為,例如點擊、捲動或輸入。
  • 讀取數據:抓取網頁上的文字、圖片連結或特定的資料。

重要特性:隔離世界 (Isolated World)

這是 Content Script 最獨特的一點。為了安全與穩定性,瀏覽器使用了**「隔離世界」**機制:

  1. 共享 DOM:Content Script 和網頁本身的 JavaScript 可以看到同一個 HTML 結構
  2. 不共享變數:Content Script 無法存取網頁腳本定義的 JavaScript 變數或函數,反之亦然。這樣可以防止擴充功能意外搞壞網頁的功能。
  3. 權限限制:Content Script 只能使用部分的擴充功能 API(例如 chrome.runtime.sendMessage),若要執行存取書籤、管理分頁等高權限操作,必須與 Background Script (Service Worker) 通訊。

WBS

WBS 指的是 Work Breakdown Structure(工作分解結構)。它是一種專案管理工具,用來把大型、複雜的專案分解成可管理的小單位或工作包(work package),方便計畫、分配資源、估算成本和追蹤進度。

簡單說,就是把「大工程拆小塊」的概念。