Mongodb 聚合管道模板

Mongodb 的 aggregate 在資料查詢、分析等操作中是一個強大的聚合操作,但我發現在嘗試編寫它時,即使是非常簡單的語法,也總是需要參考官方文件或 ChatGPT 或 Perplexity 等 AI 工具,因此我總結了一些常用的模式作為模板,以便在工作中快速參考。

Nodejs 效能提示

Nodejs 效能提示。

React 基礎知識與陷阱

React 基礎知識與陷阱。大部分來自官方文件

如何在WSL中啟用音訊和CJK

在Windows 11的wsl2上新安裝 ubuntu 22.04後,可能會遇到一些問題,例如開啟播放音訊的網頁時沒有聲音輸出,或瀏覽器無法正確顯示包含 CJK 字元的網頁,以下列舉了一些快速解決方案。

Service Worker 和 Web Worker 之間的區別

Web Worker和Service Worker都是在後台執行的 JavaScript 工作者類型,與主瀏覽器執行緒分開。但它們的用途不同,且具有鮮明的特點。

Terraform 快速參考

常用 Terraform 指令和操作方法的快速參考。

帶回調的非同步平行行為

async 函式庫具有一個名為 parallel 的便捷方法,該方法接受要運行的非同步函數集合以及一個可選函數的回調函數,在所有函數的回調完成後執行回調函數。

如何從 UEFI 中刪除雙啟動 ghost 項目

嘗試 Windows 11 和 Ubuntu 雙啟動後,我決定刪除 Ubuntu。理由是可能是未知硬體驅動程式問題,導致無論 CPU 幾乎為零還是記憶體使用率很低的情況下,我的筆記型電腦的風扇都會一直發出噪音。按照互聯網上提供的指南中的步驟,我刪除了 Ubuntu 分割區並從磁碟管理工具將 Windows 分割區擴展回原始磁碟區。然而,還有一個遺留問題,就是 UEFI(BIOS)有一個 Ubuntu 的幽靈啟動項,似乎沒有直接的方法可以刪除它。在網路上搜尋了一段時間後,我終於發現下面的方法可以可靠地工作。

跨編輯器和平台的最小統一程式快速鍵

跨編輯器和平台的最小統一程式快速鍵。

使用 Redis 作為分散式鎖用於簡單的用例

最近我遇到了一個系統問題,我們一些以 Ruby​​ Rake 任務形式編寫的批次作業最終出現重複調用,這導致資料庫中出現重複記錄或在 Slack 中出現重複警報。這絕對是基礎設施問題,但在從基礎設施修復它之前,我需要從編碼角度找到解決它的方法。嘗試將所有內容重寫為盡可能冪等的並不太現實,增強應用程式級驗證或資料庫唯一性約束也不是一個選擇,因為並非所有作業都可以是冪等的,也並非所有作業都會寫入資料庫,此外問題是由競爭條件引起的,不是來自兩個線程,而是來自兩個進程。經過一些研究和實驗,我決定使用「Redis」作為一個簡單的分散鎖解決方案,它已經在我們的應用程式中可用,不需要任何額外的設置,而且它是一個單一實例,因此不需要考慮複製同步問題。 「Redis」 是單執行緒架構,無論有多少並發客戶端嘗試寫入它,它都能保證結果是順序的和原子的。我發現可以利用這種性質來解決所面臨的問題。