欢迎光临
我们一直在努力

读源码太难?试试这款工具

程序员最痛苦的事,不是需求又改了,而是别人代码摆在你面前,你却看不懂它。

有诗为证:

人在屎山行,加班到天明。

一把辛酸泪,谁解其中味

1源码为什难?
程序员读源码的痛苦,产品经理很理解。“不就是改点功能么,有那么难吗?”说实话,我们情愿加新功能,也不愿意去改别人的旧代码。情愿去翻越一座雪山,也不愿去翻屎山。原因不解释,不是程序员,不会懂的。下图是一个源码执行过程,外行可以直观感受一下,如果让你在这堆杂乱图中,把它逻辑一条条捋清楚,是不是想死的心都有了。

读源码太难?试试这款工具

1大神破局

源码是怎么变复杂的?追究原因已经没有意义了,当务之急,是提高我们源码阅读的能力?国内就有一位技术大神,他开发了一款源码阅读工具,以可视化地图的方式追踪源码执行过程,效果怎么样?我们一起看一下。
1源码在线阅读

这款工具叫源码阅读网,它支持类似idea一样源码在线阅读网体验。总体设计布局都是照搬的IDEA,其功能如下:

  • 完整的项目类浏览,包括依赖的JDK及第三方包
  • 快速类导航,通过Ctrl+鼠标点击跳转。
  • 元素聚焦,点击方法或属性会聚焦到相关引用。
  • 跟IDEA一样的类搜索
读源码太难?试试这款工具

1元素定位,类跳转
按住Control 或Cmd 就可以定位跳转

读源码太难?试试这款工具

1类搜索
支持单个字母分词,如下图中搜索关键字是strbuff 可分词成 strbuff 从而搜索StringBuffer

读源码太难?试试这款工具

源码在线阅读确实是方便了。但源码复杂度还是在那里,还是看不懂呀。客观别急,在线阅读只是开胃菜,接下来的源码地图才是硬菜。
1源码地图
阅读源码的痛点在于,梳理源码繁杂的流程。尽管我们不停的Debug,最后还只是梳理出一小部分流程,无法得其全貌。这就是为什么,我们对源码的掌握总是一知半解的原因。为此大神开发出了源码地图,它把源码完整执行节点展现在地图上,你可以看某个用例执行全貌,也可以看任意两个方法间的执行链路细节。

读源码太难?试试这款工具

上图是 Spring Ioc 容器启动全貌图,点击图中任意节点,按F2查看说明,F3就可以查看它对应源码。

读源码太难?试试这款工具

1链路追踪
现在让我们去一个陌生地方,并不是难事,只要百度导航一搜,到达路线,途经节点清清楚楚。但如果你问一个新手,这个方法有多少条到达它的路径,这会把它活活问懵。尽管老手可以通过IDEA搜索执行树,可结果也不尽人意。因为源码中大量的反射和代理,不能通过静态代码分析来追踪。在源码地图中可以找到任意方法,搜索出它所有的执行路径,以及途径节点。

读源码太难?试试这款工具

尽管源码地图功能强大,但对于新手来讲,源码仍然是一座难以翻越的大山,这需要编程经验的积累,非一朝一夕之功。这里推荐新手使用流程图,使用门槛较低。
1流程图
这种图相比源码地图,会更简单直观,适合新手学习。

读源码太难?试试这款工具

点击红色节点可查看 对应的变量数据结构。

读源码太难?试试这款工具

里面还有很多功能,就不一一介绍了,读者可自行体验。
1支持语言
目前该工具只支持JAVA语言,其它语言栈的朋友可能要失望了。但没办法,网站是作者个人开发,精力有限,能把JAVA做好就值得鼓励了。

内测体验

网站刚刚上线,功能还不太稳定,目前仅对内测群开放。如果你也是源码爱好者,可以加入他们的内测群,和作者一起完善它。

1最后寄语
国内独立创作不易,希望作者能一路坚持下去。 本文欢迎转载,转发,不需要作者同意。

  • 海报
海报图正在生成中...
赞(0) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《读源码太难?试试这款工具》
文章链接:https://www.456zj.com/20773.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址