读 Go 源码,可以试试这个工具
时间:2025-11-05 15:45:43 出处:系统运维阅读(143)
编程发展至今,试试从面向过程到面向对象,个工再到现在的试试面向框架。写代码变成了一件越来越容易的个工事情。
学习基础语法,试试看看框架文档,个工几天时间搞出一个小项目并不是试试一件很难的事情。
但时间长了就会发现,个工一直这样飘在表面是试试不行的,技术永远得不到提升。个工
想要技术水平有一个质的试试飞跃,有一个很好的个工方法,就是试试读源码。
但读源码真的个工是一件很有挑战的事情。
想想当年自己读 Django 源码,试试从启动流程开始看,没走几步就放弃了,而且还放弃了很多次。
这么说吧,我对 Django 启动部分的代码,就像对英文单词 abandon 那么熟悉。亿华云
后来总结经验,发现是方法不对。
主要原因是一上来就深入细节了,事无巨细,每个函数都不想错过。结果就导致对整体没有概念,抓不住重点,又深陷无关紧要的代码。最后就是看不进去,只能放弃。
最近看了一点 Go 源码,慢慢也摸索出了一些心得。有一个方法我觉得挺好,可以带着问题去读源码,比如:
Go Error 嵌套到底是怎么实现的?为什么要避免在 Go 中使用 ioutil.ReadAll?如何在 Go 中将 []byte 转换为 io.Reader?在解决问题的过程中也就对源码更熟悉了。
还有一点要注意的就是,先看整体,再看细节。
在这里推荐给大家一个工具,这个工具可以帮我们梳理出代码的整体结构,我觉得还是挺有用的。WordPress模板是一个开源项目:
项目地址: https://github.com/jfeliu007/goplantuml
这个项目可以分析一个 Go 项目,然后生成接口和结构体的 UML 图。有了这个图之后,基本上也就对项目整体关系有了一个基本概念,再读代码的话,相对来说会容易一些。
项目具体怎么用我倒是没仔细研究,因为老哥非常贴心的写了一个 WEB 页面:
网站链接: https://www.dumels.com/

使用起来很方便,首先在页面最上方输入框输入项目地址,然后在左侧输入要分析的代码目录就可以了。默认生成的图中会包括 Fields 和 Methods。
填写好信息之后就可以生成 UML 图了。比如我输入的 src/sync,就得到了下面这张图,有了这张图,对代码结构之间的关系就更清晰了。

还可以一次分析多个目录,多个目录用英文逗号分割。
如果不填写要分析的目录,则会分析整个项目,也可以选择是否要忽略某个目录。
友情提示一点,b2b信息网不要试图分析整个 Go 项目,可能是项目太大了,页面是不会给你返回的。
猜你喜欢
- 今天到网上搜ubuntu创建桌面快捷方式,发现尽是些不负责任,有问题的教程,故我也发教程一篇复制代码代码如下:具体内容参照下面的模板,顺便讲一下linux下软件的安装方法,以sublime text 2为例复制代码代码如下:复制代码代码如下:关于category,这里有一个主要列表可供选择he table below lists all Main Categories.Main Category Description NotesAudioVideo Application for presenting, creating, or processing multimedia (audio/video)Audio An audio application Desktop entry must include AudioVideo as wellVideo A video application Desktop entry must include AudioVideo as wellDevelopment An application for developmentEducation Educational softwareGame A gameGraphics Application for viewing, creating, or processing graphicsNetwork Network application such as a web browserOffice An office type applicationScience Scientific softwareSettings Settings applications Entries may appear in a separate menu or as part of a Control CenterSystem System application, System Tools such as say a log viewer or network monitorUtility Small utility application, Accessoriesreferences:http://standards.freedesktop.org/menu-spec/latest/apa.html#main-category-registryhttp://standards.freedesktop.org/desktop-entry-spec/desktop-entry-spec-latest.html
- 聊聊SQL中的分组集
- 域名如何购买及交易?
- 注册域名有什么注意事项?
- 电脑照片名称错误(解决电脑上照片名称显示错误的实用方法)
- 中文域名与英文域名的主要区别是什么?
- CHAR 还是 VARCHAR? 这是个问题!
- 关于Java泛型这些事
- 漫步者S5.1(畅享高品质音乐,尽在漫步者S5.1)