本期主要根據自己經驗給大家推薦在資料分析領域幾款
輕量小眾
,但
實用精悍
的工具。旨在幫助大家在工作學習當中
提高效率
。
1 線上診斷神器-Arthas
Arthas(阿爾薩斯) 是 Alibaba 開源的一款 Java 線上診斷工具。首先看看 Arthas 可以給你帶來什麼。
1-1 Arthas官網使用者文件
以上是官網的首頁介紹,簡單的話來說:就是在
不重啟應用的情況下達到排查問題的目的
。
工作內容會涉及到Java開發的同學會知道,當我們要釋出一個應用到線上環境時一般會經過一下幾個步驟:
編譯Java檔案成Class檔案
將編譯檔案打成Jar包
執行Jar包
在這個過程當中,不管公司是否搭建一套規範的釋出系統,從打包到釋出實際上都需要花費一定的時間。
對於Java使用還不是很熟練的同學將原生代碼打包釋出到線上然後發現問題後又下線修改再發布,消耗的時間實則更多。
因此在不重啟應用的情況下就排查到問題絕對是很多人的福音。
反編譯指定的類或方法
也許你經常會遇到這樣的問題:
重新發布了Java應用到線上,此時從日誌發現自己改的那行程式碼根本沒有達到效果。
你懷疑是不是因為幾分鐘之前因為臨時處理了另外一件事情,導致上傳線上的Jar包並不是之前自己打好的新包,還是延用的舊版本。
有Arthas之後,其實你在線上只需要
反編譯
一下對應的類即可。以Arthas自帶測試類為例:
1-2 Arthas-反編譯類
如上圖,
jad+類路徑
即可線上反編譯類,毋需再有擔心程式碼沒提交重新上下線應用的煩惱。
儀表盤
Arthas的簡單易用也體現在儀表盤。如下圖:
1-2 Arthas-儀表盤
輸入 dashboard(儀表板),就會展示當前程序的資訊
【1】第一部分時顯示 JVM中執行的所有執行緒:所在
執行緒組
,優先順序,執行緒的狀態,
CPU
佔有率,是否是後臺程序等;
【2】第二部分顯示的 JVM記憶體的使用情況;
【3】第三部分是作業系統的一些資訊和 Java版本號。
監視
Arthas用watch+包名。類名+方法+返回值(OGNL表示式)命令來監視數的返回值。
例輸入:watch demo。MathGame primeFactors returnObj。則返回如下圖:
1-3 Arthas-列表
透過watch可以實時觀察到我們關注的範圍:
返回值
、
丟擲異常
、
入參
。在問題復現排查等場景上作用頗大。
火焰圖
profiler 命令支援生成應用熱點的火焰圖。本質上是透過不斷的取樣,然後把收集到的取樣結果生成火焰圖。
命令基本執行結構是 profiler 命令 火焰圖可以直觀的分析程式碼佔用
cpu
,
記憶體
,
鎖爭用
的情況。
1-3 Arthas-火焰圖
如上圖,在效能分析過程中,透過火焰圖可以
輔助
自己對應用程式效能進行判斷,
定位
哪些地方還有最佳化的空間。
當然,Arthas支援的功能遠不止於此,大家有興趣可以透過官網(https://arthas。aliyun。com/)繼續探索。
2 跨平臺程式碼編輯器-Sublime Text
相信大家接觸也瞭解不少編輯器,比如EditPlus、UltraEdit、Notepad++等等。並且我一直用的是Notepad++,因為其輕便快捷一直吸引著我。
但直到我接觸到Sublime Text,便有
出類拔萃
的感覺。說不定經過我的推薦你也會忍不住趕緊上手試試。
風格
風格對於任何一個編輯器都相當重要。看上去簡潔大氣的編輯器一定會立馬吸引使用者的眼球。Sublime Text就是如此。
2-1 Sublime Text 介面
2-2 Notepad++ 介面
以上對比了Sublime Text和Notepad++的介面。可以看出來Sublime Text自帶的
深色風格
(也可以調成淺色)與Notepad++完全不同。
如果是一名程式設計師大機率會毫不猶豫的選擇Sublime Text的介面,因為你很少會看到一個程式設計師用的Idea或者Eclipse是淺色介面。更重要的一點是深色介面不會讓人容易產生疲憊感(個人觀點)。
基本編輯
作為一個編輯器,基本編輯功能自然要強大,Sublime Text就是如此。這裡例舉經常使用的編輯快捷鍵。
Ctrl + Enter 在當前行下面新增一行然後跳至該行
Ctrl + Shift + Enter 在當前行上面增加一行並跳至該行
Ctrl + ←/→ 進行逐詞移動,相應的,Ctrl + Shift + ←/→ 進行逐詞選擇
當然,Sublime Text的編輯快捷鍵遠不止如此,更多的好玩高效的快捷鍵需每個人根據自己實際慢慢發掘。
查詢&替換(Finding&Replacing)
Sublime Text 提供了強大的查詢(和替換)功能。
比如,我們需要查詢文中某個關鍵字出現的其它位置,這時並不需要重新將該關鍵字重新輸入一遍然後搜尋,我們只需要使用 Shift + ←/→ 或 Ctrl + D 選中關鍵字,然後 F3 跳到其下一個出現位置,然後快速替換。如圖:
2-3 Sublime Text 查詢&替換
當然我們也可以使用Alt + F3 選中其出現的
所有位置
然後快速替換。
跳轉
Sublime Text 提供了強大的跳轉功能使得我們可以在不同的
檔案
/
方法
/
函式
中無縫切換。而現在很難有一款編輯器可以在這個方面超越Sublime Text,如下:
跳轉到檔案
Ctrl + P 會列出當前開啟的檔案(或者是當前資料夾的檔案),輸入檔名然後 Enter 跳轉至該檔案。如下圖:
2-4 Sublime Text 跳轉到檔案
跳轉到符號
Sublime Text 能夠對程式碼符號進行一定程度的
索引
。Ctrl + R 會列出當前檔案中的符號(例如
類名
和
函式名
,但無法深入到變數名)。如下圖:
2-5 Sublime Text 跳轉到符號
跳轉到行數
當然你的程式碼或者SQL執行在別處報錯在多少行,你也可以利用Ctrl + G 然後輸入行號以跳轉到指定行,如下圖:
2-6 Sublime Text 跳轉到行數
Sublime Text的強大之處遠不止如此,包括它以
外掛
形式支援各種程式語言,自動補全,主題自定義,螢幕,視窗等都值得讀者慢慢探索。這裡就點到為止。
附上導讀文件地址:https://docs。sublimetext。io/guide/getting-started/installation。html。
3 檔案比較工具-Beyond Compare
初入程式設計領域的小夥伴經常會遇到諸如此類的問題:
按照前輩文件安裝元件,A同學元件正常執行,但是自己的元件頻繁報錯。究其原因是自己的配置檔案多了一個空格。
篇幅很長的兩段SQL指令碼需要找到異同之處,但是透過肉眼很難迅速區分。
Beyond Compare能幫忙你快速定位到關注的問題,如下圖:
3-1 Beyond Compare-文字比較示例
圖中是作者引用Kafka原始碼的MemoryPool類稍加修改,將文字檔案複製到Beyond Compare中進行比較。
如圖中標識的1,2,3處都是文字存在差異的地方,工具會識別
高亮
顯示。
1處主要的差異在大小寫,工具會判定為
不重要差異
,並把差異部分置為藍色;2處存在字元的不同,為
重要差異
,會被工具置紅色;而3處因為只是空格直接的區別,因此只會被判定為不重要差異。
當然這個工具還有其他的一些功能,如圖:
3-2 Beyond Compare首頁
當然筆者主要是在一些非常規程式碼場景下用到文字比較功能。其他功能或許可以幫忙讀者運用在其他場景當中,這裡就不做更多介紹。
4 截圖神器-Snipaste
截圖,是一個非常簡單但又非常難以做到令人滿意的需求。
如果只是單純的擷取螢幕上的內容,相信很多人會選擇Windows 自帶的 Snipping Tool 或者微信截圖。
但是Snipaste這個截圖工具說不定會給做資料同學帶來眼前一亮的感覺。
貼圖
利用Snipaste按下F1來開始截圖, 選擇“複製到剪貼簿”,再按F3,截圖就在桌面置頂顯示了。
4-1 Snipaste 截圖貼到螢幕上
圖中的截圖場景是在Excel的某個Sheet頁,左邊是Excel當中的資料,右邊是用Snipaste截圖並貼到螢幕。
這樣的使用場景對於資料分析同學不少,因為
資料來源
經常可能來自不同的地方,對於少量資料來源的對比,用Snipaste截圖進行對比非常適用。
當然Snipaste截圖的亮點在於可以
不斷貼
~
在做需求過程經常需要在讀需求,做資料對比不斷切換,就必然伴隨的不斷切換應用。
比如忘記需求則需要切換到Tapd上,對比不同資料引擎的計算結果時需要在兩個引擎中來回切換。這張場景Snipaste截圖可以幫你搞定
4-2 Snipaste 多截圖貼到螢幕上
如上圖,將需要的關鍵資訊用Snipaste不斷貼圖的方式統一放在同一畫面當中,便可輕鬆應對不斷需要頻繁切應用的煩惱。
標註工具
當然,Snipaste 在截圖後提供的
標註工具
也算得上全面而且強大。
它提供了非常豐富的標註型別,包括方框、橢圓框、連續線段、箭頭、畫筆、記號筆、文字、馬賽克、模糊等 9 種工具。
4-2 Snipaste標註|引用自官方
4-3 Snipaste標註|引用自官方
上面兩圖引自官方,可以說功能齊全,開發者花了很多心思。
Snipaste的
輕量級
以及
易上手
的特點也能立刻提升你的工作效率。有興趣的同學可以繼續探索,附上官網地址:https://www。snipaste。com/
5 搜尋引擎-Everything
正如所起的名字一樣,Everything是 Windows 上一款搜尋引擎,它能夠基於檔名
快速定位
檔案和資料夾位置。
不像 Windows 內建搜尋,“Everything” 預設顯示電腦上每個檔案和資料夾 (就如其名 “Everything”)。
做資料開發免不了跟Excel經常打交道,因為應對各業務端要資料是很常見的事情。
這對於經常忘記檔案地址苦於用Windows檔案系統內建搜尋的同學來說,絕對算是個福音。如圖:
5-1 Everything-全域性搜尋示例
Everything可以在秒級別內快速響應並輕鬆定位到你想要搜尋的文件。
Everything特點明顯
輕量安裝檔案
乾淨簡潔的使用者介面
快速檔案索引
快速搜尋
最小資源使用
便於檔案分享
實時更新
這裡也給出官網地址:https://www。voidtools。com/zh-cn/。供大家繼續探討。