因此,一位清華校友、谷歌工程師
laike9m ,便開發了一個強大的Python調試工具
Cyberbrain :
可以詳細記錄項目數據流、變量、狀態等等關鍵信
息。
有了這個神器,從此debug也會和寫代碼同樣流暢高效。
「賽博大腦」幫你debug
最常規的辦法是用調試器,可是你能記住程序中每一個步驟發生什麼了嗎?
這就是傳統方法的缺點:調試信息沒法持久化,要靠程序員去記住它們。
這款名叫
Cyberbrain (賽博大腦)的強大的工具,最亮眼的功能,是回溯代碼中的變量更改歷史,查看程序執行的狀態。
因此,在你調試程序或debug時,不須要費幾個小時用編譯器逐行執行。
Cyberbrain會清晰的
告訴你流程中都發生過什麼 :
Cyberbrain能顯示準確的數據流,並保留程序的每一個狀態。程序員不只不須要記住任何內容,甚至不須要逐步執行程序,這能夠節省大量調試時間。
比方說,你想找出爲何返回值是錯誤的。經過看圖,就能夠對致使返回值的緣由有了一個大概的瞭解。
接下來,將鼠標懸停在 「返回 「節點上,全部相關的值都顯示出來了,造成了一個從函數開始到結束的跟蹤路徑:
只要動動鼠標就能找到問題,誰還會去用麻煩的編譯器呢?
若是如今有一個大列表,但它沒法與圖匹配,如何使用工具來檢查它的值?
啓動後,Cyberbrain會自動打開一個devtools窗口。
當你把鼠標懸停在一個變量上時,它的值就會被記錄在devtools控制檯中。
因此在這種狀況下,雖然沒有足夠的空間在跟蹤圖中顯示整個列表,但你仍然能夠從devtools中檢查它的值。
幾乎全部的Python調試器(PyCharm、VS Code等)都會截斷參數,沒法顯示一個大列表中的每一個元素,但Cyberbrain不會這樣作,除非你明確告訴它。
最後,Cyberbrain還能讓用戶在debug的同時,設置循環計數器。
[]
如何安裝使用
Cyberbrain由一個Python庫和各類編輯器/IDE集成組成。目前它支持 VS Code 和 Gitpod。
pip install Cyberbraincode —install-extension laike9m.Cyberbrain
同時,做者還提供了在線版的Cyberbrain,能夠直接試用:
https://gitpod.io/#snapshot/91475a9d-4ccf-420a-b0ee-11db084ce689
在使用過程當中,假如你想追蹤一個函數「foo」,可使用**@trace**指令實現:
from Cyberbrain import trace
# As of now, you can only have one @trace decorator in the whole program.# We may change this in version 2.0, see https://github.com/laike9m/Cyberbrain/discussions/73@trace # Disable tracing with `@trace(disabled=True)`def foo():
Cyberbrain能夠保持你的工做流程不變。運行一個程序(從 vscode 或命令行,均可以),一個新的面板將被打開,程序執行狀況所有以可視化展現:
首先是可能會與其餘調試器發生衝突。若是你設置了斷點並使用VSC的調試器,Cyberbrain可能沒法正常工做。通常來講,首選 「不調試運行」。
而當你的程序中有多個裝飾器(decorator)時,應該將@trace設置爲最底層的那個。
此外,目前Cyberbrain還不支持多線程代碼。
做者介紹
做者
laike9m ,谷歌軟件工程師,目前全職開發Cyberbrain工具。
laike9m是清華校友,在博客中自述曾擔任清華大學推理協會會長。此外仍是重度二次元愛好者。
除了Cyberbrain,他還組織了一檔播客節目,名字叫
捕蛇者說 ,Pythonhunter。
圖片: https://uploader.shimo.im/f/Ks0rqxVvzEZrPsfE.png
Cyberbrain項目地址:https://github.com/laike9m/Cyberbrain
laike9m主頁:https://laike9m.com/blog/
播客地址:https://pythonhunter.org/
一個高中就混跡互聯網的小渣渣,目前還在大學摸魚 python
若是想跟我交個朋友,能夠加我微信:LLLLLLS123 git
個人博客:www.kuls6.top 程序員