现代软件开发早已离不开开源软件。从庞大的Linux操作系统、Chromium浏览器,到小巧实用的日志工具,开源组件已成为软件开发的基石。对于 Linux 、Android 操作系统之类的巨型软件,代码量大得惊人。对于参与者而言,门槛比较高,面对数百万行的代码,常常不知从何入手。这时就有一些大神,解读这些代码,写成系列的源码阅读文章,甚至汇集成书。很多 Linux 内核开发者应该读过《Linux 内核源码情景分析》这本书,我也买过Android源码分析和 WebKit 源码分析相关的书籍。
今年开始,我着手Windows软件向国产系统迁移的工作,接触到 wine 这个开源项目。Wine旨在Linux上模拟Windows运行环境,其代码复杂度不容小觑。面对如此庞大的代码库,即便是我这样经验丰富的开发者也会感到棘手。幸运的是,AI代码阅读工具的出现,为我们提供了全新的解决方案。这类工具能够快速生成代码文档、可视化架构,并支持智能问答,极大降低了理解复杂项目的门槛。
我一直使用的 AI 工具就是 DeepWiki,地址为:
https://www.deepwiki.com
它是一个出色的AI代码阅读平台,扫描并分析了GitHub上的大量开源代码,进行了深度的理解与解析。比如打开 Wine 项目,就会出现这样的解析:

DeepWiki能够生成清晰的结构化文档,包括模块划分、关键函数说明等。更令人印象深刻的是,它自动生成的架构图质量极高,使复杂的依赖关系一目了然。

如果仅仅是静态的分析代码,还不算什么,更妙的是,你还可以针对本源码库,向 AI 提问。这种 AI 提问,比起 ChatGPT 更靠谱,因为它会针对源码进行回答,而不会像 ChatGPT 那样泛泛而答,更不会出现幻觉。
比如我问:
请问 winewayland.drv 的初始化过程是怎样的?
deepwiki 的回答如下:

回答结构清晰,还给出了源码出处,点击链接可以跳转到对应的源码。如果对某个细节不清楚,还可以继续追问。目前试用下来,没有次数限制,没有时间限制,也不用翻墙。查资料,没有找到 DeepWiki 是使用哪家的 AI 大模型。
如今,谷歌也杀入这一领域,推出了 CodeWiki,网址为:
https://codewiki.google

使用上和 DeepWiki 差不多,但接入的是自家的大模型 Gemini。可能服务推出时间不长,收录的开源仓库还不多,比如我搜索 wine,就没有找到。
我选择了 skia 开源库进行分析:

界面和功能和 DeepWiki 比较类似。但借助谷歌在大模型和软件开发上的巨大优势,CodeWiki 可能会后来居上。
在 CodeWiki 的博客上,总结了 CodeWiki的特点:
Code Wiki 基于 Google 的 Gemini 大模型,能深入分析代码逻辑、函数作用、类之间的关系和设计模式,生成精准的文档和解释,即使代码中没有注释也能完成。
它彻底改变了“先写代码,后补文档”的传统模式。当代码仓库发生变更(如合并 Pull Request)后,系统会自动重新扫描并更新相关文档,确保文档与代码始终同步,实现了零维护成本。
你可以像与一位熟悉代码库的专家对话一样,直接用自然语言(如中文)提问,例如“用户认证功能是怎么实现的?”或“这个模块和哪些服务有耦合?”。Gemini 助手会基于对整个代码库的理解给出带有代码引用的回答,极大提升了探索效率。
工具能自动生成模块依赖图、类继承图、数据流图等可视化图表,将复杂的系统架构直观呈现。点击图表中的元素还能直接跳转到对应代码,帮助开发者快速把握项目整体结构,尤其适合接手大型新项目时使用。
Code Wiki 建立了文档与代码之间的双向链接。在阅读文档时,可以一键跳转到函数或类的定义代码;在查看代码时,也能快速找到对应的详细说明。这种无缝的跳转体验让理解代码的过程变得非常流畅
目前,AI代码阅读工具已成为我日常工作不可缺少的助手。DeepWiki在项目覆盖度和成熟度上暂时领先,而Google CodeWiki凭借Gemini的强大能力和发展潜力值得密切关注,什么时候 CodeWiki 收录了 Wine 项目,我可能会切换到 CodeWiki 上。
你在工作中会用到哪些 AI 工具,欢迎交流!