⭐⭐⭐ Spring Boot 项目实战 ⭐⭐⭐ Spring Cloud 项目实战
《Dubbo 实现原理与源码解析 —— 精品合集》 《Netty 实现原理与源码解析 —— 精品合集》
《Spring 实现原理与源码解析 —— 精品合集》 《MyBatis 实现原理与源码解析 —— 精品合集》
《Spring MVC 实现原理与源码解析 —— 精品合集》 《数据库实体设计合集》
《Spring Boot 实现原理与源码解析 —— 精品合集》 《Java 面试题 + Java 学习指南》

摘要: 原创出处 古时的风筝 「古时的风筝」欢迎转载,保留摘要,谢谢!


🙂🙂🙂关注微信公众号:【芋道源码】有福利:

  1. RocketMQ / MyCAT / Sharding-JDBC 所有源码分析文章列表
  2. RocketMQ / MyCAT / Sharding-JDBC 中文注释源码 GitHub 地址
  3. 您对于源码的疑问每条留言都将得到认真回复。甚至不知道如何读源码也可以请教噢。
  4. 新的源码解析文章实时收到通知。每周更新一篇左右。
  5. 认真的源码交流微信群。

其实我很早就介绍过 DeepWiki,它是 Devin 的一个产品,它可以为github 上的代码仓库建立索引,并生成包含架构图、源文件链接和代码库摘要的 wiki。

说人话就是,DeepWiki是一个程序员大佬,可以手把手带你理解任何一个开源项目,你还可以随时问他任何关于这个仓库、甚至任何相关的程序问题,他都会一一给你解答。

也说过 Google 的同类产品 Code Wiki,本来结合 Gemini 大模型感觉会更厉害一个,但是奈何 Google 这么久一直不更新,现在体验已经完全跟不上 DeepWiki 了。

读过开源项目源码的朋友肯定懂,想要理解一个开源项目要怎么做呢?先读一遍文档,然后就直接上手了,除非它的文档写的非常好,要不然在使用过程中还是会踩坑的。

踩坑了怎么办呢,到网上去搜索,要不然就去读代码?当然了,这是 AI 之前的方式,现在都靠 AI 了。

如果不想只停留在使用这一层,还是离不开要读源码的,从头到尾读源码那是相当痛苦的,懂得都懂。读一会儿要么睡着了,要么钻到一个技术细节里耽误半天时间。

所以当我第一次看到 DeepWiki 的时候,我就知道这家伙有用,又不用花你自己的 token,而且还是专门为了应对读源码的场景的。

Codemap 模式

为什么又提起它呢,因为我前两天看 pi-mono 这个开源项目(也就是 OpenClaw 背后用到的 Agent)又用到了它。

这次我发现了它增加了一个 Codemap 模式,不知道是什么时候更新上去的,说起来,我也确实有一段时间没看开源项目了。

为啥说这个模式好呢?Codemap 是这样的,左边是讲解,右边是对应的代码文件,比如说我问它:

pi-mono agent 的工作机制是怎样的?

看到下图了吧,左边是讲解 1、2、3、4步是干什么的,右边对应的就是具体的代码文件。而且,每一个步骤里的详细逻辑,也都能直接点击定位到具体是哪一行代码开始的。

咱就说,这不是手把手的教是什么?

还有一些细节也很讲究,比如碰到 if 分支这种关键逻辑,也会在左侧给你明显的展示出来,点击 if 块,直接在右侧显示对应的代码块。

其实,Codemap 不是 DeepWiki 自己的模式,它是 Windsurf 里的能力,在 Windsurf 里也可以用,只不过在网页上用已经很方便了。

DeepWiki 默认模式更偏向 symbol-level documentation,就是更擅长把模块、文件、符号、功能边界这些东西整理出来,更像一个解读报告,而 Codemap 更像一个老师指着屏幕上的代码给你讲。

在聊天框可以切换这个模式。

AI 时代的学习方式

现在想学习一个知识可是比以前方便多了,就拿学开源框架这事儿来说,以前无非就是看官方文档、自己啃源码,碰到有疑问的地方,要么自己死磕代码(比如动手调试),要么就是上搜索引擎上搜索,然后自己抽丝剥茧。

我曾经好多次因为读源码钻到细节里绕不出来,而感到头疼沮丧。

现在可真不一样了,不管多复杂的项目,有了 AI 的加持,什么架构图、流程图、运行原理说明,都是手到擒来的事儿。

关键是还能随时「哪里不会点哪里」,碰到一个算法看不到,直接问AI,都给你说的明明白白的。

如果你也想第一个开源仓库,我这儿有一套路径比较顺手的流程,供你参考:

  1. 打开它的 DeepWiki,直接把仓库地址放进去;
  2. 接着,先看这个仓库的 Overview 和 Architecture,了解项目结构;
  3. 再问三个问题:入口在哪、核心模块是什么、主流程怎么走,这时候就可以使用 Codemap 模式了;
  4. 最后回到源码、测试和实际运行链路确认

因为它符合一个很自然的节奏:

先了解整体结构,再看运行路径,最后加以验证。避免一开始就钻进文件细节里,很容易看着看着就迷路了。

文章目录
  1. 1. Codemap 模式
  2. 2. AI 时代的学习方式