前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >读 Go 源码,可以试试这个工具

读 Go 源码,可以试试这个工具

原创
作者头像
AlwaysBeta
发布于 2022-02-08 14:23:02
发布于 2022-02-08 14:23:02
7110
举报
文章被收录于专栏:AlwaysBetaAlwaysBeta

原文链接: 读 Go 源码,可以试试这个工具

编程发展至今,从面向过程到面向对象,再到现在的面向框架。写代码变成了一件越来越容易的事情。

学习基础语法,看看框架文档,几天时间搞出一个小项目并不是一件很难的事情。

但时间长了就会发现,一直这样飘在表面是不行的,技术永远得不到提升。

想要技术水平有一个质的飞跃,有一个很好的方法,就是读源码。

但读源码真的是一件很有挑战的事情。

想想当年自己读 Django 源码,从启动流程开始看,没走几步就放弃了,而且还放弃了很多次。

这么说吧,我对 Django 启动部分的代码,就像对英文单词 abandon 那么熟悉。

后来总结经验,发现是方法不对。

主要原因是一上来就深入细节了,事无巨细,每个函数都不想错过。结果就导致对整体没有概念,抓不住重点,又深陷无关紧要的代码。最后就是看不进去,只能放弃。

最近看了一点 Go 源码,慢慢也摸索出了一些心得。有一个方法我觉得挺好,可以带着问题去读源码

在解决问题的过程中也就对源码更熟悉了。

还有一点要注意的就是,先看整体,再看细节。

在这里推荐给大家一个工具,这个工具可以帮我们梳理出代码的整体结构,我觉得还是挺有用的。是一个开源项目:

项目地址: https://github.com/jfeliu007/goplantuml

这个项目可以分析一个 Go 项目,然后生成接口和结构体的 UML 图。有了这个图之后,基本上也就对项目整体关系有了一个基本概念,再读代码的话,相对来说会容易一些。

项目具体怎么用我倒是没仔细研究,因为老哥非常贴心的写了一个 WEB 页面:

网站链接: https://www.dumels.com/

使用起来很方便,首先在页面最上方输入框输入项目地址,然后在左侧输入要分析的代码目录就可以了。默认生成的图中会包括 Fields 和 Methods。

填写好信息之后就可以生成 UML 图了。比如我输入的 src/sync,就得到了下面这张图,有了这张图,对代码结构之间的关系就更清晰了。

还可以一次分析多个目录,多个目录用英文逗号分割。

如果不填写要分析的目录,则会分析整个项目,也可以选择是否要忽略某个目录。

友情提示一点,不要试图分析整个 Go 项目,可能是项目太大了,页面是不会给你返回的。

好了,本文就到这里了。你有什么好用的工具吗?欢迎给我留言交流。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
2018-08-25 如何熟悉一个新项目如何熟悉一个新项目
很多新人进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构。或者说不要求快速,给你足够的时间,也很难在庞大的业务中整理出思绪。当然,如果你碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好。但很可惜,我没有碰到这样的人,在加入新公司后,带我的人几乎没有花时间给我讲项目,也没有给我安排一些可以熟悉项目的需求。就这样的一个多月时间里,我慢慢开始靠自己的力量熟悉大概十个项目,并在过程中总结了一些方法,借此机会记录一下,并分享给大家。
Albert陈凯
2018/09/20
6310
2018-08-25 如何熟悉一个新项目如何熟悉一个新项目
我是怎么读代码的
作为一名程序员,总有一些时候,会对自己所做的重复性的工作感到厌倦,也会羡慕明星项目做得热火朝天 Star 数蹭蹭上涨。而读代码,则是缓解焦虑的良方。 每当读懂软件的精彩设计,赞叹优美整洁的代码,甚至发现藏在注释中的彩蛋时,都好像在不同的时空与作者产生了交叉,畅快地聊了会儿天。 读代码很有趣,但要读通读懂也很费功夫。本文是我在日常读代码中积累的一点心得,分享出来,希望能与大家产生共鸣。 1. 寻找一位好老师 优秀的项目就像一位好老师,我们可以从它身上全方位地学到各种领域知识。 不过在开始读代码之前, 最大的问
ThoughtWorks
2022/09/27
1.4K0
我是怎么读代码的
如何阅读JS源码?读源码有什么好处
这几天在公司接手了一个项目,是之前其它组的,现在要继续完成它。那我要做的第一件事,就是熟悉代码。对,就是看别人写的JS代码。文档嘛,自然是没有的。 之前也有试过看代码,但项目中N多JS文件,每个JS文件上千行,一行一行的看下来,用不了几分钟就完全晕掉了。完全不知道某一行里的判断,是在判断什么,那个变量是什么意思,顺着调用顺序看下来,会发现看到后面的时候,前面看的内容已经忘了。 于是,这一次,我决定换一个方式读JS源码。 这个项目中有N个JS文件,我把入口的JS文件拿出来先看,然后我把它里面所有的函数名,都用
web前端教室
2018/02/06
3.8K0
如何阅读JS源码?读源码有什么好处
Go 学习路线(2022)
Go 语言的发展越来越好了,很多大厂使用 Go 作为主要开发语言,也有很多人开始学习 Go,准备转 Go 开发。
AlwaysBeta
2022/02/07
1.6K0
Go 学习路线(2022)
研发新人如何快速熟悉新项目和业务
进入一家新公司后,最头疼的就是如何快速了解公司的业务和项目架构。 如果碰到一个特别热心的老员工,事无巨细地给你讲,随时在你身边答疑解惑,那可能还好。但很可惜,我没有碰到这样的人,在加入新公司后,带我的人几乎没有花时间给我讲项目,也没有给我安排一些可以熟悉项目的需求。就这样的一个多月时间里,我慢慢开始靠自己的力量熟悉大概十个项目,并在过程中总结了一些方法,借此机会记录一下,并分享给大家。
JavaEdge
2021/02/23
1.1K0
研发新人如何快速熟悉新项目和业务
【AIGC】AI-Agents最新成果-斯坦福AI小镇源码解读
今年年初斯坦福和谷歌的研究人员创建了一个类似于《模拟人生》的微型 RPG 虚拟世界,其中 25 个角色由 GPT 和自定义代码控制,并在arxiv上提交了论文版本,引起了对AIGC+游戏的广泛讨论;
siri
2023/09/17
3.7K5
新人如何快速熟悉一个新项目
本文来自:https://www.cnblogs.com/flashsun/p/9450066.html
chenchenchen
2019/09/02
2.8K0
新人如何快速熟悉一个新项目
读尽天下源码,心中自然无码
“技术深度” 与 “技术广度”是对开发者来说最为重要的两个维度,今天分享的项目致力于从源码层面,剖析和挖掘互联网行业主流技术的底层实现原理,为广大开发者 “提升技术深度” 提供便利。
程序员阿杜
2021/08/08
5530
Java技术转(兼顾)产品经理——读《快速转行做产品经理》有感
年前部门一次性购买了一批书,我知道这次我应该会被指派阅读一些偏向于管理类的书籍,但是没想到美女领导直接给了我这本书《快速转行做产品经理》,其实一开始我有点反抗,因为我并不想放弃我的技术核心行业,我更喜欢去研究Java各类框架的源码,写一些开源的项目。(毕竟我平时也经常在Github上行走,不过近期主要是文章类的上传)
Java猫说
2019/04/11
5980
Java技术转(兼顾)产品经理——读《快速转行做产品经理》有感
.NET领域驱动设计—初尝(原则、工具、过程、框架)
原则对于任何一项技术实现来说都是至关重要的,在设计某一个系统功能的时候我们讲究的是设计原则:
王清培
2019/03/01
8490
.NET领域驱动设计—初尝(原则、工具、过程、框架)
几款常用UML建模工具解析[通俗易懂]
本节向大家介绍几款常用UML建模工具,UML是个好东西,但是过分的依赖于UML也不是一件好事,因为有时候它会把简单的东西复杂化。请看下面详细介绍。
全栈程序员站长
2022/07/22
1.9K0
干掉 PowerDesigner!这款国人开源的数据库设计工具真香!
最近在造轮子,从 0 到 1 的那种,就差前台的界面了,大家可以耐心耐心耐心期待一下。其中需要设计一些数据库表,可以通过 Navicat 这种图形化管理工具直接开搞,也可以通过一些数据库设计工具来搞,比如说 PowerDesigner,更专业一点。
沉默王二
2022/03/07
3.7K0
干掉 PowerDesigner!这款国人开源的数据库设计工具真香!
【万字长文】如何阅读源码 —— 以 Vetur 为例
我很早就意识到,能熟练、高效阅读开源前端框架源码是成为一个高级前端工程师必须具备的基本技能之一,所以在我职业生涯的最早期,就已经开始做了很多次相关的尝试,但结果通常都以失败告终,原因五花八门:
童欧巴
2021/08/20
6880
【万字长文】如何阅读源码 —— 以 Vetur 为例
刚入职新公司,代码看懵逼了咋办?
大家好,我是鱼皮,昨天晚上在我的 知识星球 内开了一场直播,专门给学编程的同学答疑,一场下来竟然回答了 40 多个问题!
程序员鱼皮
2022/04/08
1.7K0
刚入职新公司,代码看懵逼了咋办?
小程序开发快速入门教程(附源码)小程序初始化目录:我是分割线===开发ing示例步骤:
五分钟上手-微信小程序 1:用没有注册过微信公众平台的邮箱注册一个微信公众号, 申请帐号 ,点击 https://mp.weixin.qq.com/wxopen/waregister?action=s
王小婷
2018/05/31
1K0
猿设计3——电商设计之挖掘实体的办法
看过上一章节相信你从感官上对电商的前台和后台系统有了一个感性的认知,也学些了UML用例图的基本画法。开始试图使用用例图去分析归纳系统的功能点。也许你会觉得这些东西有一点简单可笑,设计的事情你觉得不屑于去做,但这些东西确实能够帮助你清晰的认识系统,去挖掘系统的功能,最后落地到系统设计。
山旮旯的胖子
2020/07/28
4440
猿设计3——电商设计之挖掘实体的办法
分享学习 PHP 源码的方法
​每天抽一点时间来看看 PHP 源码方面的书,说实话,无法在调试器下观察 PHP 运行状态的上下文实在是一件痛苦的事情。不过还好不是一无所获,虽然内容比较多,但是掌握方法挨着看下去还是可以看一些代码的。而且本身 PHP 源码讲解就有书,所以学习起来还是较为方便的。想要调试源码,我觉得我最好应该找一个前一天充分休息并且是阳光明媚的早上来学习关于调试 PHP 源码的知识,那样可能效率会高一些,但是这样的机会好像又不多。
码农UP2U
2020/08/26
1.6K0
惊!Python居然可以读故事了(附源码)
浏览器或者阅读器App里其实也有朗读功能,但是比较僵硬,总是将引人入胜的情节念成流水账,分分钟让人弃坑,所以我考虑自己使用爬虫定时下载更新的章节,而后将文字合成存储到音频文件,这样不仅可以选择一个靠谱的语音合成工具来处理文字,而且保存下来的音频还能反复收听,一举两得。
Python研究者
2020/11/24
5290
关于JDK源码:我想聊聊如何更高效地阅读
一,JDK源码是其它所有源码的基础,看懂了JDK源码再看其它的源码会达到事半功倍的效果。
彤哥
2019/12/12
6200
2020 年好好读一读开源代码吧
2019 年就这么结束了,2020 年也来临了,虽然我曾对过去 2019 年做了一份总结,但是认真的来说,其实我对自己的 2019 年的收获并不太满意,一个主要的原因是计划好好研读的几个开源项目的源码都没有去做。好在,2020 新的一年,不再像 2019 年创业一般忙碌,终于可以静下心来认真去把这些未完成的计划好好做完。
范蠡
2020/02/21
7910
推荐阅读
相关推荐
2018-08-25 如何熟悉一个新项目如何熟悉一个新项目
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档