你的编程能力从什么时候开始突飞猛进?
看到这个问题,我陷入了沉思。我开始回忆过往的编程经历...貌似我的编程能力没有突飞猛进过!但如果说被骂和嫌弃的次数变少就算是进步的话,那么我“突飞猛进”的转折点就应该是:自从我看得懂代码的报错和异常,不拿白痴的问题找我师傅后就很少挨骂了。从那以后我就开始自己解决代码的 BUG 和问题,然后被“委以重任”开始独立开发模块和负责项目了。自此我也算是吃上了程序员这口饭,感谢师傅没有放弃我~
如果说代码是一匹桀骜不驯的野马,一开始要先认识它不能“指鹿为马”,也就是搞懂语法能看懂代码。然后多数情况下运行代码就会出错,所以需要先驯服它。刚开始可以先:
- 尝试定位问题,把关键步骤的变量输出出来
- 学会用 IDE 调试代码,弄清楚每一步的值
- 拿着异常的关键字:错误代码、异常类别,去问搜索引擎
但如果是线上运行着的代码、需要在服务器上找问题、需要在真机上调试,那上面的方法就很难搞了。刚找到通往成功的钥匙,就发现锁换了。
不怕!今天 HelloGitHub 带来的开源项目,助你全方位搞定桀骜不驯的代码,让 BUG 无处遁形。
更好用的调试工具
编程语言都自带代码调试工具(Debugger),比如:C/C++(GDB)、Python(pdb)、Java(JDB)、LLDB 等,这些工具常用于服务器端调试代码。下面这些开源项目比自带的调试工具:操作更加简单、信息展示更丰富、更加人性化,好用的调试工具能够更加方便地调试代码,定位问题。
注意:不要在服务器上调试线上代码,风险巨大!
1、dbg-macro(C++)
Star:1.7k|语言:C++
兼容 C++11 的 header-only 单个头文件的打日志方式调试库。它提供了比 printf 和 std::cout 更好的宏函数。特点:
- 美观的彩色输出
- 支持基础类型和 STL 容器类型的输出
- 除了基本信息外,还输出变量名和类型
另外 Python 也有类似功能的库:PySnooper
2、pudb(Python)
Star:2.2k|语言:Python
支持代码高亮的 Python 命令行可视化调试器。栈、断点、变量动态实时更新,支持 VIM 的操作方式,还兼容 pdb 的某些命令,更容易上手。
3、pylane(Python)
Star:292|语言:Python
Python 进程注入和调试工具。可以直接进入正在运行的 Python 进程,动态注入或执行代码片段。
4、arthas(Java)
Star:27.3k|语言:Java
简单易用的命令行 Java 诊断工具。支持 JVM 进程和资源监控,还能展示 GC、JDK 版本等信息,无需增加代码就可以加入日志,帮助快速定位问题。当线上出现了奇怪的异常时,无需发版就能截获运行时的数据,包括参数、返回值、异常、耗时等信息。
5、delve(Go)
Star:17.1k|语言:Go
简单且强大的 Go 源码调试器。支持线程和 goroutine,功能齐全。
目前很多 IDE 都支持远程调试啦(基于上述项目实现),这里就不再赘述了,主要是我没用过 IDE 远程调试
文章来源: 博客园
- 还没有人评论,欢迎说说您的想法!