桀骜不驯的代码又搞事情?我找来 10 个开源项目帮你驯服它们!
你的编程能力从什么时候开始突飞猛进?
看到这个问题,我陷入了沉思。我开始回忆过往的编程经历...貌似我的编程能力没有突飞猛进过!但如果说被骂和嫌弃的次数变少就算是进步的话,那么我“突飞猛进”的转折点就应该是:自从我看得懂代码的报错和异常,不拿白痴的问题找我师傅后就很少挨骂了。从那以后我就开始自己解决代码的 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 远程调试😅。
移动端的调试工具
PC 端最常用的 Web 调试工具应该是 Chrome 浏览器的开发工具啦。
下面介绍的开源项目帮你开启移动端的“开发者工具”,全图挂那种!
不用盲猜啦,全图的感觉真爽。
6、eruda(手机网页)
Star:11.2k|语言:JavaScript
专为手机网页设计的前端调试工具。类似手机端迷你版开发者模式,可用于在手机端调试页面。主要功能包括:显示 console 日志、检查元素状态、捕获 XHR 请求、显示本地存储和 Cookie 等信息
7、FLEX(iOS)
Star:12.6k|语言:Objective-C
iOS 应用上的调试工具。通过它你几乎可以查看应用的所有状态并修改任意组件的数值。比如:调整布局、浏览文件、查看网络请求历史、本地数据库等
8、DoraemonKit
Star:18k|语言:Java
支持多种客户端的调试工具。它功能强大、接入方便、便于扩展,能够让你在 Android、iOS、小程序等移动端应用,快速接入常用的调试、辅助开发、性能检测、视觉辅助等工具。
9、insomnia
Star:18.1k|语言:JavaScript
支持 API、GraphQL、REST、gRPC 的调试工具,请求接口的桌面应用。不仅有简约漂亮的界面,还支持 Windows、Linux、macOS 主流操作系统。
又多了一个奇怪的工具
调试代码也好,应用开挂也罢。都是为了找到问题原因,然后解决问题。
那么能远程协助下吗?
10、termpair
Star:1.2k|语言:Python
能够在命令行开启远程协助的工具。原理是命令行启动了一个 Web 服务,然后生成分享用的链接。最后只要拿到链接就能通过浏览器,远程操作服务器了。有了它再遇到问题,求助大佬就方便多了。
# 安装 pip install termpair # 启动服务 termpair serve # 生成远程控制终端的链接 termpair share
最后
想要驯服桀骜不驯的代码,不是一件容易的事情。我的经验:
先定位问题,然后验证想法复现问题,最后在考虑解决方案。
弄懂每一行代码,知晓复杂系统下的数据流向和状态。
这期介绍的开源项目都是用来辅助你找到 Bug、定位问题的工具,有了它们相信你假以时日,驯服代码的能力定会突飞猛进。编程能力起飞!
以上就是本期的全部内容,这里是 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。感谢您的阅读和支持,求赞、分享,让优秀的开源项目被更多人发现和喜欢。

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
GNOME 新设计:引入全局深色模式、优化用户体验
GNOME 设计团队核心成员 Allan Day 近日在其博客介绍了 GNOME 应用开发平台在 UI 设计方面的最新进展。 简要总结如下: 围绕 libadwaita 对 GNOME/GTK 应用程序的样式进行持续改进,优化用户体验 添加了系统级别的深色模式 开发专门的 demo 应用「GNOME Patterns」,"Patterns" 旨在将 libadwaita 和人机界面指南 (HIG) 作为演示应用程序进行展示 新的"About"窗口设计 此外,Allan 还介绍了部分关于 GNOME 设计未来的想法,以及计划开展的工作: 使用 libadwaita 的新小部件 Toasts 来替换现有的应用程序内通知 使用 Banners 作为 GtkInfoBars 的替代方案,用于在包含文本和控件的标题下方显示带有信息的彩色条 选择模式 最后看看一些已初步完成的实际效果图。
- 下一篇
Electron-egg 1.15.0 发布,简单易学的桌面软件开发框架
Electron-egg是一个简单、快速、功能丰富的跨平台桌面软件开发框架,您只需懂 js 即可。 特性 1. 跨平台:一套代码,可以打包成 windows 版、Mac 版、Linux 版或者以 web 网站运行 2. 简单高效:支持 vue、react、ejs 等 3. 工程化:可以用服务端的开发思维,来编写桌面软件 4. 高性能:可启动多个工作进程协同工作 5. 功能丰富:服务端的技术场景都可以使用,如:路由、中间件、控制器、服务、定时任务、队列、插件等 6. 功能 demo:桌面软件常见功能,后续逐步集成并完善或提供 demo 7. 自动更新 本次更新: 1. 增加 chrome 扩展程序 2. 增加 web (html) 内容嵌入 3. 增加多窗口打开 4. 增加桌面通知 5. 增加电源监控 6. 增加显示机器信息 7. 增加系统主题设置 8. 修改功能分类 使用场景 1. 常规桌面软件 demo 2. 游戏( h5 相关技术开发) 忍者 100 层 3. 任意网站变桌面软件 discuz-q 论坛 4. web 项目 网站助手:http://b.kaka996.com...
相关文章
文章评论
共有0条评论来说两句吧...