5

桀骜不驯的代码又搞事情?我找来 10 个开源项目帮你驯服它们!

 2 years ago
source link: https://www.cnblogs.com/xueweihan/p/15405077.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

桀骜不驯的代码又搞事情?我找来 10 个开源项目帮你驯服它们!

你的编程能力从什么时候开始突飞猛进?

看到这个问题,我陷入了沉思。我开始回忆过往的编程经历...貌似我的编程能力没有突飞猛进过!但如果说被骂和嫌弃的次数变少就算是进步的话,那么我“突飞猛进”的转折点就应该是:自从我看得懂代码的报错和异常,不拿白痴的问题找我师傅后就很少挨骂了。从那以后我就开始自己解决代码的 BUG 和问题,然后被“委以重任”开始独立开发模块和负责项目了。自此我也算是吃上了程序员这口饭,感谢师傅没有放弃我~

如果说代码是一匹桀骜不驯的野马,一开始要先认识它不能“指鹿为马”,也就是搞懂语法能看懂代码。然后多数情况下运行代码就会出错,所以需要先驯服它。刚开始可以先:

  1. 尝试定位问题,把关键步骤的变量输出出来
  2. 学会用 IDE 调试代码,弄清楚每一步的值
  3. 拿着异常的关键字:错误代码、异常类别,去问搜索引擎

但如果是线上运行着的代码、需要在服务器上找问题、需要在真机上调试,那上面的方法就很难搞了。刚找到通往成功的钥匙,就发现锁换了。

不怕!今天 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 容器类型的输出
  • 除了基本信息外,还输出变量名和类型

https://github.com/sharkdp/dbg-macro

另外 Python 也有类似功能的库:PySnooper

https://github.com/cool-RR/PySnooper

2、pudb(Python)

Star:2.2k|语言:Python

支持代码高亮的 Python 命令行可视化调试器。栈、断点、变量动态实时更新,支持 VIM 的操作方式,还兼容 pdb 的某些命令,更容易上手。

https://github.com/inducer/pudb

3、pylane(Python)

Star:292|语言:Python

Python 进程注入和调试工具。可以直接进入正在运行的 Python 进程,动态注入或执行代码片段。

https://github.com/NtesEyes/pylane

4、arthas(Java)

Star:27.3k|语言:Java

简单易用的命令行 Java 诊断工具。支持 JVM 进程和资源监控,还能展示 GC、JDK 版本等信息,无需增加代码就可以加入日志,帮助快速定位问题。当线上出现了奇怪的异常时,无需发版就能截获运行时的数据,包括参数、返回值、异常、耗时等信息。

https://github.com/alibaba/arthas

5、delve(Go)

Star:17.1k|语言:Go

简单且强大的 Go 源码调试器。支持线程和 goroutine,功能齐全。

https://github.com/go-delve/delve

目前很多 IDE 都支持远程调试啦(基于上述项目实现),这里就不再赘述了,主要是我没用过 IDE 远程调试😅。

移动端的调试工具

PC 端最常用的 Web 调试工具应该是 Chrome 浏览器的开发工具啦。

下面介绍的开源项目帮你开启移动端的“开发者工具”,全图挂那种!

不用盲猜啦,全图的感觉真爽。

6、eruda(手机网页)

Star:11.2k|语言:JavaScript

专为手机网页设计的前端调试工具。类似手机端迷你版开发者模式,可用于在手机端调试页面。主要功能包括:显示 console 日志、检查元素状态、捕获 XHR 请求、显示本地存储和 Cookie 等信息

https://github.com/liriliri/eruda

7、FLEX(iOS)

Star:12.6k|语言:Objective-C

iOS 应用上的调试工具。通过它你几乎可以查看应用的所有状态并修改任意组件的数值。比如:调整布局、浏览文件、查看网络请求历史、本地数据库等

https://github.com/FLEXTool/FLEX

8、DoraemonKit

Star:18k|语言:Java

支持多种客户端的调试工具。它功能强大、接入方便、便于扩展,能够让你在 Android、iOS、小程序等移动端应用,快速接入常用的调试、辅助开发、性能检测、视觉辅助等工具。

https://github.com/didi/DoraemonKit

9、insomnia

Star:18.1k|语言:JavaScript

支持 API、GraphQL、REST、gRPC 的调试工具,请求接口的桌面应用。不仅有简约漂亮的界面,还支持 Windows、Linux、macOS 主流操作系统。

https://github.com/Kong/insomnia

又多了一个奇怪的工具

调试代码也好,应用开挂也罢。都是为了找到问题原因,然后解决问题。

那么能远程协助下吗?

10、termpair

Star:1.2k|语言:Python

能够在命令行开启远程协助的工具。原理是命令行启动了一个 Web 服务,然后生成分享用的链接。最后只要拿到链接就能通过浏览器,远程操作服务器了。有了它再遇到问题,求助大佬就方便多了。

# 安装
pip install termpair
# 启动服务
termpair serve
# 生成远程控制终端的链接
termpair share

https://github.com/cs01/termpair

想要驯服桀骜不驯的代码,不是一件容易的事情。我的经验:

先定位问题,然后验证想法复现问题,最后在考虑解决方案。

弄懂每一行代码,知晓复杂系统下的数据流向和状态。

这期介绍的开源项目都是用来辅助你找到 Bug、定位问题的工具,有了它们相信你假以时日,驯服代码的能力定会突飞猛进。编程能力起飞!

以上就是本期的全部内容,这里是 HelloGitHub 分享 GitHub 上有趣、入门级的开源项目。感谢您的阅读和支持,求赞、分享,让优秀的开源项目被更多人发现和喜欢。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK