<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>程式碼理解 on KnightLi的博客</title>
        <link>https://knightli.com/zh-tw/tags/%E7%A8%8B%E5%BC%8F%E7%A2%BC%E7%90%86%E8%A7%A3/</link>
        <description>Recent content in 程式碼理解 on KnightLi的博客</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>zh-tw</language>
        <lastBuildDate>Sat, 06 Jun 2026 22:26:00 +0800</lastBuildDate><atom:link href="https://knightli.com/zh-tw/tags/%E7%A8%8B%E5%BC%8F%E7%A2%BC%E7%90%86%E8%A7%A3/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>Understand-Anything 怎麼用？把程式碼倉庫變成可問答知識圖譜</title>
        <link>https://knightli.com/zh-tw/2026/06/06/understand-anything-code-knowledge-graph/</link>
        <pubDate>Sat, 06 Jun 2026 22:26:00 +0800</pubDate>
        
        <guid>https://knightli.com/zh-tw/2026/06/06/understand-anything-code-knowledge-graph/</guid>
        <description>&lt;p&gt;&lt;code&gt;Lum1104/Understand-Anything&lt;/code&gt; 是一個把程式碼倉庫變成交互式知識圖譜的工具。專案 README 裡的口號很直接：Graphs that teach &amp;gt; graphs that impress。意思是圖譜不是為了好看，而是要幫助你理解程式碼。&lt;/p&gt;
&lt;p&gt;它適配 Claude Code、Codex、Cursor、Copilot、Gemini CLI 等工具，目標是讓開發者和 AI Agent 都能更快理解一個倉庫。&lt;/p&gt;
&lt;h2 id=&#34;為什麼需要程式碼知識圖譜&#34;&gt;為什麼需要程式碼知識圖譜
&lt;/h2&gt;&lt;p&gt;AI 編程工具現在很強，但理解大型倉庫仍然容易卡住：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;檔案太多，入口不清楚；&lt;/li&gt;
&lt;li&gt;函數、類別、模組之間關係複雜；&lt;/li&gt;
&lt;li&gt;新人不知道從哪裡開始讀；&lt;/li&gt;
&lt;li&gt;Agent 找到了片段，但不知道它在整體架構裡的位置；&lt;/li&gt;
&lt;li&gt;文件過時，程式碼才是真相；&lt;/li&gt;
&lt;li&gt;多語言、多目錄專案更難建立全局地圖。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;程式碼知識圖譜的價值就在這裡：它把「檔案和符號列表」變成「可探索的關係網路」。你不只是搜尋某個函數名，而是能看到它連接了誰、被誰呼叫、屬於哪個模組、在業務路徑裡處於什麼位置。&lt;/p&gt;
&lt;h2 id=&#34;它能做什麼&#34;&gt;它能做什麼
&lt;/h2&gt;&lt;p&gt;從專案介紹看，Understand-Anything 主要強調幾件事：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;把任意程式碼轉成交互式知識圖譜；&lt;/li&gt;
&lt;li&gt;支援探索、搜尋和提問；&lt;/li&gt;
&lt;li&gt;讓圖譜服務理解，而不是只做視覺展示；&lt;/li&gt;
&lt;li&gt;能和 Claude Code、Codex、Cursor、Copilot、Gemini CLI 等工具配合；&lt;/li&gt;
&lt;li&gt;適合拿來做倉庫 onboarding、程式碼審查、重構前梳理和 Agent 上下文增強。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;這類工具尤其適合陌生倉庫。你第一次接手專案時，與其讓 Agent 盲目 &lt;code&gt;rg&lt;/code&gt;，不如先生成一張結構圖，再圍繞關鍵節點問問題。&lt;/p&gt;
&lt;h2 id=&#34;適合哪些使用場景&#34;&gt;適合哪些使用場景
&lt;/h2&gt;&lt;p&gt;我會優先把它用在這些場景：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;新人接手老專案；&lt;/li&gt;
&lt;li&gt;讀開源倉庫原始碼；&lt;/li&gt;
&lt;li&gt;重構前梳理模組依賴；&lt;/li&gt;
&lt;li&gt;找核心入口和關鍵呼叫鏈；&lt;/li&gt;
&lt;li&gt;給 AI Agent 提供倉庫結構上下文；&lt;/li&gt;
&lt;li&gt;程式碼審查前快速理解改動影響範圍；&lt;/li&gt;
&lt;li&gt;生成技術文件或架構說明。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;它對小專案可能有點重。幾十個檔案以內，直接讀程式碼就夠了。倉庫一旦到幾百上千個檔案，圖譜才更容易體現價值。&lt;/p&gt;
&lt;h2 id=&#34;和-rag-有什麼區別&#34;&gt;和 RAG 有什麼區別
&lt;/h2&gt;&lt;p&gt;RAG 更擅長「檢索相關片段」，知識圖譜更擅長「理解關係」。&lt;/p&gt;
&lt;p&gt;比如你問：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;「支付流程在哪裡？」&lt;/li&gt;
&lt;li&gt;「這個函數誰呼叫？」&lt;/li&gt;
&lt;li&gt;「這個模組改了會影響哪些地方？」&lt;/li&gt;
&lt;li&gt;「為什麼這裡有兩個類似的服務？」&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;普通 RAG 可能會給你幾個程式碼片段，但圖譜能幫助你看路徑、依賴和鄰近節點。最好的方式通常不是二選一，而是結合：RAG 找文本證據，圖譜提供結構導航。&lt;/p&gt;
&lt;h2 id=&#34;使用時要注意什麼&#34;&gt;使用時要注意什麼
&lt;/h2&gt;&lt;p&gt;程式碼圖譜不是銀彈：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;語言解析能力會影響圖譜品質；&lt;/li&gt;
&lt;li&gt;動態呼叫、反射、配置驅動邏輯可能難以完全捕捉；&lt;/li&gt;
&lt;li&gt;圖譜太大時也會變成資訊噪音；&lt;/li&gt;
&lt;li&gt;生成結果需要和真實程式碼交叉驗證；&lt;/li&gt;
&lt;li&gt;Agent 不能只看圖譜就直接改程式碼。&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;如果你用於生產專案，最好把它當作閱讀輔助，而不是權威架構文件。真正的權威仍然是程式碼、測試和執行行為。&lt;/p&gt;
&lt;h2 id=&#34;小結&#34;&gt;小結
&lt;/h2&gt;&lt;p&gt;Understand-Anything 的定位很清楚：把程式碼倉庫變成可探索、可搜尋、可問答的知識圖譜，讓人和 Agent 更快建立全局理解。&lt;/p&gt;
&lt;p&gt;如果你經常讀陌生倉庫、維護大專案、做重構，或者想讓 Codex / Claude Code 在動手前先理解系統結構，這類工具很值得試。它不替你讀程式碼，但能幫你更快知道該從哪裡讀。&lt;/p&gt;
&lt;h2 id=&#34;參考來源&#34;&gt;參考來源
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Lum1104/Understand-Anything&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Lum1104/Understand-Anything - GitHub&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
</description>
        </item>
        
    </channel>
</rss>
