TechSummary 2025-08-07
· 閱讀時間約 13 分鐘
🚀 初級開發者並未過時:如何在 AI 時代蓬勃發展
- 人工智慧並不會讓初級開發者過時;相反地,新進學習者因具備 AI 工具的應用能力,反而處於有利位置。
- GitHub 執行長 Thomas Dohmke 強調,熟悉 AI 程式碼生成工具的新人才,能帶來更好的想法。
- 提供初級開發者在 AI 時代脫穎而出的五種方法:
- 利用 AI 加速學習,而非僅加速編碼: 將 GitHub Copilot 設定為個人導師,教導概念和最佳實踐,而非直接提供完整解決方案。可以透過 VS Code 命令面板運行
Chat: New Instructions File
並貼上以下指令:此外,練習在不使用自動完成功能的情況下解決問題(可透過在專案根目錄---
applyTo: "**"
---
I am learning to code. You are to act as a tutor; assume I am a beginning coder. Teach me concepts and best practices, but don’t provide full solutions. Help me understand the approach, and always add: "Always check the correctness of AI-generated responses.".vscode/settings.json
中設定{"github.copilot.enable": {"*": false}}
來禁用)。 - 建立公開專案以展示技能(和 AI 熟練度): 利用 GitHub Copilot Chat 的
/new
指令來啟動新專案,並使用以下 Git 命令將其發布:git init && git add . && git commit -m "Initial commit" && git push
- 透過核心 GitHub 工作流程提升開發工具包: 掌握 GitHub Actions 自動化、參與開源專案以及透過 Pull Request 進行協作。Copilot Chat 可協助排除故障。
- 透過程式碼審查磨練專業知識: 積極提問、尋找模式、做筆記並保持謙遜。
- 運用 AI 更智慧、更快速地除錯: 使用 Copilot Chat 指令如
/fix
、/tests
、/explain
和/doc
來即時解釋錯誤、生成修復方案、創建測試案例和理解根本原因。
- 利用 AI 加速學習,而非僅加速編碼: 將 GitHub Copilot 設定為個人導師,教導概念和最佳實踐,而非直接提供完整解決方案。可以透過 VS Code 命令面板運行
💡 MCP 恐怖故事:供應鏈攻擊
Source: https://www.docker.com/blog/mcp-horror-stories-the-supply-chain-attack/
- Model Context Protocol (MCP) 旨在成為 AI 應用程式的通用標準,讓 AI 代理程式能安全地連接各種工具。然而,系列文章指出其存在嚴重安全漏洞。
- 本文深入探討 CVE-2025-6514,一個存在於
mcp-remote
(一個廣泛使用的第三方 OAuth 代理)的關鍵 OAuth 漏洞,導致憑證洩露和遠端程式碼執行,影響超過 437,000 個 AI 開發環境。 - 攻擊原理:
mcp-remote
在未經驗證的情況下信任伺服器提供的 OAuth 端點。攻擊者製作惡意授權 URL,當mcp-remote
嘗試在瀏覽器中開啟它時(例如在 Windows 上,會透過 PowerShell 執行),惡意 URL 會直接被系統的 shell 執行,導致任意程式碼執行。惡意 PowerShell 命令範例:// Vulnerable code pattern in mcp-remote (from auth.ts)
const authUrl = oauthConfig.authorization_endpoint;
// No validation of URL format or protocol
await open(authUrl.toString()); // Uses 'open' npm packageStart "a:$(cmd.exe /c whoami > c:\\temp\\pwned.txt)"
- Docker MCP Toolkit 如何消除此攻擊向量: Docker 採取「安全優先」架構,透過容器化和全新的執行模型來防範此類攻擊,包括:
- 容器化隔離: MCP 伺服器在安全、隔 離的容器中運行,而不是直接在主機系統上執行。
- 原生 OAuth 整合: Docker Desktop 直接處理 OAuth,無需易受攻擊的第三方代理。
# Secure OAuth through Docker Desktop
docker mcp oauth authorize github - 安全秘密管理: 使用 Docker Desktop 的安全秘密儲存,而非環境變數。
- 網路安全控制: 透過 L7 代理限制出站連線。
- 加密驗證: 確保 Docker 構建的映像檔未被篡改。
- 與傳統 MCP 相比,Docker MCP Toolkit 在執行模型、OAuth 處理、秘密管理、網路存取、資源控制和監控方面提供了顯著的安全性提升。
⚙️ Playwright 端到端測試完整故事:工具、AI 與真實世界工作流程
- Playwright 是一個功能強大的端到端測試框架,提供一套完整的生態系統,包括測試運行器、VS Code 擴展、Codegen、UI 模式和 Trace Viewer。
- 入門與測試撰寫:
- 安裝:
npm init playwright@latest
。 - 基本測試範例:
執行測試:
import { test, expect } from '@playwright/test';
test('homepage has title and links', async ({ page }) => {
// Navigate to the website
await page.goto('https://example.com');
// Verify the title
await expect(page).toHaveTitle(/Example/);
// Click a link and verify navigation
await page.getByRole('link', { name: 'More information' }).click();
await expect(page).toHaveURL(/.*more-info/);
});npx playwright test
。 - Codegen: 自動生成測試程式碼 ,透過錄製用戶互動來快速建立測試:
npx playwright codegen https://your-app.com
。 - UI 模式: 提供互動式視覺介面,用於運行、瀏覽和偵錯測試:
npx playwright test --ui
。
- 安裝:
- 報告與可觀察性:
- HTML 報告: 提供互動式測試運行概覽,包括詳細錯誤訊息、執行時間和堆疊追蹤。
查看報告:
export default defineConfig({
reporter: [
['html'],
['list'] // Also outputs results to the console
],
// ...other config
});npx playwright show-report
。 - Trace Viewer: 記錄測試運行的所有操作、網路請求和 DOM 快照,以便在測試失敗後進行時間旅行式偵錯。
查看追蹤:
use: {
trace: 'on-first-retry', // Record traces only when retrying a test
// Alternative options:
// 'on' - Record traces for all tests
// 'off' - Don't record traces
// 'retain-on-failure' - Record traces and only keep for failures
}npx playwright show-trace trace.zip
。 - 具備「Copy as Prompt」功能,可生成提示以用於 AI 輔助偵錯。
- HTML 報告: 提供互動式測試運行概覽,包括詳細錯誤訊息、執行時間和堆疊追蹤。
- AI 原生測試與 Playwright MCP: Playwright Model Context Protocol (MCP) 允許 AI 代理程式與即時瀏覽器會話互動,實現自動化測試執行、測試生成 和任務自動化。
- GitHub Copilot Coding Agent: 內建 Playwright MCP,能夠在程式碼變更後啟動瀏覽器,與 UI 互動並視覺化驗證預期效果,實現自驗證 AI 工作流程。
🔗 如何將 Qodana 整合到 TeamCity
Source: https://blog.jetbrains.com/qodana/2025/08/how-to-integrate-qodana-into-teamcity/
- 將 TeamCity 作為 CI 伺服器與 Qodana 的靜態程式碼分析結合,可以顯著提高程式碼品質和安全性。
- Qodana 作為 TeamCity 的內建建構運行器提供支援,簡化了整合流程。對於自託管的 TeamCity 代理,需要確保 Docker 已安裝並可存取。
- 配置流程:
- 在 TeamCity 中,為你的建構新增一個建構步驟。
- 選擇 Qodana 建構運行器。
- 定義要使用的 linter、版本和檢查配置檔案(推薦使用版本控制的
qodana.yaml
檔案)。可選地,添加 Qodana Cloud 專案 token。
- TeamCity 建構腳本範例:
buildType {
steps {
qodana {
name = "Qodana analysis"
linter = jvm {
version = Qodana.JVMVersion.LATEST
}
inspectionProfile = embedded {
name = "qodana.starter"
}
cloudToken = "%qodana.cloud.token%"
additionalQodanaArguments = "--baseline qodana.sarif.json"
}
}
}
- 品質門(Quality Gates)和基準比較: Qodana 支援設定品質門,當問題數量超過預設閾值時,建構將失敗(例如:
severityThresholds: { any: 10, critical: 5 }
)。基準功能則可比較當前分析結果與先前狀態,僅報告新引入的問題。 - 結果查看: 分析結果可在 TeamCity 內的 Qodana 標籤頁或 Qodana Cloud 網頁儀表板中查看。
- 支援 Pull Request 和分支分析: Qodana 可整合到 Pull Request 工作流程中,透過比較當前分支與目標分支的變更,僅高亮顯示變更檔案或行中的問題,為程式碼審查提供額外的品質保證。
🧠 AI Assistant、Junie 和 Kineto 現已支援 OpenAI GPT-5
Source: https://blog.jetbrains.com/blog/2025/08/07/gpt-5-support-in-ai-assistant-junie-kineto/
- JetBrains 旗下的 AI 產品:AI Assistant、Junie 和 Kineto,現已全面支援 OpenAI 最新的 GPT-5 模型。
- GPT-5 在 JetBrains 內部測試中被視為程式設計領域的「遊戲規則改變者」,能以更高的準確性和可靠性處理更大、更複雜的開發任務。
- Junie(程式碼代理): 整合 GPT-5 後,在程式碼品質、任務複雜度處理和整體性能方面有 1.5 到 2 倍的提升。它能精確識別大型程式碼庫中的注入點,並生成生產就緒、無錯誤的程式碼。
- JetBrains AI Assistant: GPT-5 現已成為 AI Assistant 聊天功能的預設模型,提供最佳的生成品質並優化了成本。它能從單一提示生成完全響應式、有樣式且互動式的原型(例如:創建一 個 2030 年 JetBrains IDE 的 HTML5 頁面)。
- Kineto(無程式碼 AI 平台): GPT-5 也是 Kineto 的預設模型,顯著提升了其根據使用者提示生成網站和單一用途應用程式的能力,無需編碼。
- 用戶可以在 JetBrains IDE(2025.2 版本及更高版本)中更新 AI Assistant 和 Junie 插件來體驗 GPT-5。
📅 2025 年 7 月 (版本 1.103)
Source: https://code.visualstudio.com/updates/v1_103
- Visual Studio Code 於 2025 年 7 月發布了 1.103 版本。
- 此版本包含了多項新功能與改進,詳細資訊請參閱完整文章。
➕ 探索 C++23:多維度下標運算子
Source: https://dzone.com/articles/c23-multidimensional-subscript-operator
- C++23 引入了期待已久的多維度下標運算子(multidimensional subscript operator),這是一項旨在簡化和增強與多維陣列及容器互動方式的新功能。
- 本文將深入探討該運算子的語法、用法和優勢,並分析其與現有 C++ 結構的整合,以及對編碼實踐的影響。