当前位置: 首页 > 科技观察

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

时间:2023-03-19 14:25:28 科技观察

编程发展至今,从面向过程到面向对象,再到现在的面向框架。编写代码变得越来越容易。学好基本的语法,看看框架文档,几天就能搞定一个小项目,不难。但是时间久了,你会发现,这样一直浮在表面是不够的,技术永远也提升不起来。如果你想在技术水平上有质的飞跃,阅读源码是个不错的方法。但是阅读源码真的是一件很有挑战性的事情。想想自己看Django源码的时候。从启动过程开始,走几步就放弃了,放弃了很多次。这么说吧,我对Django启动部分的代码就像对英文单词abandon一样熟悉。后来总结经验,发现方法不对。主要是我们一上来就进入细节,不想错过每一个功能。致使自己没有整体概念,抓不住重点,卡在无关紧要的代码里。最后实在是看不下去了,只好作罢。最近看了一点Go源码,慢慢找了一些心得。有一个方法我觉得很好,可以带着问题阅读源码,比如:GoError嵌套是如何实现的?为什么我应该避免在Go中使用ioutil.ReadAll?如何在Go.Reader中将[]byte转换为io?在解决问题的过程中,更加熟悉了源码。还有一点要注意,就是先看整体,再看细节。这里我给大家推荐一个工具。这个工具可以帮助我们理清代码的整体结构。我认为它非常有用。它是一个开源项目:项目地址:https://github.com/jfeliu007/goplantuml该项目可以分析一个Go项目,然后生成接口和结构的UML图。有了这个图,基本上你对项目的整体关系有了一个基本的概念,然后再看代码,会相对容易一些。没详细研究项目怎么用,因为小弟很贴心的写了一个WEB页面:网址链接:https://www.dumels.com/使用起来很方便。首先在页面上方的输入框中输入项目地址,然后在左侧输入要分析的代码目录。默认情况下,生成的图表将包括字段和方法。填写信息后,即可生成UML图。例如,当我输入src/sync时,我得到下图。有了这张图,代码结构之间的关系就更加清晰了。也可以一次分析多个目录,多个目录之间用逗号隔开。如果不填写要分析的目录,则分析整个项目,也可以选择是否忽略某个目录。友情提示,不要试图分析整个Go项目,可能项目太大,页面不会返回给你。