桀驁不馴的代碼又搞事情?我找來 10 個開源項目幫你馴服它們

hellogithub 發佈 2021-10-14T04:27:37+00:00

今天 HelloGitHub 帶來的開源項目,助你全方位搞定桀驁不馴的代碼,讓 BUG 無所遁形。以上就是本期的全部內容,這裡是 HelloGitHub 分享 GitHub 上有趣、入門級的開源項目。

你的編程能力從什麼時候開始突飛猛進?

看到這個問題,我陷入了沉思。我開始回憶過往的編程經歷...貌似我的編程能力沒有突飛猛進過!但如果說被罵和嫌棄的次數變少就算是進步的話,那麼我「突飛猛進」的轉折點就應該是:自從我看得懂代碼的報錯和異常,不拿白痴的問題找我師傅後就很少挨罵了。從那以後我就開始自己解決代碼的 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 容器類型的輸出
  • 除了基本信息外,還輸出變量名和類型

另外 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 上有趣、入門級的開源項目。感謝您的閱讀和支持,求贊、分享,讓優秀的開源項目被更多人發現和喜歡。

關鍵字: