TechSummary 2025-08-11
🔗 大規模保障供應鏈安全:從 71 個重要開源專案做起
- Log4j 零日漏洞事件後,凸顯了開源庫安全性對整個軟體供應鏈的巨大影響,促使 GitHub 於 2024 年 11 月啟動「GitHub 安全開源基金」(GitHub Secure Open Source Fund)。
- 該基金為維護者提供資金支援,參與為期三週的專案,內容包含安全教育、導師指導、工具、認證及安全意識社群等,旨在提升安全影響力、降低風險,並大規模保護軟體供應鏈。
- 前兩期專案已集合來自 71 個重要開源專案的 125 位維護者,取得了顯著成果:
- 修復了 1,100 多個由 CodeQL 檢測到的漏洞。
- 發布了 50 多個新的常見漏洞與暴露(CVE),保護下游依賴項。
- 阻止了 92 個新機密洩漏,並檢測和解決了 176 個已洩漏的機密。
- 80% 的專案啟用了三個或更多基於 GitHub 的安全功能,63% 的專案表示對 AI 和 MCP 安全有更好理解。
- 維護者利用 GitHub Copilot 進行漏洞掃描、安全審計、定義和實施模糊測試策略等。
- 專案 涵蓋了 AI/ML 框架(如 Ollama, AutoGPT)、前端/全端框架(如 Next.js, shadcn/ui)、Web 伺服器/網路/閘道(如 Node.js)、DevOps/建置工具(如 Turborepo)、安全框架/身份/合規工具(如 Log4j)、以及開發者工具/CLI 助手(如 Charset-Normalizer, nvm, JUnit)等多個關鍵領域。
- 該計劃的成功關鍵在於:資金支援結合時間限制的專注訓練、互動式編碼經驗以及建立一個以安全為重點的社群,促進了維護者之間的快速交流與協作。
👋 再見了,GitHub ❤️
Source: https://github.blog/news-insights/company-news/goodbye-github/
- GitHub CEO Thomas Dohmke 宣布將於 2025 年底離職,回歸創業者身份,結束在 GitHub 和 Microsoft 十多年的任期。
- Dohmke 回顧了 GitHub 的成就,包括平台擁有超過 10 億個儲存庫和分支,以及 1.5 億開發者,且每年開源專案貢獻不斷增加,特別是 AI 專案在過去一年翻倍。
- 他強調了 GitHub 在 AI 時代的領先地位,特別是 GitHub Copilot 的巨大成功,已擁有超過 2,000 萬用戶,並成為 Microsoft 首個多模型解決方案,與 Anthropic、Google 和 OpenAI 合作。
- GitHub Advanced Security 憑藉 AI 力量,將平均修復時間縮短 60%,團隊修復漏洞速度提高三倍。GitHub Actions 已成熟為領先的 CI 解決方案,每月使用時間達 30 億分鐘,年增長 64%。
- Dohmke 認為 GitHub Copilot 引入了自個人電腦問世以來軟體開發最大的變革,並預期未來將有 10 億開發者透過 AI Agent 實現創意。
🛠️ 工具不等於黏合劑:為何 AI 工作流程變更仍像用膠帶黏合?
Source: https://www.docker.com/blog/why-changing-ai-workflows-still-feels-like-duct-tape/
- 儘管現代 AI 開發工具(如 LangChain, Hugging Face)眾多,但替換堆疊中的組件時仍困難重重,因為大多數工具在設計時是獨立的,缺乏統一的標準介面,導致「抽象洩漏」(abstractions leak)和碎片化問題。
- AI 管道由多個層次組成,包括資料攝取、特徵提取、向量儲存、LLM 推斷、編排、代理邏輯和 API 層,這些層次之間存在隱含的緊密耦合,使得任何組件的變更都可能導致整個系統不穩定。
- 文章呼籲應從「SDK 炒作」轉向更正式的「介面契約」(Interface Contracts),例如使用 OpenAPI 於 REST API、Protocol Buffers 於結構化訊息、JSON Schema 於資料驗證,以實現真正的模組化與互操作性。
- 強調設計防禦性系統,預期錯誤發生,並提供明確的錯誤類型、內建重試與回退機制、以及可觀察性。同時,建議從程序式程式碼轉向宣告式管道(如 LangGraph, Flowise),以提升可維護性、工具中立性和動態組態能力。
- 開發者應對承諾無縫整合但缺乏明確介面契約、版本化 API 和輸入/輸出驗證規則的工具保持懷疑,並在設計時隔離組件、標準化格式,並預期錯誤的發生。
response = model.generate(prompt)
if response.score > 0.8:
store(response)
pipeline:
- step: generate
model: gpt-4
input: ${user_input}
- step: filter
condition: score > 0.8
- step: store
target: vector_database
⚡ AWS Step Functions IDE 擴充功能:顛覆性變革,但下一步是什麼?
Source: https://dzone.com/articles/aws-step-functions-ide-extension-a-game-changer-bu
- AWS 推出 Step Functions IDE 擴充功能,為 VSCode 開發者提供在本地進行 Step Functions 工作流程除錯和測試的能力,解決了過去需要頻繁部署、等待和檢查日誌的痛點,顯著提升開發體驗。
- 此擴充功能被譽為「顛覆性變革」(Game Changer),極大地簡化了 Step Functions 的開發流程。
- 儘管此次更新意義重大,文章也提出質疑:為何 此功能目前僅限於 VSCode?並期待 AWS 能將此類重要的開發工具擴展到 IntelliJ、Eclipse 等其他主流 IDE,以惠及更廣泛的開發者社群。
🐳 在 Kubernetes 上部署可擴展的 Golang 應用程式:實用指南
Source: https://dzone.com/articles/golang-kubernetes-deployment-scalable-guide
- Golang 以其固有的併發性和卓越效能,成為構建高擴展性和高密度應用程式的理想程式語言。
- Kubernetes 則作為容器編排的業界標準,為應用程式的部署、管理和擴展提供了強大平台。
- 將 Golang 與 Kubernetes 結合,能形成一個強大的組合,用於創建堅固且無縫的微服務架構。
- 本文將提供一份實用指南,引導讀者逐步完成在 Kubernetes 上部署可擴展 Golang 應用程式的整個過程,並強調在實際操作中需考量的關鍵因素。
⚙️ 系統組態管理開發:導論
Source: https://dzone.com/articles/system-configuration-management-introduction
- 本篇文章是「系統組態管理開發」多部分系列文章的第一部分。
- 作為此系列的引言,其主要目的是提供一個概述性的介紹,為後續深入探討系統組態管理的各個方面奠定基礎。
🔒 資料網格安全:如何保護去中心化資料架構
Source: https://dzone.com/articles/data-mesh-security-decentralized-data
- 資料網格(Data Mesh)架構的興起正在重新定義現代組織處理資料安全的方式。傳統做法是將資料集中化,以便於集中式存取控制、治理和可稽核性。
- 資料網格模式打破了這種集中式架構,將資料所有權去中心化,賦予領域導向的團隊將資料視為產品來獨立管理的能力。
- 儘管這種新方法提供了更高的速度和靈活性,但它也引入了嚴峻的資料網格安全挑戰,因為安全控制不再是單一中心點的責任。
📱 Jetpack Compose Android UI 開發入門
Source: https://dzone.com/articles/android-ui-development-jetpack-compose
- 文章分享了作者朋友 Aditya 使用 Jetpack Compose 開發 Android UI 的親身經歷,展示了其相較於傳統 XML 版面配置的顯著優勢。
- Aditya 曾花費約六個月時間使用 XML 開發一個約會應用程式,但經常遇到 UI 在不同設備上損壞和動畫實現困難的問題。
- 改用 Jetpack Compose 後,他在兩週內重寫了整個應用程式的 UI,並發現其在穩定性和功能性方面都有了顯著提升。
- 這案例突顯了 Jetpack Compose 在簡化 Android UI 開發、提升開發效率和解決跨設備相容性問題上的潛力。
🏗️ 設計彈性系統:每位工程經理都應瞭解的知識
Source: https://dzone.com/articles/designing-resilient-systems-engineering-managers
- 本文探討了系統彈性(Resiliency)在軟體開發中的重要性,特別是對於工程經理而言,了解如何在壓力下設計出能優雅應對混亂的系統至關重要。
- 文章將以簡明扼要的方式,聚焦於幾個關鍵的架構模式,這些模式是構建彈性系統的基礎。
- 主要討論的模式包括:
- 重試 (Retries):當操作失敗時,自動再次嘗試的機制。
- 斷路器 (Circuit Breakers):防止系統在面對重複失敗的依賴服務時不斷嘗試,從而保護系統免於雪崩式故 障。
- 艙壁 (Bulkheads):將系統的不同部分隔離開來,防止一個部分的故障影響到其他部分,類似於船舶中的防水隔艙。
🧠 DSPy 框架:帶有可執行範例的綜合技術指南
Source: https://dzone.com/articles/dspy-framework-technical-guide
- 現今的 AI 應用開發中,提示工程(prompt engineering)要求精確調整每個提示,但微小變動就可能導致整個系統崩潰,使傳統方法變得脆弱、不可預測且難以維護。
- DSPy(Declarative Self-improving Python)框架採用了一種全新的方法,它將語言模型視為軟體堆疊中可程式化組件,讓開發者宣告希望 AI 完成的任務,而非手動編寫提示。
- 該框架能夠自動優化提示、優雅地處理錯誤並確保可靠的輸出,使開發者能夠專注於更高層次的應用邏輯。
- 文章將提供一份綜合技術指南,其中包含可執行範例,幫助讀者理解和應用 DSPy 框架,從而提高 AI 應用的魯棒性和可維護性。
🧪 如何使用 Docker Compose 設定 Selenium Grid 4
Source: https://dzone.com/articles/set-up-selenium-grid-with-docker-compose
- Selenium WebDriver 是一個廣受歡迎的網頁自動化工具,能自動化瀏覽器操作,使軟體團隊能在多種主流瀏覽器(如 Chrome, Firefox, Edge, Safari)上執行網頁自動化測試。
- 為了在不同平台和瀏覽器版本上擴展測試規模,可以使用 Selenium Grid 4。它與 Selenium WebDriver 無縫協作,允許測試並行運行於多個瀏覽器,從而提升跨瀏覽器和跨平台測試的速度與效率。
- 本文將提供實用指南,詳細說明如何利用 Docker Compose 來設定 Selenium Grid 4,簡化測試環境的部署與管理,進一步加速測試流程。
🐞 使用 Jakarta NoSQL 和 Jakarta Data 測試 Java 企業應用程式的方法
Source: https://dzone.com/articles/testing-java-enterprise-jakarta-nosql-data
- 文章強調了軟體測試在軟體開發中的關鍵作用,儘管其重要性常被低估並排在開發流程的最後,但沒有適當的測試,幾乎不可能確保軟體品質。
- 測試被視為一種安全認證,能夠及早發現問題,並確保軟體行為符合預期。它能帶來程式碼品質提升、重構更易、以及對未來變更的 更好適應性等顯著優勢。
- 儘管測試具有諸多益處,許多軟體工程師和技術領導者仍傾向於低估其重要性。
- 本文旨在突顯測試應成為開發工作流程不可或缺的一部分,尤其是在處理 Java 企業應用程式,並結合 Jakarta EE、Jakarta NoSQL 和 Jakarta Data 時,測試的重要性更加突出。
🦠 軟體免疫系統:生物學能否啟發測試?
Source: https://dzone.com/articles/immune-system-software-testing-biological-analogy
- 文章借鑒生物學中免疫系統的哲學性概念,即免疫系統通過識別「非自我」(foreign)來定義「自我」(self),這種負向定義(以不攻擊什麼來定義自身)提供了深刻的洞察。
- 將這一生物學原理類比於系統工程,特別是軟體測試。軟體測試的本質不僅是查找錯誤(即「病原體」),更是透過識別非預期行為來確保軟體按照設計運作(即「免疫系統」識別出需要忽略的「自我」)。
- 這種生物學類比為理解和設計更有效的軟體測試策略提供了新的視角,強調測試不僅是缺陷檢測,更是對系統正確行為模式的持續驗證。