所以,一位清華校友、谷歌工程師laike9m ,便開發(fā)了一個強大的Python調試工具Cyberbrain : 能夠詳細記錄項目數據流、變量、狀態(tài)等等關鍵信息。 有了這個神器,今后debug也會和寫代碼一樣流暢高效。 “賽博大腦”幫你debug 最常規(guī)的辦法是用調試器,但是你能記住程序中每個步驟發(fā)生什么了嗎? 這就是傳統(tǒng)方法的缺點:調試信息無法持久化,要靠程序員去記住它們。 這款名叫Cyberbrain (賽博大腦)的強大的工具,最亮眼的功能,是回溯代碼中的變量更改歷史,查看程序執(zhí)行的狀態(tài)。 所以,在你調試程序或debug時,不需要費幾個小時用編譯器逐行執(zhí)行。 Cyberbrain會清晰的告訴你流程中都發(fā)生過什么 : Cyberbrain能顯示準確的數據流,并保留程序的每個狀態(tài)。程序員不僅不需要記住任何內容,甚至不需要逐步執(zhí)行程序,這可以節(jié)省大量調試時間。 比方說,你想找出為什么返回值是錯誤的。通過看圖,就可以對導致返回值的原因有了一個大概的了解。 接下來,將鼠標懸停在 “返回 “節(jié)點上,所有相關的值都顯示出來了,形成了一個從函數開始到結束的跟蹤路徑: 只要動動鼠標就能找到問題,誰還會去用麻煩的編譯器呢? 如果現在有一個大列表,但它無法與圖匹配,如何使用工具來檢查它的值? 啟動后,Cyberbrain會自動打開一個devtools窗口。 當你把鼠標懸停在一個變量上時,它的值就會被記錄在devtools控制臺中。 所以在這種情況下,雖然沒有足夠的空間在跟蹤圖中顯示整個列表,但你仍然可以從devtools中檢查它的值。 幾乎所有的Python調試器(PyCharm、VS Code等)都會截斷參數,無法顯示一個大列表中的每個元素,但Cyberbrain不會這樣做,除非你明確告訴它。 最后,Cyberbrain還能讓用戶在debug的同時,設置循環(huán)計數器。 [] 如何安裝使用 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 或命令行,都可以),一個新的面板將被打開,程序執(zhí)行情況全部以可視化展示: 首先是可能會與其他調試器發(fā)生沖突。如果你設置了斷點并使用VSC的調試器,Cyberbrain可能無法正常工作。一般來說,首選 “不調試運行”。 而當你的程序中有多個裝飾器(decorator)時,應該將@trace設置為最底層的那個。 此外,目前Cyberbrain還不支持多線程代碼。 作者介紹 作者laike9m ,谷歌軟件工程師,目前全職開發(fā)Cyberbrain工具。 laike9m是清華校友,在博客中自述曾擔任清華大學推理協(xié)會會長。此外還是重度二次元愛好者。 除了Cyberbrain,他還組織了一檔播客節(jié)目,名字叫捕蛇者說 ,Pythonhunter。 圖片: https://uploader.shimo.im/f/Ks0rqxVvzEZrPsfE.png Cyberbrain項目地址:https://github.com/laike9m/Cyberbrain laike9m主頁:https://laike9m.com/blog/ 播客地址:https://pythonhunter.org/ 文末推薦一本《Python量化金融編程從入門到精通》,本書先從量化交易的基本概念講起,然后講解Python的基本語法及常見庫的使用,在每章節(jié)的學習中都以金融量化為實例,并在后結合實戰(zhàn)項目來進行學習和鞏固,讀者不但可以系統(tǒng)地學習Python編程的相關知識,而且還能學習到Python在量化交易場景下的應用。
【更多福利】
掃下方二維碼添加我的私人微信,可以在我的朋友圈獲取最新的Python學習資料,以及近期推文中的源碼或者其他資源,另外不定期開放學習交流群,以及朋友圈福利(送書、紅包、學習資源等)。
掃碼查看我朋友圈
獲取最新學習資源
“ 點贊 ”傳統(tǒng)美德不能丟