同事每天早下班,原來是用了這8個開發工具
引言
工欲善其事必先利其器,說的就是工匠要想更加高效的做事情,就得先將工具變得鋒利。那么對于程序員來說同樣也是如此,如果要想每天早點下班,就必須借助于一些開發工具來提高自己的工作效率,今天慕楓就給大家總結一些工作中常用到的工具。
Everything
不知道大家在日常工作中會不會遇到這樣的情況,每次找文件的時候總是為想不起來放在哪個目錄而抓狂,但是還好記得文件名字,而window自帶的文件搜索簡直慢的離譜,另外還經常出現搜索一個文件等了半天卻沒有這個文件的情況,簡直想吐血。如果有一款工具可以搜索本地所有的文件就好了,于是Everything應運而生。
Everything是一款Windows系統的文件搜索工具,通過它可以快速查找電腦中的文件以及文件位置,真正實現全盤搜索,而且它的體積也非常小,僅需要大約 14 MB 的內存以及不到 9 MB 的硬盤空間,搜索文件的效率大概在秒級,比windows自帶的文件搜索效率高出很多倍。可以說有了Everything就可以告別到處找文件的尷尬境地,實現文件快速定位,大幅度節約文件搜索時間。
Maven helper
平時我們在進行項目開發的時候,總是不可避免的引入第三方jar包來進行功能集成,但是引入的第三方包中會不會包含和項目中現有jar包存在版本沖突的jar包,實際上我們是不好進行判斷的。這就會導致經常出現jar包沖突導致的服務啟動失敗等異常問題,有的時候費了九牛二虎之力排查問題,結果發現只是小小的jar包版本沖突問題,非常浪費時間和精力。
而Maven Helper就是一款Java開發必不可少的Maven管理插件,沒有它之前我們需要人工手動的去分析jar包版本沖突,費時又費力,通過Maven Helper可以一鍵找到工程中相沖突的jar包,然后通過exclude將沖突的jar包進行排除,在對應的pom文件中會自動添加<exclusion>,如此我們可以快速地去除工程中的沖突的jar包,讓技術人員可以更加關注業務功能實現,盡可能的不被這些瑣事浪費時間。
ProcessOn
程序員在平時的工作中除了編碼實現之外,還包括了架構設計、編寫技術方案等。而無論是架構設計還是編寫技術方案,畫圖總是必不可少的,清晰明了的架構圖、流程圖、時序圖可以幫助我們更加直觀的理解業務邏輯以及架構原理。因此一款功能強大的畫圖軟件就顯得尤為重要了。
ProcessOn是一款功能十分強大的在線繪圖工具,支持流程圖、思維導圖、UML、網絡拓撲等多種結構圖形繪制,甚至還支持團隊協作繪制,另外由于它是在線繪圖工具,屏蔽了系統間使用差異,可以隨時隨地進行圖形繪制創作。在ProcessOn上面還囊括了海量的各行各業都可能用到的畫圖模板,有的時候自己沒有畫圖思路的時候完全可以借鑒模板中的畫圖結構。
Apipost
在程序員的日常工作中,接口聯調測試是最重要的研發工作之一,通過和別的同學進行聯調測試可以發現我們的接口定義問題、檢查接口調用的正確性等等。市面上的接口測試工具多入牛毛,但是都總覺得缺點意思,能測試接口的不能生成接口文檔,能生成接口文檔的不能進行性能測試,總之就是不能覆蓋程序員所有的接口開發使用場景。
而Apipost的出現完美解決了以上問題,官方宣稱Apipost = Postman + Swagger + Mock + Jmeter,,也就是說它將這幾個工具的能力都整合到了一起。實際上一言一概之,Apipost是API接口一攬子解決方案。通過它可以定義接口、共享接口、測試接口、Mock接口、生成文檔等等,基本覆蓋了和接口相關的所有研發場景。其中支持項目團隊中的接口共享我覺得是非常實用的一個能力,以前我們開發接口和別人對接的時候要么是接口文檔滿天飛傳來換取,要么是Swagger連接發來發去,而Apipost完美解決這些問題,錄入接口只有項目組的成員都可以看得到,同時還支持自動生成API文檔,不要太方便。
另外接口還支持查看接口狀態,主要包括開發中、已完成、需修改三種接口狀態,團隊中的前后端同事可以清晰明了的看到各個接口的實現狀態,方便大家及時了解各個接口開發進度。同時協作日志可以查看接口的修改記錄,非常實用。
MAT
內存溢出大概是程序員最不想遇到的線上異常,但是又不得不面對,因為內存溢出是非常典型的服務異常。快速的定位內存異常原因并進行修復,減少線上異常影響時間,是對程序員比較基本的技能要求。實際上在分析內存溢出的時候,我們可以借助于內存分析工具來進行,提高我們定位問題的效率。
MAT(Memory Analysis Tool)即內存分析工具,它可以幫助開發者分析Java應用的hprof崩潰文件,分析異常堆積對象快速找到內存泄漏的類及其對應的方法,方便技術人員定位分析內存泄漏問題。
Java Stream Debugger
在開發需求的時候,我們經常使用stream()流來簡化循環代碼,結合lambda表達式可以讓變得更加簡潔。但是有個問題一直困擾著技術人員就是stream()流內部不好進行debug,沒法查看其中的值循環操作情況,而Java Streanm Debugger可以幫助我們解析stream()流內部數據賦值情況,方便程序員查看各個值的執行流程以及數據最終結果。
Wireshark
Wireshark是一款網卡抓包分析工具,通過它可以抓取指定網卡的所有網路數據包。主要可以應用在分析網絡數據正確性、網絡底層通信機制以及到底是客戶端主動斷開連接還是服務端斷開等網絡數據分析的場景。
Arthas
Arthas是阿里巴巴開源的一款線上Java應用異常定位診斷工具,不需要重啟應用可以實現動態跟蹤java代碼,通過Arthas我們可以在線上實時查看應用內存、CPU占用等負載情況、JVM GC以及線程狀態信息等等,同時它還支持不必重啟服務在線進行代碼熱修改,這在定位線上問題測試修改后代碼的執行情況的場景下非常實用,大大提高了技術人員分析問題解決異常的效率。
Arthas啟動后可以attach到指定的java進程,以下便是Arthas啟動后的交互界面。
Arthas提供了豐富的命令交互,這里輸入dashboard命令,可以查看當前java應用的各個線程的cpu、運行狀態等信息,同時可以查看JVM中堆、年輕代、元空間以及老年代等區域的使用情況,方便我們理解java應用的內存垃圾回收情況。