偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

實(shí)時(shí)可視化Debug:VS Code 開源新工具,一鍵解析代碼結(jié)構(gòu)

安全 應(yīng)用安全 開發(fā)工具
DeBug 太枯燥?讓 VS Code 畫個(gè)圖,自動(dòng)幫你理清數(shù)據(jù)結(jié)構(gòu)與代碼思路,這就是 Reddit 2K 多點(diǎn)贊的開源新工具。

項(xiàng)目地址:https://github.com/hediet/vscode-debug-visualizer

寫代碼,難免會(huì)遇到各種神奇的問(wèn)題,代碼短我們?cè)谀X海中「運(yùn)行」一遍也就差不多能找出原因。但代碼要是比較長(zhǎng),錯(cuò)誤就會(huì)隱藏比較深了,這個(gè)時(shí)候,不論你是采用 print() 大法,還是善用 assert 語(yǔ)句,或者干脆設(shè)置斷點(diǎn),DeBug 總是一條慢慢排除的道路。

之前機(jī)器之心曾介紹過(guò)極簡(jiǎn) DeBug 工具 PySnooper ,我們只需要向感興趣的函數(shù)增加一個(gè)裝飾器,就能得到該函數(shù)的詳細(xì) log,包含哪行代碼能運(yùn)行、什么時(shí)候運(yùn)行以及本地變量變化的確切時(shí)間等等。這個(gè) GitHub 12.3K Star 量的 DeBug 工具,輸出風(fēng)格是這樣色的:

左邊是運(yùn)行信息,右邊是對(duì)應(yīng) NumPy 代碼

這種復(fù)雜的 DeBug 工具,看起來(lái)就比較勸退。此外,在 PyCharm 上使用斷點(diǎn)調(diào)試,它輸出的也是各種變量的定義與值,同樣是一堆詳細(xì)信息。

那么能不能有一種更優(yōu)雅的 DeBug 方式,以更簡(jiǎn)潔的信息快速幫我們找到代碼的問(wèn)題所在?這就是 VS Code 最新推出的可視化 DeBug,它能以圖的方式快速展示數(shù)據(jù)結(jié)構(gòu)。

我們先看看效果,如下動(dòng)圖將斷點(diǎn)設(shè)置為第 32 行定義雙向鏈表,隨后一行行運(yùn)行代碼就會(huì)在右圖展現(xiàn)出對(duì)應(yīng)的數(shù)據(jù)結(jié)構(gòu)圖。

這種可視化非常優(yōu)雅,而且該工具也會(huì)根據(jù)數(shù)據(jù)結(jié)構(gòu)以不同的方式展現(xiàn),例如樹形、表格、曲線和圖等。如下動(dòng)圖展示幾種不同的可視化方式:

效果上確實(shí)非常驚艷,它與之前的 DeBug 方式采用完全不同的展現(xiàn)形式。目前該 VS Code Debug Visualizer 在 JavaScript/TypeScript 上有比較好的效果,在 C#、Java 和 PHP 上也正在積極測(cè)試,其它語(yǔ)言也還都能用。

正確的使用姿勢(shì)

安裝此擴(kuò)展程序后,使用命令< Open a new Debug Visualizer View >打開新的可視化視圖。在此視圖里,設(shè)置斷點(diǎn)逐步執(zhí)行后,表達(dá)式的執(zhí)行與動(dòng)態(tài)可視化都會(huì)展示在里面。右上角的刷新鍵可將當(dāng)前的可視化工具視圖彈出到新的瀏覽器窗口,同時(shí)還可以通過(guò)展開詳細(xì)信息的窗口去選擇數(shù)據(jù)提取器以及可視化調(diào)試器。

可視化調(diào)試器使用的是特定的 JSON 數(shù)據(jù),相關(guān)支持的 JSON 數(shù)據(jù)模式可參考原 GitHub 項(xiàng)目。

當(dāng)前的可視化表達(dá)式應(yīng)該是作為 JSON 對(duì)象字符串來(lái)進(jìn)行運(yùn)算的,并與所支持的可視化調(diào)節(jié)器相匹配。而這個(gè) JSON 字符串可能被單引號(hào)或者雙引號(hào)所包含(也有可能沒有引號(hào)),因此不能忽略轉(zhuǎn)義符。

舉一個(gè)案例:

  1. "{ "kind": { "text": true }, "text": "some text\nmore text" }". 

對(duì)于 TypeScript/JavaScript 等語(yǔ)言,因?yàn)橐呀?jīng)集成了數(shù)據(jù)抽取器,因此可以直接自動(dòng)可視化。而其它沒有數(shù)據(jù)抽取器的語(yǔ)言,就需要自定義數(shù)據(jù)結(jié)構(gòu)與可視化器之間的關(guān)系了

多種可視化器皆可定制

該擴(kuò)展還內(nèi)置了其他可自定義的可視化調(diào)節(jié)器,尤其在 debug 時(shí)使用起來(lái)非常直觀,可以根據(jù)面對(duì)不同的處理對(duì)象,可選擇更易于理解的可視化方式。比如圖表可視化,Plotly 可視化,Tree 可視化,網(wǎng)格可視化,文本可視化等等。在其種類非常豐富的同時(shí),操作性也較為簡(jiǎn)便,效果非常直觀,小編選取了幾種類型作為案例:

Plotly 可視化

Plotly 可視化

可視化

AST 可視化 

在使用 AST 可視化還會(huì)呈現(xiàn)源代碼,在選擇其節(jié)點(diǎn)時(shí),還會(huì)突出顯示源代碼中的跨度。

Python 怎么解?

我們讀者最常用的就是 Python 語(yǔ)言,然而遺憾的是,Debug Visualizer 并不支持 Python 數(shù)據(jù)結(jié)構(gòu)的自動(dòng)可視化。不過(guò),Python 開發(fā)者還是非常熱情的,他們嘗試手動(dòng)添加自定義可視化功能。

項(xiàng)目維護(hù)者正在討論添加對(duì) Python 的支持

項(xiàng)目維護(hù)者正在討論添加對(duì) Python 的支持

那么如果要手動(dòng)調(diào)用 Debug Visualizer,開發(fā)者在 Demo 中新提交了一個(gè) Python 示例。我們需要以 JSON 格式來(lái)表示數(shù)據(jù),并完成自定義可視化,注意該 JSON 需要滿足 Debug Visualizer 的格式定義。

如果在循環(huán)語(yǔ)句中設(shè)置斷點(diǎn),那么就可以導(dǎo)入 json_graph 來(lái)可視化結(jié)果,如下所示為 10 個(gè)節(jié)點(diǎn)的可視化展示。

在 Reddit 社區(qū)上,也有很多開發(fā)者在討論 Python 是不是能用,有沒有更便捷的方式自動(dòng)可視化 DeBug,而不是在 DeBug 前還需要手動(dòng)先配置一番。

VS Code Debug Visualizer 確實(shí)非???,但支持 Python 的它會(huì)更有意思?,F(xiàn)在不論是項(xiàng)目維護(hù)者還是其它開發(fā)者,都在關(guān)注這個(gè)問(wèn)題,期待過(guò)一段時(shí)間它能完美支持 Python。

參考鏈接:https://www.reddit.com/r/programming/comments/f88zom/i_made_an_extension_for_visual_debugging_in_vs/

【本文是51CTO專欄機(jī)構(gòu)“機(jī)器之心”的原創(chuàng)譯文,微信公眾號(hào)“機(jī)器之心( id: almosthuman2014)”】 

戳這里,看該作者更多好文

 

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO專欄
相關(guān)推薦

2020-02-25 14:38:05

代碼開發(fā)工具

2018-01-02 11:13:20

數(shù)據(jù)可視化SupersetMetabase

2019-03-20 13:44:30

Web 開發(fā)代碼

2023-07-22 13:44:26

AI代碼

2024-08-20 14:31:16

2020-03-30 11:06:35

工具代碼開發(fā)

2023-04-14 08:21:55

2021-01-15 16:05:28

工具VS Code開發(fā)

2025-05-29 08:05:00

code2flowPython軟件開發(fā)

2022-05-24 15:03:44

開源工具可視化

2021-03-08 09:48:35

圖聚類Python可視化

2013-10-18 09:56:16

開源開源代碼

2020-03-11 14:39:26

數(shù)據(jù)可視化地圖可視化地理信息

2022-12-31 18:22:23

2011-04-12 10:59:33

HTML 5開源Maqetta

2011-05-11 15:41:53

HTML5

2020-11-15 18:00:49

開源可視化工具Python

2021-02-21 08:11:46

PythonDash工具

2021-03-31 13:28:17

開源工具Python編程語(yǔ)言

2017-04-19 08:32:50

大數(shù)據(jù)數(shù)據(jù)可視化編程工具
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)