跳至主要内容

TechSummary 2025-10-09

· 閱讀時間約 9 分鐘
Gemini
AI Assistant

Git Merge 2025 回顧:Git 二十年里程碑 🎉​

Source: https://github.blog/open-source/git/20-years-of-git-2-days-at-github-hq-git-merge-2025-highlights/

  • Git Merge 2025 在 GitHub 總部舉行,紀念 Git 誕生二十週年,匯集全球貢獻者共同展望其未來。
  • 第一天:提供多元化的技術演講,涵蓋 Git 內部機制、創新工作流程及未來發展,適合從初學者到維護者的各級參與者。
  • Scott Chacon 現場演示了 GitButler CLI,Google 的 Martin von Zweigbergk 深入解析了 Jujutsu 如何與 Git 整合。
  • Jacob Stopak 探索了透過視覺化和遊戲化改進 Git 學習,Steffen Hiller 和 Zoran Petrovic 展示了倉庫隨時間增長的視覺化新方法,brian m. carlson 則探討了 SHA-256 互操作性的下一步。
  • 第二天:聚焦社群協作,舉辦了年度 Git 貢獻者峰會和非會議,核心維護者和貢獻者共同規劃 Git 未來的路線圖,強調遠端協作的友好性。
  • 活動特別感謝所有演講者、貢獻者、志願者及參與者,以及贊助商 GitButler 和 Google。

GitHub 2025 年 9 月可用性報告 📉​

Source: https://github.blog/news-insights/company-news/github-availability-report-september-2025/

  • 2025 年 9 月,GitHub 經歷了三起導致服務性能下降的事件。
  • 9月15日 (UTC 17:55,持續25分鐘):Copilot 大部分功能可用性降低,原因是一個功能旗標部分部署到全局限速器,導致意外限制了100%的請求並返回403錯誤。問題通過回溯功能旗標解決,並將加強流量異常監測與限速測試。
  • 9月24日 (UTC 14:02,持續50分鐘):電子郵件遞送延遲,由於異常高的流量導致外發郵件伺服器資源爭用,影響大多數類型郵件通知。GitHub 已更新配置以優化高流量下的容量分配,並改進檢測能力。
  • 9月29日 (UTC 16:26,持續67分鐘):Copilot API 遭遇部分降級,導致平均0.2%的 GitHub MCP 伺服器請求間歇性返回404錯誤(高峰期達2%)。此問題源於內部依賴升級暴露出服務配置錯誤。已通過回溯升級解決,並將改進文檔和部署流程。

LoRA 解說:使用 Docker 實現更快、更高效的微調 🧠​

Source: https://www.docker.com/blog/lora-explained/

  • LoRA (Low-Rank Adaptation) 是一種高效的語言模型微調技術,允許模型學習特定技能(如 PII 遮蔽)而無需大量計算資源,並可透過 Docker 生態系統簡化訓練、打包和分享流程。
  • LoRA 工作原理:凍結基礎模型的原始權重,在模型特定部分插入小型、可訓練的「適配器層」(adapter layers),在微調過程中僅更新這些適配器參數,大幅減少計算和記憶體需求。
  • 實驗範例:文章以微調 Gemma 3 270M 模型來遮蔽文本中的 PII 為例,示範了完整的微調流程。
  • 微調步驟:
    1. 準備數據集:訓練數據必須使用與模型推論時相同的「聊天模板」(Chat Templates) 進行格式化,確保模型的魯棒性。
      # 數據集格式化範例
      max_seq_length = 2048
      model, tokenizer = FastModel.from_pretrained(model_name="unsloth/gemma-3-270m-it", ...)
      ds = Dataset.from_list(data)
      def to_text(ex):
      # ... 格式化消息 ...
      return {"text": tokenizer.apply_chat_template(msgs, tokenize=False, add_generation_prompt=False)}
      dataset = ds.map(to_text, remove_columns=ds.column_names)
    2. 準備 LoRA 適配器:透過 LoraConfig 定義適配器參數(如 r, lora_alpha, target_modules, lora_dropout),然後將其應用於基礎模型。
      from peft import LoraConfig, get_peft_model
      lora_config = LoraConfig(
      r=16,
      lora_alpha=32,
      target_modules=["q_proj", "v_proj"],
      lora_dropout=0.05
      )
      model = get_peft_model(base_model, lora_config)
    3. 訓練模型:使用 SFTConfig 配置訓練參數(如 per_device_train_batch_size, num_train_epochs, learning_rate),然後啟動訓練。
      # trainer 配置範例
      args = SFTConfig(
      dataset_text_field = "text",
      per_device_train_batch_size = 8,
      # ... 其他參數 ...
      output_dir="outputs",
      )
      trainer_stats = trainer.train()
    4. 匯出結果模型:訓練完成後,將 LoRA 適配器合併回基礎模型權重,生成一個包含新技能的獨立檢查點。
      model.save_pretrained_merged("result", tokenizer, save_method = "merged_16bit")
  • Docker Model Runner:微調後的模型可透過 Docker Model Runner 輕鬆打包、推送到 Docker Hub 並在任何地方運行,實現模型部署的便捷性和可移植性。

5 分鐘「Vibe Coding」建構應用程式的完整初學者指南 ⚡​

Source: https://devblogs.microsoft.com/blog/complete-beginners-guide-to-vibe-coding-an-app-in-5-minutes

  • 本文介紹了「Vibe Coding」方法論,利用 GitHub Copilot 結合 Claude Sonnet 4.5 作為推理模型,以自然語言快速開發應用程式。作者在5分鐘內成功建構了一個播客數據分析平台,並在15分鐘內完成部署。
  • Vibe Coding 核心理念:開發者以結果為導向提供提示,讓 AI(Copilot + Sonnet 4.5)自動處理技術選型、架構設計和代碼實作,開發者則專注於定義需求和識別問題。
  • AI 自動選擇的技術棧:React + TypeScript (實現類型安全和現代化 UI)、Tailwind CSS (快速樣式設計)、Recharts (數據可視化)、Lucide React (簡潔圖標)。
  • 開發流程亮點:
    • 初始提示:僅提供 CSV 數據和高層次需求(美觀、可搜尋、Vite 應用、可部署到 GitHub Pages),未指定具體技術。
    • AI 架構:Copilot 在2分鐘內自動生成完整的項目結構和組件,包括 Dashboard.tsx、EpisodeList.tsx、TopicAnalysis.tsx 等,並規劃了狀態管理、數據流和樣式系統。
      // 項目結構示例
      ├── src/
      │ ├── App.tsx // 主應用程式及路由
      │ ├── components/
      │ │ ├── Dashboard.tsx // 概覽指標
      │ │ ├── EpisodeList.tsx // 搜尋與篩選
      │ │ ├── TopicAnalysis.tsx // AI 提取主題
      │ │ ├── PerformanceCharts.tsx // 分析深入探討
      │ │ └── EpisodeDetail.tsx // 單集詳情
      │ ├── utils.ts // 數據解析與輔助函數
      │ └── types.ts // TypeScript 定義
      ├── package.json
      ├── vite.config.ts
      └── tailwind.config.js
    • 問題解決:當發現 CSV 解析錯誤(因標題中的逗號),作者僅描述了錯誤現象,Copilot 立刻重寫了 parseCSVLine 函數以正確處理。
      const parseCSVLine = (line: string): string[] => {
      const result: string[] = [];
      let current = '';
      let inQuotes = false;
      // ... 處理帶引號逗號的實現邏輯 ...
      return result;
      };
    • 部署自動化:參考作者其他倉庫的部署工作流程,Copilot 自動生成了 GitHub Actions 配置,實現 GitHub Pages 的自動部署。
    • TypeScript 修正:AI 也能精準識別並修正未使用的 import 錯誤,確保代碼質量。
  • AI 驅動的應用程式功能:包含智能分析儀表板、進階搜尋與過濾、AI 主題提取分析、留存率分析,以及透過 Recharts 實現的精美響應式圖表。
  • Vibe Coding 方法論總結:專注於成果導向的提示、讓 AI 進行技術決策、迭代解決問題而非功能、參考自身工作以保持一致性、並信任 TypeScript 進行錯誤預防。
  • GitHub Copilot + Sonnet 4.5 的魔力:AI 不僅建議代碼,更作為架構師和結對程式設計師,處理深層架構設計、技術棧選擇、數據流規劃和邊緣案例預期。

建立 Kotlin Multiplatform 專案,贏取 KotlinConf 2026 之旅 🏆​

Source: https://blog.jetbrains.com/kotlin/2025/10/kotlin-multiplatform-contest-2026/

  • JetBrains 宣布啟動 2026 年度針對學生和應屆畢業生的「Kotlin Multiplatform Contest」,鼓勵參賽者使用 Kotlin Multiplatform (KMP) 建立創新專案。
  • Kotlin Multiplatform (KMP) 允許開發者使用單一程式碼庫為 Android、iOS、桌面、Web 和伺服器等多平台創建應用程式。
  • 獎勵:排名前三的專案創作者將贏得前往 2026 年 5 月 21-22 日在德國慕尼黑舉辦的 KotlinConf 2026 的機會,包含旅行、住宿、獨家紀念品,並在 KotlinConf、Kotlin 及 Kotlin Foundation 的社交媒體和公眾渠道上獲得曝光。所有有效參賽者也將獲得 Kotlin 紀念品。
  • 重要日期:
    • 比賽開放:2025年9月15日
    • 提交截止日期:2026年1月12日
    • 獲獎者公布:2026年1月22日
  • 參賽方式:
    • 加入 Kotlinlang Slack 工作區的 #kotlin-multiplatform-contest 頻道獲取支援和資訊。
    • 檢閱並滿足所有規則和資格標準。
    • 使用 Kotlin Multiplatform 建構專案,今年特別鼓勵探索為 AI 應用程式添加智能功能。
    • 將專案上傳至 GitHub,包含詳細的 README 文件(需包含安裝說明和支援平台的功能描述)。
    • 建議包含一段 3-5 分鐘的短片,演示專案在不同平台上的主要功能。

Qodana 公共 API 現已推出! 🔑​

Source: https://blog.jetbrains.com/qodana/2025/10/qodana-public-api/

  • Qodana 公共 API 現已全面上線,附帶完整的文檔、範例和 OpenAPI 規範,讓所有 Qodana Cloud 用戶能夠將 Qodana 直接整合到自己的系統中。
  • 主要更新:過去僅限部分帳戶可用的 API 端點,現已擴展、完善並開放給所有用戶,實現關鍵工作流程的自動化並透過程式方式訪問核心功能。
  • 新功能亮點:
    • 透過 API 直接建立和管理團隊及專案。例如,可透過 POST 請求創建新團隊和專案,並獲取專案令牌。
    • 範例指令碼:
      qodana_token=$(curl -X POST https://{qodana_cloud_url}/api/v1/public/organizations/projects \
      -H "Authorization: Bearer $permanent_organization_token" \
      -d '{
      "projectName": "My project name",
      "teamName": "My team name"
      }')
    • 這使得 Qodana 能更無縫地整合到現有的 DevOps 管道、儀表板或內部工具中。
  • 文檔與規範:提供完整的公共 API 參考資料、端點詳情和範例,並發布了 OpenAPI 規範(openapi.yaml),方便在 Postman 或 Swagger UI 等工具中探索和測試。
  • 未來展望:JetBrains 將持續擴展公共 API,提供更多端點和功能,以實現對 Qodana 功能更深層次的訪問。

TeamCity 2025.07.3 版本發布 🛠️​

Source: https://blog.jetbrains.com/teamcity/2025/10/teamcity-2025-07-3-bug-fix/

  • TeamCity On-Premises 2025.07.3 已發布,這是下一主要版本前的一個重要錯誤修復更新。
  • 主要修復內容:
    • 解決了極長時間運行測試期間「Tests」選項卡功能失常的問題。
    • 修正了「Reuse jobs」設定顯示不一致的問題。
    • 解決了新拉取請求管道運行自動觸發失敗的問題。
    • 處理了新註冊雲端實例類型分配不正確的問題。
  • 更新效益:除了錯誤修復,所有 TeamCity 錯誤修復版本也包含性能和安全改進,JetBrains 強烈建議用戶盡可能更新其 On-Premises 伺服器,以確保獲得:
    • 性能提升。
    • 更好的整合兼容性。
    • 更快速、更穩定的構建。
    • 增強的工作流程安全性。
  • 兼容性:TeamCity 2025.07.3 與所有 2025.07.x 版本共享相同的數據格式,允許在該系列內進行升級或降級,無需備份和恢復。
  • 升級方式:可透過現有 TeamCity 版本的自動更新功能、直接從 JetBrains 網站下載最新版本,或拉取更新後的 TeamCity Docker 映像進行升級。

Visual Studio Code 2025 年 9 月更新 (版本 1.105) 💻​

Source: https://code.visualstudio.com/updates/v1_105

  • 本文發布了 Visual Studio Code 2025 年 9 月版本 (1.105) 的最新功能和更新。
  • 鼓勵用戶閱讀完整文章以了解此版本的所有詳細變更和改進。