從人工到自動(dòng)化,從重復(fù)到創(chuàng)新,在IT技術(shù)演進(jìn)的歷程中伴隨著開發(fā)者工具類產(chǎn)品的發(fā)展。本文總結(jié)了一些IT程序員常用的工具,希望以此幫助開發(fā)者們提高開發(fā)效率、更優(yōu)雅的寫代碼。由于開發(fā)者涉及的技術(shù)領(lǐng)域眾多,以后端開發(fā)者的視角盤點(diǎn)平時(shí)可能用得到的工具,介紹工具名稱及使用場景。
一、JAVA線上診斷工具Arthas
Arthas阿里巴巴2018年9月開源的一款Java線上診斷工具。
工具的使用場景:
1、這個(gè)類從哪個(gè)jar包加載的?為什么會(huì)報(bào)各種類相關(guān)的Exception?
2、我改的代碼為什么沒有執(zhí)行到?難道是我沒commit?分支搞錯(cuò)了?
3、遇到問題無法在線上的bug,難道只能通過加日志再重新發(fā)布嗎?
4、線上遇到某個(gè)用戶的數(shù)據(jù)處理有問題,但線上同樣無法debug,線下無法重現(xiàn)!
5、是否有一個(gè)全局視角來查看系統(tǒng)的運(yùn)行狀況?
6、有什么辦法可以監(jiān)控到JVM的實(shí)時(shí)運(yùn)行狀態(tài)?
Arthas支持JDK6+,支持linux/mac/windows,采用命令行交互模式,同時(shí)提供豐富的Tab自動(dòng)補(bǔ)全功能,進(jìn)一步方便進(jìn)行問題的定位和診斷。
二、IDE插件CloudToolkit
CloudToolkit是一款I(lǐng)DE插件,可以幫助開發(fā)者更高效地開發(fā)、測試、診斷并部署應(yīng)用。通過CloudToolkit,開發(fā)者能夠方便地將本地應(yīng)用一鍵部署到任意機(jī)器(本地或云端),并內(nèi)置Arthas診斷、高效執(zhí)行終端命令和SQL等,提供IntelliJIDEA版,Eclipse版,PyCharm版和Maven版。
工具的使用場景:
1、每次修改完代碼后,是否正在經(jīng)歷反復(fù)地打包?
2、在Maven、Git以及其他運(yùn)維腳本和工具的之間頻繁切換?
3、采用SCP工具上傳?使用XShell或SecureCRT登陸服務(wù)器?替換部署包?重啟?
4、文件上傳到服務(wù)器指定目錄,在各種FTP、SCP工具之間頻繁切換?
三、混沌實(shí)驗(yàn)注入工具ChaosBlade
ChaosBlade是一款遵循混沌工程實(shí)驗(yàn)原理,提供豐富故障場景實(shí)現(xiàn),幫助分布式系統(tǒng)提升容錯(cuò)性和可恢復(fù)性的混沌工程工具,可實(shí)現(xiàn)底層故障的注入,提供了延遲、異常、返回特定值、修改參數(shù)值、重復(fù)調(diào)用和try-catch塊異常等異常場景。
工具的使用場景:
1、微服務(wù)的容錯(cuò)能力不易衡量?
2、容器編排配置是否合理無法驗(yàn)證?
3、PaaS層健壯性的測試工作無從入手?
四、Java代碼規(guī)約掃描插件
該插件用于檢測Java代碼中存在的不規(guī)范的位置,并給予提示。規(guī)約插件是采用kotlin語言開發(fā)。
五、應(yīng)用實(shí)時(shí)監(jiān)控工具ARMS
ARMS是一款A(yù)PM類的監(jiān)控工具,提供前端、應(yīng)用、自定義監(jiān)控3類監(jiān)控選項(xiàng),可快速構(gòu)建實(shí)時(shí)的應(yīng)用性能和業(yè)務(wù)監(jiān)控能力。
工具的使用場景:
1、晚上10點(diǎn)收到37條報(bào)警信息,你卻無從下手?
2、當(dāng)我們發(fā)現(xiàn)問題的時(shí)候,客戶/業(yè)務(wù)方已經(jīng)發(fā)起投訴?
3、每個(gè)月花幾十萬買服務(wù)器,卻無法保障用戶體驗(yàn)?
以上內(nèi)容為大家盤點(diǎn)了IT程序員常用的工具,本文由多測師親自撰寫,希望對(duì)大家有所幫助。