當前位置: 華文星空 > 知識

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

2019-11-17知識

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

看到這個問題,我陷入了沈思。我開始回憶過往的編程經歷...貌似我的編程能力沒有突飛猛進過!但如果說被罵和嫌棄的次數變少就算是進步的話,那麽我「突飛猛進」的轉折點就應該是: 自從我看得懂程式碼的報錯和異常 ,不拿白癡的問題找我師傅後就很少挨罵了。從那以後我就開始 自己解決程式碼的 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/PySn ooper

    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/pyl ane

    4、arthas(Java)

    Star :27.3k| 語言 :Java

    簡單易用的命令列 Java 診斷工具。支持 JVM 行程和資源監控,還能展示 GC、JDK 版本等資訊,無需增加程式碼就可以加入日誌,幫助快速定位問題。當線上出現了奇怪的異常時,無需發版就能截獲執行時的數據,包括參數、返回值、異常、耗時等資訊。

    https:// github.com/alibaba/arth as

    5、delve(Go)

    Star :17.1k| 語言 :Go

    簡單且強大的 Go 源碼偵錯程式。支持執行緒和 goroutine,功能齊全。

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

    目前很多 IDE 都支持遠端偵錯啦(基於上述計畫實作),這裏就不再贅述了,主要是我沒用過 IDE 遠端偵錯 。

    移動端的偵錯工具

    PC 端最常用的 Web 偵錯工具應該是 Chrome 瀏覽器的開發工具啦。

    下面介紹的開源計畫幫你開啟移動端的「開發者工具」,全圖掛那種!

    不用盲猜啦,全圖的感覺真爽。

    6、eruda(手機網頁)

    Star :11.2k| 語言 :JavaScript

    專為手機網頁設計的前端偵錯工具。類似手機端迷你版開發者模式,可用於在手機端偵錯頁面。主要功能包括:顯示 console 日誌、檢查元素狀態、捕獲 XHR 請求、顯示本地儲存和 Cookie 等資訊

    https:// github.com/liriliri/eru da

    7、FLEX(iOS)

    Star :12.6k| 語言 :Objective-C

    iOS 套用上的偵錯工具。透過它你幾乎可以檢視套用的所有狀態並修改任意元件的數值。比如:調整布局、瀏覽檔、檢視網路請求歷史、本地資料庫等

    https:// github.com/FLEXTool/FLE X

    8、DoraemonKit

    Star :18k| 語言 :Java

    支持多種客戶端的偵錯工具。它功能強大、接入方便、便於擴充套件,能夠讓你在 Android、iOS、小程式等移動端套用,快速接入常用的偵錯、輔助開發、效能檢測、視覺輔助等工具。

    https:// github.com/didi/Doraemo nKit

    9、insomnia

    Star :18.1k| 語言 :JavaScript

    支持 API、GraphQL、REST、gRPC 的偵錯工具,請求介面的桌面套用。不僅有簡約漂亮的界面,還支持 Windows、Linux、macOS 主流作業系統。

    https:// github.com/Kong/insomni a

    又多了一個奇怪的工具

    偵錯程式碼也好,套用開掛也罷。都是為了找到問題原因,然後解決問題。

    那麽能遠端協助下嗎?

    10、termpair

    Star :1.2k| 語言 :Python

    能夠在命令列開啟遠端協助的工具。原理是命令列啟動了一個 Web 服務,然後生成分享用的連結。最後只要拿到連結就能透過瀏覽器,遠端操作伺服器了。有了它再遇到問題,求助大佬就方便多了。

    # 安裝 pip install termpair # 啟動服務 termpair serve # 生成遠端控制終端的連結 termpair share

    https:// github.com/cs01/termpai r

    最後

    想要馴服桀驁不馴的程式碼,不是一件容易的事情。我的經驗:

    先定位問題,然後驗證想法復現問題,最後在考慮解決方案。
    弄懂每一行程式碼,知曉復雜系統下的數據流向和狀態。

    這期介紹的開源計畫都是用來輔助你找到 Bug、定位問題的工具,有了它們相信你假以時日,馴服程式碼的能力定會突飛猛進。編程能力起飛!

    以上就是本期的全部內容,這裏是 HelloGitHub 分享 GitHub 上有趣、入門級的開源計畫。感謝您的閱讀和支持,求贊、分享,讓優秀的開源計畫被更多人發現和喜歡。