想提高阅读代码的效率?试试这些工具吧!

前言

程序员间有句名言——“Talk is cheap, show me the code!”源码的确相较于言语更接近程序真实的状态,包含了更多的一手信息。因此,无论是刚开始学习代码的小白还是久经沙场的代码大神,不管是学习优秀的开源项目还是做老项目的重构,代码阅读都是开发者必备的技能之一。但在业务场景越来越复杂、迭代越来越快的背景下,提高梳理代码的效率能够极大程度的提高开发人员的工作效率,进一步为业务创造新的价值。

工欲善其事必先利其器,阅读代码也能通过工具来提升效率,本文将介绍3种代码阅读辅助工具,大家不妨在工作中试用一下,看看是否能带来实际帮助。

工具

 Source Insight

1416d35fed8400c831df974499e5c7ee.png

SI使用静态代码分析技术,提供了多个维度代码分析结果展示,对代码阅读、快速查找、代码分析和代码格式化都有帮助。可惜的是只支持Windows系统,Mac如果要使用需要安装虚拟机。

代码可视化:提供各种图形可视化能力,包括继承关系图,CallGraph等;

64a0aeb0f7f414126ed8c8c22aa953b6.png

继承关系图:

c2624b771ae594ef28aa2e267e46041f.png

CallGraph:

24c041145a5d59354f06dfa6b431d5d8.png

代码检查:对于语法格式和样式进行检查;

e69a07db3ac82228feaab1c621053341.png

代码探索:查看函数和变量的使用位置;

自动显示对函数、变量、类等的引用,使用高级搜索功能在整个项目中进行搜索。

7ebb5bf9d09239b6ca12018c9458f9b0.png

对比分析:提供了多维度对比分析能力。

文件对比:

d754122b52658f07a091195545abdd34.png


目录对比:

9fcc550d2f1186543417d338000b46ee.png

还有其他功能,有兴趣的同学可以自行探索一下。

 Understand

8c7adb89c7420d49784c0de41e2b56ce.png

Understand使用静态代码分析技术,提供了多个维度的代码分析结果展示,其核心功能和SI类似但更丰富,而且工具易用性更好,也支持多种操作系统。

代码可视化:提供各种图形可视化能力,包括依赖关系图,CallGraph,CFG、UML等等;

be62ba1a3a0e8c315ae6b9561cf4facd.png

控制流程图(CFG):

177e31cc6d89aaf56cb7e0bc87240f76.png

CallGraph:

3142eb2cbcc9bb68c0d7887705b0688a.png

UML:

c43978b7706447c5675635c118902ca9.png

更多可视化图形介绍可参考:Interesting Graphs about Your Code

代码检查:使用行业、通用或定制化的标准来检查代码,保证其安全、整洁,可用;

6a7724935c8aa233906dbb5b5b6dc59f.png

代码量化:使用各种指标对代码进行度量,如:圈复杂度、度量树状图等度量图表;

度量树状图中的每个块都代表代码中的一个文件、类或函数。图块的大小和颜色渐变各不相同,以区分度量指标的程度。

e93514276c8bff5da640107e0e49cfbf.png

度量图表可提供整个项目的信息,包括最复杂和最大的函数、类和文件等。

65d1459b4beb63a0d37647d6dd947f1a.png

代码探索:使复杂的代码关系变得简单;

提供了便捷的搜索功能,能够快速查找及定位指定的标识符。对于函数,可查看返回类型、参数和引用列表,点击后可立即进入该实例。对于类可查看成员变量和函数、包含列表以及相关指标。还可以通过信息浏览窗口或右键单击代码中任何已命名的实体来访问图表。使用蝴蝶图可以快速查看调用或被调用特定函数的所有内容。

b1cb303a0b3a20166e3540e3b56c4d75.png

代码变更分析:快速查看两个项目代码之间的差异。

可以按文件、文件夹、实体或架构维度查看变更。只需要指定要对比的git版本或要对比的两个数据库,便可以以文本或树形图对比的形式查看变更情况。

b094c8a1a45482852b47b3228844d4f9.png

还有其他很多功能,有兴趣的同学可以自行探索一下。

Source Trail

Sourcetrail是一款开源免费的跨平台源码分析工具,可在阅读源代码时提高效率。提供了按脑图形式展示的函数调用链路。在分析代码的同时,提供了优雅的图形化界面来展示工程项目中的各类标识符信息和链路图,能够让人更为直观地了解整个工程的调用信息。

b983fc1a94cab7e48e8f29f9c8918feb.png

PS:此开源项目已在2021年停止维护,遗留mac版本Java环境不能初始化问题至今没有解决(Sourcetrail was unable to locate Java on this machine)。

e2b31dc65bff63a85b2c0413ee9dff50.png

总结

工具名称功能丰富度易用性费用支持操作系统维护情况
Source Insight⭐️⭐️⭐️⭐️⭐️⭐️Win功能长时间未新增
Understand⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️⭐️Win/Linux/Mac维护中
Source Trail⭐️⭐️⭐️⭐️⭐️⭐️Win/Linux/Mac2021停止维护

如果之前没有接触过类似的软件,更推荐先试用下Understand。

参考

【工利其器】必会工具之(一)Source Insight篇

你用过的最好的代码阅读或编辑工具是什么?

12 Greatest Code Visualization Tools for Developers

Code visualization: How to turn complex code into diagrams

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值