博客 / 列表

程序猿DD - 人工智能如何改變 Anthropic 的工作方式

如果有一天,你走進公司,發現寫代碼、查 bug、跑實驗的大部分體力活,都已經由一位看不見的 AI 搭檔在後台悄悄完成了——而你更多是在提問題、定方向、做決策,而不是一行行敲代碼,這會是什麼感覺?是興奮,因為產出翻倍、想法終於可以快速落地;還是隱隱不安,因為自己賴以安身立命的“手藝”似乎正在慢慢被接管? 對於正在建設 AI 的公司來説,這個問題來得比想象中更早、更猛。 Anthropic 在 202

程序員

程序猿DD - 上下文協議(MCP)Java SDK 指南

當我們把各種內部系統、數據源、工具接入大語言模型時,往往會遇到一個尷尬的問題:每個團隊、每套系統都有自己的一套“接入規範”。有的用 HTTP API,有的用消息隊列,有的直接連數據庫,最後一圈串下來,既難以統一治理,又很難在不同應用之間複用。這時,你可能會問:有沒有一種通用的協議,既能讓 AI 模型方便地調用外部工具、訪問數據,又能讓後端服務方用標準方式暴露能力? Model Context Pr

JAVA

程序猿DD - JUnit 5 中的 @ClassTemplate 實戰指南

當你在本地、測試環境和 CI 中跑同一組測試時,是否遇到過這樣的困惑:同一段業務邏輯在不同配置、不同 Locale 下的表現不盡相同,但你又不想為每種場景複製一堆幾乎一樣的測試類?如果把所有分支邏輯都塞進一個測試方法裏,又會讓測試變得臃腫難以維護。有沒有一種方式,可以讓測試代碼保持簡潔,卻能優雅地在多種“環境切面”下重複執行整套測試?這正是 JUnit 5 中 @ClassTemplate 想要解

JAVA

程序猿DD - LLM調用的最佳數據格式:TOON,成本直降50%|附Java使用指南

在大模型逐漸融入業務系統的階段,結構化數據輸入/輸出已成為落地應用的必需:RAG 檢索結果、Agent 工具調用參數、業務查詢結果、批處理列表等都需要讓自然語言與“可機讀”的結構化格式互通。事實標準是 JSON,但在高頻調用、海量數據場景下,JSON 的標點開銷會顯著推高 token 成本。 如下JSON格式的例子: { "users": [ {"id": 1, "name": "Al

llm , JAVA , Json

程序猿DD - Spring Boot 進階:企業級性能與可觀測性指南

擴展 Spring Boot 應用不僅僅是添加更多服務器。它關乎工程效率——在水平擴展之前,從現有硬件中榨取每一分性能。 在本文中,我們將探討如何為高性能、雲原生環境調優、擴展和分析 Spring Boot 應用——包含實踐示例、代碼註釋和架構可視化,你可以立即應用。 為什麼性能優化很重要 大多數 Spring Boot 應用在開發環境中表現良好,但在生產級負載下崩潰,原因包括: 未優化的連接

springboot

程序猿DD - 微服務正在悄然消亡:這是一件美好的事

最近在做的事情正好需要系統地研究微服務與單體架構的取捨與演進。讀到這篇文章,許多觀點直擊痛點、非常啓發,於是我順手把它翻譯出來,分享給大家,也希望能給同樣在複雜性與效率之間權衡的團隊一些參考。 微服務正在悄然消亡:這是一件美好的事 為了把我們的創業產品擴展到數百萬用户,我們搭建了 47 個微服務。 用户從未達到一百萬,但我們達到了每月 23,000 美元的 AWS 賬單、長達 14 小時的故障,以

微服務

程序猿DD - Netflix確保數億用户觀影體驗的“事件”管理是如何構建與實踐的?

在流媒體服務隨時可能因系統故障而中斷的時代,Netflix 如何確保數億用户的觀影體驗始終穩定?本文將揭曉其技術團隊的關鍵實踐 —— 從中央 SRE 團隊獨攬事件管理,到讓每個工程師都能主動發起並處理事件的轉型之路。你將看到他們如何通過工具選型、流程標準化和文化重塑,把事件從 “可怕的故障” 轉化為 “可學習的機會”,甚至讓工程師在凌晨三點也能輕鬆啓動事件響應。無論你是關注系統可靠性的技術從業者,

架構

程序猿DD - Spring Boot 集成免費的 EdgeTTS 實現文本轉語音

在需要文本轉語音(TTS)的應用場景中(如語音助手、語音通知、內容播報等),Java生態缺少類似Python生態的Edge TTS 客户端庫。不過沒關係,現在可以通過 UnifiedTTS 提供的 API 來調用免費的 EdgeTTS 能力。同時,UnifiedTTS 還支持 Azure TTS、MiniMax TTS、Elevenlabs TTS 等多種模型,通過對請求接口的抽象封裝,用户可以方

spring , springboot , JAVA

程序猿DD - 變量名越怪,JVM 越快?

在軟件工程的共識裏,變量命名越清晰越好——意圖明確、語義完整、見名知意,這能降低溝通成本、減少誤解、提升可維護性。幾乎所有風格指南都把“有意義的命名”視為第一原則。 但今天讀到的一篇文章《Java Performs Better When You Misspell Variable Names》,把這條鐵律裏的“性能部分”掀了桌:在 Java 的某些棧中,刻意縮短、甚至“錯拼”的變量名,可能真的讓

JAVA

程序猿DD - @Autowired 的Bug讓我們白忙三天

凌晨兩點,支付服務的告警像雪崩一樣砸來,你在控制枱和棧跟蹤間瘋狂穿梭,卻始終想不明白:Spring 的依賴注入,怎麼會在生產裏突然“失手”?我最近讀到一篇事故覆盤,講的是兩個看似無害的改動如何在生產環境聯手把系統擊穿,分析深入、啓發很大。於是我把它完整翻譯出來,分享給大家,希望能幫你少走彎路。 以下內容翻譯自:https://medium.com/javarevisited/the-autow

spring , springboot , JAVA

程序猿DD - Jackson 序列化的隱性成本

我們常以為接口的瓶頸在數據庫或業務邏輯,但在高併發、海量請求下,真正吞噬 CPU 的,可能是“把對象變成 JSON”的那一步。當監控把序列化時間單獨拆出來,你會驚訝它能讓賬單失控。這篇《The Hidden Cost of Jackson Serialization》對我啓發很大:默認好用的 Jackson,在某些場景可能成為熱路徑的成本中心。下面順手分享給大家參考,以下內容翻譯整理自 《The

spring , springboot , JAVA

程序猿DD - Spring Boot快速集成MiniMax、CosyVoice實現文本轉語音

在一些需要高質量文本轉語音(TTS)的場景中(比如:有聲書配音、播客等)。之前介紹的EdgeTTS方案可能效果沒有那麼好。此時就比較推薦使用 MiniMax、CosyVoice這些提供的音色,這些音色的效果會更加擬人、逼真,接近真人發音。這裏依然通過 UnifiedTTS 的統一接口來對接,這樣我們可以在不更換客户端代碼的前提下,快速在 MiniMax、CosyVoice等引擎之間做無縫切換。本文

spring , springboot , JAVA