Java程式設計師常用工具集

rayner發表於2015-11-01

我發現很多人沒辦法高效地解決問題的關鍵原因是不熟悉工具,不熟悉工具也還罷了,甚至還不知道怎麼去找工具,這個問題就大條了。我想列下我能想到的一個Java程式設計師會用到的常用工具。

一、編碼工具

1.IDE:Eclipse或者IDEA,熟悉儘可能多的快捷鍵,《Eclipse常見快捷鍵列表
2.外掛: 
(1) Findbugs,在release之前進行一次靜態程式碼檢查是必須的
(2) Clover,關心你的單元測試覆蓋率
(3) Checkstyle 程式碼風格檢查

3.構建和部署工具:ant或者maven,現在主流都是maven了吧,使用nexus搭建maven私服,再加上持續整合jenkins。程式碼質量不用愁。

4.版本管理工具: svn或者git

5.diff和patch

6.設定你的eclipse或者IDEA,如formatter,save actions以及code template等。程式碼風格,直接用google的也可以啊。《Google style guide

7.掌握一個文字編輯器,Emacs或者VIM,熟悉常用快捷鍵。這在你需要線上編輯程式碼,或者編寫其他語言程式碼時候特別有用。《神器聖戰

二、JDK相關

1.jstat : 觀察GC情況,如:

jstat -gcutil pid 2000


2.jmap,檢視heap情況,如檢視存活物件列表:

jmap -histo:live pid |grep com.company |less 


或者dump記憶體用來分析:

jmap -dump:file=test.bin pid


3.分析dump的堆檔案,可以用jhat:

jhat test.bin


  分析完成後可以用瀏覽器檢視堆的情況。這個工具的分析結果還比較原始,你還可以用Eclipse MAT外掛進行圖形化分析,或者IBM的Heap Analyzer.

4.jvisualvm和jconsole: JVM自帶的效能分析和監控工具,怎麼用?請自己看文件。

5.jstack:分析執行緒堆疊,如

jstack pid > thread_dump


    檢視CPU最高的執行緒在幹什麼的方法結合top和jstack:http://www.iteye.com/topic/1114219

6.更多JVM工具,參見官方文件:http://docs.oracle.com/javase/6/docs/technotes/tools/

7.學習使用btrace分析java執行時問題。《Btrace使用簡介

8.GC日誌分析工具:GC viewerGC-console或者自己挑吧。

9.效能分析工具,除了自帶的jvisualvm外,還可以用商業的jprofiler

10.JVM引數大全

11.《JVM調優標準引數陷阱》,iteye神貼。

三、Linux工具

1.熟悉常用的shell命令,

 

3.使用htop替換top。

4.熟悉下strace,gdb甚至systemtap來分析問題。

5.熟悉vmstat,iostat,sar等效能統計工具。

5.自動化部署指令碼,py-fabric或者自薦下我的clojure-control

四、其他

1.掌握一門指令碼語言,Python或者Ruby,高效解決一些需要quick and dirty的任務:比如讀寫檔案、匯入匯出資料庫、網頁爬蟲等。注意不是python.com,咔咔。

2.使用Linux或者Mac os系統作為你的開發環境。

3.升級你的“硬體工具”,雙屏大屏顯示器、SSD、8G記憶體甚至更多。

4.你懂的:https://code.google.com/p/goagent/

五、如何查詢工具?

1.搜尋引擎,google或者baidu,《搜尋技巧

2.萬能的stack overflow:http://stackoverflow.com/

3.虛心問牛人。

六、最重要的是⋯⋯

一顆永不停止學習的心。


相關文章