阿里將自身在各類業(yè)務場景下的技術積淀蔓彩,通過開源恳守、云上實現(xiàn)或工具等形式對外開放,本文將精選了一些阿里巴巴的開發(fā)者工具砌们,希望能幫助開發(fā)者們提高開發(fā)效率馆衔、更優(yōu)雅的寫代碼。
由于開發(fā)者涉及的技術領域眾多怨绣,筆者僅從自己熟悉的領域角溃,以后端開發(fā)者的視角盤點平時可能用得到的工具。每個工具按照以下幾點進行介紹:
工具簡介
使用場景
使用教程
獲取方式
一篮撑、Java 線上診斷工具 Arthas
Arthas 阿里巴巴2018年9月開源的一款Java線上診斷工具减细。
工具的使用場景:
這個類從哪個 jar 包加載的?為什么會報各種類相關的 Exception赢笨?
我改的代碼為什么沒有執(zhí)行到未蝌?難道是我沒 commit?分支搞錯了茧妒?
遇到問題無法在線上 debug萧吠,難道只能通過加日志再重新發(fā)布嗎?
線上遇到某個用戶的數(shù)據(jù)處理有問題桐筏,但線上同樣無法 debug纸型,線下無法重現(xiàn)!
是否有一個全局視角來查看系統(tǒng)的運行狀況梅忌?
有什么辦法可以監(jiān)控到JVM的實時運行狀態(tài)狰腌?
Arthas支持JDK 6+,支持Linux/Mac/Windows牧氮,采用命令行交互模式琼腔,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷踱葛。
使用教程:
基礎教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics
?進階教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced
獲取方式:*(免費)*開源地址:https://github.com/alibaba/arthas
二丹莲、IDE 插件 Cloud Toolkit
Cloud Toolkit 是一款 IDE 插件光坝,可以幫助開發(fā)者更高效地開發(fā)、測試甥材、診斷并部署應用教馆。通過 Cloud Toolkit,開發(fā)者能夠方便地將本地應用一鍵部署到任意機器(本地或云端)擂达,并內(nèi)置 Arthas 診斷、高效執(zhí)行終端命令和 SQL 等胶滋,提供 IntelliJ IDEA 版板鬓,Eclipse 版,PyCharm 版和 Maven 版究恤。
工具的使用場景:
每次修改完代碼后俭令,是否正在經(jīng)歷反復地打包?
在 Maven 部宿、Git 以及其他運維腳本和工具的之間頻繁切換抄腔?
采用 SCP 工具上傳?使用XShell或SecureCRT登陸服務器理张?替換部署包赫蛇?重啟?
文件上傳到服務器指定目錄雾叭,在各種 FTP悟耘、SCP 工具之間頻繁切換 ?
使用教程:
IntelliJ IDEA版:https://help.aliyun.com/documentdetail/98762.htmlEclipse 版:https://help.aliyun.com/documentdetail/29970.htmlPyCharm 版:https://help.aliyun.com/documentdetail/112740.htmlMaven 版:https://help.aliyun.com/documentdetail/108682.html
獲取方式:*(免費)*
https://www.aliyun.com/product/cloudtoolkit
三织狐、混沌實驗注入工具 ChaosBlade
ChaosBlade 是一款遵循混沌工程實驗原理暂幼,提供豐富故障場景實現(xiàn),幫助分布式系統(tǒng)提升容錯性和可恢復性的混沌工程工具移迫,可實現(xiàn)底層故障的注入旺嬉,提供了延遲、異常厨埋、返回特定值邪媳、修改參數(shù)值、重復調(diào)用和try-catch 塊異常等異常場景荡陷。
工具的使用場景:
微服務的容錯能力不易衡量悲酷?
容器編排配置是否合理無法驗證?
PaaS 層健壯性的測試工作無從入手亲善?
使用教程:https://github.com/chaosblade-io/chaosblade/wiki/新手指南
獲取方式:*(免費)*
https://github.com/chaosblade-io/chaosblade/wiki/新手指南
四设易、Java 代碼規(guī)約掃描插件
該插件用于檢測 Java 代碼中存在的不規(guī)范的位置,并給予提示蛹头。規(guī)約插件是采用 Kotlin 語言開發(fā)顿肺。
使用教程:
https://github.com/alibaba/p3c/wiki/IDEA插件使用文檔
Eclipse插件使用文檔:
https://github.com/alibaba/p3c/wiki/Eclipse插件使用文檔
獲取方式:*(免費)*開源地址:https://github.com/alibaba/p3c
五戏溺、應用實時監(jiān)控工具 ARMS
ARMS 是一款 APM 類的監(jiān)控工具,提供前端屠尊、應用旷祸、自定義監(jiān)控 3 類監(jiān)控選項,可快速構建實時的應用性能和業(yè)務監(jiān)控能力讼昆。
工具的使用場景:
晚上10點收到37條報警信息托享,你卻無從下手?
當我們發(fā)現(xiàn)問題的時候浸赫,客戶/業(yè)務方已經(jīng)發(fā)起投訴闰围?
每個月花幾十萬買服務器,卻無法保障用戶體驗既峡?
使用教程:前端監(jiān)控接入:https://help.aliyun.com/documentdetail/106086.html 應用監(jiān)控接入:https://help.aliyun.com/documentdetail/63796.html自定義監(jiān)控:https://help.aliyun.com/document_detail/47474.html
獲取方式:(收費)
https://www.aliyun.com/product/arms
六羡榴、靜態(tài)開源站點搭建工具 Docsite
Docsite 一款集官網(wǎng)、文檔运敢、博客和社區(qū)為一體的靜態(tài)開源站點的解決方案校仑,具有簡單易上手、上手不撒手的特質(zhì)传惠,同時支持 react 和靜態(tài)渲染迄沫、PC端和移動端、支持中英文國際化卦方、SEO邢滑、markdown文檔、全局站點搜索愿汰、站點風格自定義困后、頁面自定義等功能。
使用教程:
https://docsite.js.org/zh-cn/docs/installation.html
獲取方式:(免費)
https://github.com/txd-team/docsite
七衬廷、Android 平臺上的秒級編譯方案 Freeline
Freeline 可以充分利用緩存文件摇予,在幾秒鐘內(nèi)迅速地對代碼的改動進行編譯并部署到設備上,有效地減少了日常開發(fā)中的大量重新編譯與安裝的耗時吗跋。Freeline 最快捷的使用方法就是直接安裝 Android Studio 插件侧戴。
使用教程:
https://github.com/alibaba/freeline/blob/master/README-zh.md
獲取方式:(免費)
https://github.com/alibaba/freeline
八、性能測試工具 PTS
PTS 可以模擬大量用戶訪問業(yè)務的場景跌宛,任務隨時發(fā)起酗宋,免去搭建和維護成本,支持 JMeter 腳本轉化為 PTS 壓測疆拘,同樣支持原生 JMeter 引擎進行壓測蜕猫。
使用教程:
https://help.aliyun.com/document_detail/70290.html
獲取方式:(收費)
?https://www.aliyun.com/product/pts
九、云效開發(fā)者工具KT
KT 可以簡化在 Kubernetes 下進行聯(lián)調(diào)測試的復雜度哎迄,提高基于Kubernetes的研發(fā)效率回右。
使用教程:https://yq.aliyun.com/articles/690519
獲取方式:(免費)
?工具地址:https://yq.aliyun.com/download/3393
十隆圆、架構可視化工具 AHAS
AHAS 為 K8s 等容器環(huán)境提供了架構可視化的功能,同時翔烁,具有故障注入式高可用能力評測和一鍵流控降級等功能渺氧,可以快速低成本的提升應用可用性。
工具的使用場景:
服務化改造過程中蹬屹,想精確的了解資源實例的構成和交互情況侣背,實現(xiàn)架構的可視化?
想引入真實的故障場景和演練模型慨默?
低門檻獲得流控贩耐、降級功能?
使用教程:
https://help.aliyun.com/document_detail/90323.html
獲取方式:(免費)
https://www.aliyun.com/product/ahas
十一业筏、數(shù)據(jù)處理工具 EasyExcel
EasyExcel 是一個用來對 Java 進行解析、生成Excel 的框架鸟赫,它重寫了 poi 對07版 Excel 的解析蒜胖,原本一個3M的 Excel 用POI sax需要100M左右內(nèi)存,EasyExcel可降低到 KB 級別抛蚤,并且再大的excel也不會出現(xiàn)內(nèi)存溢出的情況台谢。03版依賴 POI 的 sax 模式。在上層做了模型轉換的封裝岁经,讓使用者更加簡單方便朋沮。
使用教程:
https://github.com/alibaba/easyexcel/blob/master/quickstart.md
獲取方式:(開源)
https://github.com/alibaba/easyexcel
十二、iOS 類工具 HandyJSON
HandyJSON 是一個用于 Swift 語言中的JSON序列化/反序列化庫缀壤。
與其他流行的Swift JSON庫相比樊拓,HandyJSON 的特點是,它支持純 Swift 類塘慕,使用也簡單筋夏。它反序列化時(把 JSON 轉換為Model)不要求 Model從 NSObject 繼承(因為它不是基于 KVC 機制),也不要求你為 Model 定義一個 Mapping 函數(shù)图呢。只要你定義好 Model 類条篷,聲明它服從 HandyJSON 協(xié)議,HandyJSON 就能自行以各個屬性的屬性名為Key蛤织,從JSON串中解析值赴叹。
使用教程:https://github.com/alibaba/HandyJSON/blob/master/README_cn.md
獲取方式:(開源)
https://github.com/alibaba/HandyJSON
十三、云上資源和應用部署工具 EDAS?
Serverless
EDAS Serverless 一款基于 Kubernetes指蚜,面向應用和微服務的 Serverless 平臺乞巧。用戶無需管理和維護集群與服務器,即可通過鏡像摊鸡、WAR 包和JAR 包摊欠,快速創(chuàng)建原生支持 Kubernetes 的容器應用丢烘,同時支持 Spring Cloud 和 Dubbo 等主流微服務框架。
使用教程:
https://help.aliyun.com/document_detail/102048.html
獲取方式:(公測期間免費)https://help.aliyun.com/document_detail/97792.html
十四些椒、數(shù)據(jù)庫連接池 Druid
Druid 是 Java 語言下的數(shù)據(jù)庫連接池播瞳,它能夠提供強大的監(jiān)控和擴展功能。
使用教程:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98
獲取方式:(開源)
http://central.maven.org/maven2/com/alibaba/druid/
十五免糕、Java 工具集 Dragonwell
Alibaba Dragonwell 是阿里巴巴內(nèi)部OpenJDK定制版AJDK的開源版本赢乓, AJDK為在線電商,金融石窑,物流做了結合業(yè)務場景的優(yōu)化牌芋,運行在超大規(guī)模的,100,000+ 服務器的阿里巴巴數(shù)據(jù)中心松逊。Alibaba Dragonwell與Java SE標準兼容躺屁,目前僅支持 Linux/x86_64平臺。
使用教程:https://github.com/alibaba/dragonwell8/wiki/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Dragonwell8%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97
獲取方式:(開源)
https://github.com/alibaba/dragonwell8
-END-
看完本文有收獲经宏?請轉發(fā)分享給更多人
關注「java程序媛之家」犀暑,提升Java技能
【推薦閱讀】
趣說三次握手耐亏、四次揮手:遇到心動小姐姐,如何去把握沪斟?
來自:阿里巴巴中間件