從人工到自動(dòng)化裕照,從重復(fù)到創(chuàng)新,技術(shù)演進(jìn)的歷程中平匈,伴隨著開發(fā)者工具類產(chǎn)品的發(fā)展框沟。
阿里巴巴將自身在各類業(yè)務(wù)場(chǎng)景下的技術(shù)積淀,通過開源增炭、云上實(shí)現(xiàn)或工具等形式對(duì)外開放忍燥,本文將精選了一些阿里巴巴的開發(fā)者工具,希望能幫助開發(fā)者們提高開發(fā)效率隙姿、更優(yōu)雅的寫代碼梅垄。
由于開發(fā)者涉及的技術(shù)領(lǐng)域眾多,筆者僅從自己熟悉的領(lǐng)域,以后端開發(fā)者的視角盤點(diǎn)平時(shí)可能用得到的工具队丝。每個(gè)工具按照以下幾點(diǎn)進(jìn)行介紹:
工具名稱和簡介
使用場(chǎng)景
一靡馁、Java 線上診斷工具 Arthas
Arthas阿里巴巴2018年9月開源的一款Java線上診斷工具。
工具的使用場(chǎng)景:
這個(gè)類從哪個(gè) jar 包加載的机久?為什么會(huì)報(bào)各種類相關(guān)的 Exception臭墨?
我改的代碼為什么沒有執(zhí)行到?難道是我沒 commit膘盖?分支搞錯(cuò)了胧弛?
遇到問題無法在線上 debug,難道只能通過加日志再重新發(fā)布嗎侠畔?
線上遇到某個(gè)用戶的數(shù)據(jù)處理有問題结缚,但線上同樣無法 debug,線下無法重現(xiàn)软棺!
是否有一個(gè)全局視角來查看系統(tǒng)的運(yùn)行狀況红竭?
有什么辦法可以監(jiān)控到JVM的實(shí)時(shí)運(yùn)行狀態(tài)?
Arthas支持JDK 6+喘落,支持Linux/Mac/Windows茵宪,采用命令行交互模式,同時(shí)提供豐富的 Tab 自動(dòng)補(bǔ)全功能瘦棋,進(jìn)一步方便進(jìn)行問題的定位和診斷眉厨。
二、IDE 插件 Cloud Toolkit
Cloud Toolkit是一款 IDE 插件兽狭,可以幫助開發(fā)者更高效地開發(fā)憾股、測(cè)試、診斷并部署應(yīng)用箕慧。通過 Cloud Toolkit服球,開發(fā)者能夠方便地將本地應(yīng)用一鍵部署到任意機(jī)器(本地或云端),并內(nèi)置 Arthas 診斷颠焦、高效執(zhí)行終端命令和 SQL 等斩熊,提供 IntelliJ IDEA 版,Eclipse 版伐庭,PyCharm 版和 Maven 版粉渠。
工具的使用場(chǎng)景:
每次修改完代碼后,是否正在經(jīng)歷反復(fù)地打包圾另?
在 Maven 霸株、Git 以及其他運(yùn)維腳本和工具的之間頻繁切換?
采用 SCP 工具上傳集乔?使用XShell或SecureCRT登陸服務(wù)器去件?替換部署包?重啟?
文件上傳到服務(wù)器指定目錄尤溜,在各種 FTP倔叼、SCP 工具之間頻繁切換 ?
三宫莱、混沌實(shí)驗(yàn)注入工具 ChaosBlade
ChaosBlade是一款遵循混沌工程實(shí)驗(yàn)原理丈攒,提供豐富故障場(chǎng)景實(shí)現(xiàn),幫助分布式系統(tǒng)提升容錯(cuò)性和可恢復(fù)性的混沌工程工具授霸,可實(shí)現(xiàn)底層故障的注入肥印,提供了延遲、異常绝葡、返回特定值、修改參數(shù)值腹鹉、重復(fù)調(diào)用和try-catch 塊異常等異常場(chǎng)景藏畅。
工具的使用場(chǎng)景:
微服務(wù)的容錯(cuò)能力不易衡量?
容器編排配置是否合理無法驗(yàn)證功咒?
PaaS 層健壯性的測(cè)試工作無從入手愉阎?
四、Java 代碼規(guī)約掃描插件
該插件用于檢測(cè) Java 代碼中存在的不規(guī)范的位置力奋,并給予提示榜旦。規(guī)約插件是采用 Kotlin 語言開發(fā)。
五景殷、應(yīng)用實(shí)時(shí)監(jiān)控工具 ARMS
ARMS是一款 APM 類的監(jiān)控工具溅呢,提供前端、應(yīng)用猿挚、自定義監(jiān)控 3 類監(jiān)控選項(xiàng)咐旧,可快速構(gòu)建實(shí)時(shí)的應(yīng)用性能和業(yè)務(wù)監(jiān)控能力。
工具的使用場(chǎng)景:
晚上10點(diǎn)收到37條報(bào)警信息绩蜻,你卻無從下手铣墨?
當(dāng)我們發(fā)現(xiàn)問題的時(shí)候,客戶/業(yè)務(wù)方已經(jīng)發(fā)起投訴办绝?
每個(gè)月花幾十萬買服務(wù)器伊约,卻無法保障用戶體驗(yàn)?
六孕蝉、靜態(tài)開源站點(diǎn)搭建工具 Docsite
Docsite一款集官網(wǎng)屡律、文檔、博客和社區(qū)為一體的靜態(tài)開源站點(diǎn)的解決方案降淮,具有簡單易上手疹尾、上手不撒手的特質(zhì),同時(shí)支持 react 和靜態(tài)渲染、PC端和移動(dòng)端纳本、支持中英文國際化窍蓝、SEO、markdown文檔繁成、全局站點(diǎn)搜索吓笙、站點(diǎn)風(fēng)格自定義、頁面自定義等功能巾腕。
七面睛、Android 平臺(tái)上的秒級(jí)編譯方案 Freeline
Freeline可以充分利用緩存文件,在幾秒鐘內(nèi)迅速地對(duì)代碼的改動(dòng)進(jìn)行編譯并部署到設(shè)備上尊搬,有效地減少了日常開發(fā)中的大量重新編譯與安裝的耗時(shí)叁鉴。Freeline 最快捷的使用方法就是直接安裝 Android Studio 插件。
八佛寿、性能測(cè)試工具 PTS
PTS可以模擬大量用戶訪問業(yè)務(wù)的場(chǎng)景幌墓,任務(wù)隨時(shí)發(fā)起,免去搭建和維護(hù)成本冀泻,支持 JMeter 腳本轉(zhuǎn)化為 PTS 壓測(cè)常侣,同樣支持原生 JMeter 引擎進(jìn)行壓測(cè)。
九弹渔、云效開發(fā)者工具KT
KT 可以簡化在 Kubernetes 下進(jìn)行聯(lián)調(diào)測(cè)試的復(fù)雜度胳施,提高基于Kubernetes的研發(fā)效率。
十肢专、架構(gòu)可視化工具 AHAS
AHAS為 K8s 等容器環(huán)境提供了架構(gòu)可視化的功能舞肆,同時(shí),具有故障注入式高可用能力評(píng)測(cè)和一鍵流控降級(jí)等功能博杖,可以快速低成本的提升應(yīng)用可用性胆绊。
工具的使用場(chǎng)景:
服務(wù)化改造過程中,想精確的了解資源實(shí)例的構(gòu)成和交互情況欧募,實(shí)現(xiàn)架構(gòu)的可視化压状?
想引入真實(shí)的故障場(chǎng)景和演練模型?
低門檻獲得流控跟继、降級(jí)功能种冬?
十一、數(shù)據(jù)處理工具 EasyExcel
EasyExcel是一個(gè)用來對(duì) Java 進(jìn)行解析舔糖、生成Excel 的框架娱两,它重寫了 poi 對(duì)07版 Excel 的解析,原本一個(gè)3M的 Excel 用POI sax需要100M左右內(nèi)存金吗,EasyExcel可降低到 KB 級(jí)別十兢,并且再大的excel也不會(huì)出現(xiàn)內(nèi)存溢出的情況趣竣。03版依賴 POI 的 sax 模式。在上層做了模型轉(zhuǎn)換的封裝旱物,讓使用者更加簡單方便遥缕。
十二、iOS 類工具 HandyJSON
HandyJSON是一個(gè)用于 Swift 語言中的JSON序列化/反序列化庫宵呛。
與其他流行的Swift JSON庫相比单匣,HandyJSON 的特點(diǎn)是,它支持純 Swift 類宝穗,使用也簡單户秤。它反序列化時(shí)(把 JSON 轉(zhuǎn)換為Model)不要求 Model從 NSObject 繼承(因?yàn)樗皇腔?KVC 機(jī)制),也不要求你為 Model 定義一個(gè) Mapping 函數(shù)逮矛。只要你定義好 Model 類鸡号,聲明它服從 HandyJSON 協(xié)議,HandyJSON 就能自行以各個(gè)屬性的屬性名為Key须鼎,從JSON串中解析值鲸伴。
十三、云上資源和應(yīng)用部署工具 EDAS Serverless
EDAS Serverless一款基于 Kubernetes莉兰,面向應(yīng)用和微服務(wù)的 Serverless 平臺(tái)。用戶無需管理和維護(hù)集群與服務(wù)器礁竞,即可通過鏡像糖荒、WAR 包和JAR 包,快速創(chuàng)建原生支持 Kubernetes 的容器應(yīng)用模捂,同時(shí)支持 Spring Cloud 和 Dubbo 等主流微服務(wù)框架捶朵。
十四、數(shù)據(jù)庫連接池 Druid
Druid是 Java 語言下的數(shù)據(jù)庫連接池狂男,它能夠提供強(qiáng)大的監(jiān)控和擴(kuò)展功能综看。
十五、Java 工具集 Dragonwell
Alibaba Dragonwell是阿里巴巴內(nèi)部OpenJDK定制版AJDK的開源版本岖食, AJDK為在線電商红碑,金融,物流做了結(jié)合業(yè)務(wù)場(chǎng)景的優(yōu)化泡垃,運(yùn)行在超大規(guī)模的析珊,100,000+ 服務(wù)器的阿里巴巴數(shù)據(jù)中心。Alibaba Dragonwell與Java SE標(biāo)準(zhǔn)兼容蔑穴,目前僅支持 Linux/x86_64平臺(tái)忠寻。
讀者福利
怎么提高代碼質(zhì)量?——來自阿里P8架構(gòu)師的研發(fā)經(jīng)驗(yàn)總結(jié)
阿里P8分享Java架構(gòu)師的學(xué)習(xí)路線存和,第六點(diǎn)尤為重要
每個(gè)Java開發(fā)者應(yīng)該知道的八個(gè)工具
想面試Java架構(gòu)師奕剃?這些最基本的東西你都會(huì)了嗎衷旅?
畫個(gè)圖來找你的核心競(jìng)爭力,變中年危機(jī)為加油站
哪有什么中年危機(jī)纵朋,不過是把定目標(biāo)當(dāng)成了有計(jì)劃
被裁員不是寒冬重點(diǎn)柿顶,重點(diǎn)是怎么破解職業(yè)瓶頸
作者:Java_蘇先生
鏈接:http://www.reibang.com/p/bef5888d6865
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處倡蝙。