阿里程式設計師常用的15個高效工具,大部分已開源

2019-10-11     指尖上的代碼

如何提高開發效率,更優雅的寫代碼?

當然是藉助一些實用的開發工具啦!今天,小千精選了15個阿里巴巴的開發者工具,希望對同學們有所幫助。

1、Java線上診斷工具Arthas

Arthas:阿里巴巴2018年9月開源的一款Java線上診斷工具。

工具的使用場景

  • 這個類從哪個 jar 包加載的?為什麼會報各種類相關的 Exception?
  • 我改的代碼為什麼沒有執行到?難道是我沒 commit?分支搞錯了?
  • 遇到問題無法在線上 debug,難道只能通過加日誌再重新發布嗎?
  • 線上遇到某個用戶的數據處理有問題,但線上同樣無法 debug,線下無法重現!
  • 是否有一個全局視角來查看系統的運行狀況?
  • 有什麼辦法可以監控到JVM的實時運行狀態?

使用教程

基礎教程:

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

Arthas支持JDK 6+,支持Linux/Mac/Windows,採用命令行交互模式,同時提供豐富的 Tab 自動補全功能,進一步方便進行問題的定位和診斷。

2、IDE插件 Cloud Toolkit

Cloud Toolkit是一款IDE插件,可以幫助開發者更高效地開發、測試、診斷並部署應用。

通過Cloud Toolkit,開發者能夠方便地將本地應用一鍵部署到任意機器(本地或雲端),並內置Arthas診斷、高效執行終端命令和SQL等,提供IntelliJ IDEA版,Eclipse版,PyCharm 版和Maven版。

工具的使用場景

  • 每次修改完代碼後,是否正在經歷反覆地打包?
  • 在 Maven 、Git 以及其他運維腳本和工具的之間頻繁切換?
  • 採用 SCP 工具上傳?使用XShell或SecureCRT登陸伺服器?替換部署包?重啟?
  • 文件上傳到伺服器指定目錄,在各種 FTP、SCP 工具之間頻繁切換 ?

使用教程

IntelliJ IDEA版:

https://help.aliyun.com/documentdetail/98762.html

Eclipse 版:

https://help.aliyun.com/documentdetail/29970.html

PyCharm 版:

https://help.aliyun.com/documentdetail/112740.html

Maven 版:

https://help.aliyun.com/documentdetail/108682.html

獲取方式:*(免費)*

https://www.aliyun.com/product/cloudtoolkit

3、混沌實驗注入工具 ChaosBlade

ChaosBlade 是一款遵循混沌工程實驗原理,提供豐富故障場景實現,幫助分布式系統提升容錯性和可恢復性的混沌工程工具,可實現底層故障的注入,提供了延遲、異常、返回特定值、修改參數值、重複調用和try-catch 塊異常等異常場景。

工具的使用場景

  • 微服務的容錯能力不易衡量?
  • 容器編排配置是否合理無法驗證?
  • PaaS 層健壯性的測試工作無從入手?

使用教程

https://github.com/chaosblade-io/chaosblade/wiki/新手指南

獲取方式:*(免費)*

https://github.com/chaosblade-io/chaosblade/wiki/新手指南

4、Java代碼規約掃描插件

該插件用於檢測Java代碼中存在的不規範的位置,並給予提示。規約插件是採用 Kotlin 語言開發。

使用教程

https://github.com/alibaba/p3c/wiki/IDEA插件使用文檔

Eclipse插件使用文檔

https://github.com/alibaba/p3c/wiki/Eclipse插件使用文檔

獲取方式:*(免費)*

開源地址:https://github.com/alibaba/p3c

5、應用實時監控工具 ARMS

ARMS是一款APM類的監控工具,提供前端、應用、自定義監控 3 類監控選項,可快速構建實時的應用性能和業務監控能力。

工具的使用場景

  • 晚上10點收到37條報警信息,你卻無從下手?
  • 當我們發現問題的時候,客戶/業務方已經發起投訴?
  • 每個月花幾十萬買伺服器,卻無法保障用戶體驗?

使用教程

前端監控接入:

https://help.aliyun.com/documentdetail/106086.html

應用監控接入:https://help.aliyun.com/documentdetail/63796.html

自定義監控:https://help.aliyun.com/document_detail/47474.html

獲取方式:(收費)

https://www.aliyun.com/product/arms

6、靜態開源站點搭建工具Docsite

Docsite是一款集官網、文檔、博客和社區為一體的靜態開源站點的解決方案,具有簡單易上手、上手不撒手的特質,同時支持react和靜態渲染、PC端和移動端、支持中英文國際化、SEO、markdown文檔、全局站點搜索、站點風格自定義、頁面自定義等功能。

使用教程

https://docsite.js.org/zh-cn/docs/installation.html

獲取方式:(免費)

https://github.com/txd-team/docsite

7、Android 平台上的秒級編譯方案Freeline

Freeline可以充分利用緩存文件,在幾秒鐘內迅速地對代碼的改動進行編譯並部署到設備上,有效地減少了日常開發中的大量重新編譯與安裝的耗時。Freeline最快捷的使用方法就是直接安裝 Android Studio 插件。

使用教程:

https://github.com/alibaba/freeline/blob/master/README-zh.md

獲取方式:(免費)

https://github.com/alibaba/freeline

8、性能測試工具PTS

PTS可以模擬大量用戶訪問業務的場景,任務隨時發起,免去搭建和維護成本,支持JMeter 腳本轉化為PTS壓測,同樣支持原生JMeter引擎進行壓測。

使用教程:

https://help.aliyun.com/document_detail/70290.html

獲取方式:(收費)

https://www.aliyun.com/product/pts

9、雲效開發者工具KT

KT可以簡化在Kubernetes下進行聯調測試的複雜度,提高基於Kubernetes的研發效率。

使用教程:

https://yq.aliyun.com/articles/690519

獲取方式:(免費)

工具地址:https://yq.aliyun.com/download/3393

10、架構可視化工具AHAS

AHAS為K8s等容器環境提供了架構可視化的功能,同時,具有故障注入式高可用能力評測和一鍵流控降級等功能,可以快速低成本的提升應用可用性。

工具的使用場景

  • 服務化改造過程中,想精確的了解資源實例的構成和交互情況,實現架構的可視化?
  • 想引入真實的故障場景和演練模型?
  • 低門檻獲得流控、降級功能?

使用教程:

https://help.aliyun.com/document_detail/90323.html

獲取方式:(免費)

https://www.aliyun.com/product/ahas

11、數據處理工具EasyExcel

EasyExcel是一個用來對Java進行解析、生成Excel的框架,它重寫了poi對07版Excel的解析,原本一個3M的Excel用POI sax需要100M左右內存,EasyExcel可降低到KB級別,並且再大的excel也不會出現內存溢出的情況。

03版依賴POI的sax模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。

使用教程:

https://github.com/alibaba/easyexcel/blob/master/quickstart.md

獲取方式:(開源)

https://github.com/alibaba/easyexcel

12、iOS 類工具HandyJSON

HandyJSON是一個用於Swift語言中的JSON序列化/反序列化庫。

與其他流行的Swift JSON庫相比,HandyJSON的特點是,它支持純Swift類,使用也簡單。它反序列化時(把JSON轉換為Model)不要求Model從NSObject繼承(因為它不是基於KVC機制),也不要求你為Model定義一個Mapping函數。只要你定義好 Model類,聲明它服從HandyJSON協議,HandyJSON就能自行以各個屬性的屬性名為Key,從JSON串中解析值。

使用教程:

https://github.com/alibaba/HandyJSON/blob/master/README_cn.md

獲取方式:(開源)

https://github.com/alibaba/HandyJSON

13、雲上資源和應用部署工具EDAS Serverless

EDAS Serverless是一款基於Kubernetes,面向應用和微服務的Serverless平台。用戶無需管理和維護集群與伺服器,即可通過鏡像、WAR 包和JAR 包,快速創建原生支持Kubernetes 的容器應用,同時支持Spring Cloud和Dubbo等主流微服務框架。

使用教程:

https://help.aliyun.com/document_detail/102048.html

獲取方式:(公測期間免費)

https://help.aliyun.com/document_detail/97792.html

14、資料庫連接池Druid

Druid是Java語言下的資料庫連接池,它能夠提供強大的監控和擴展功能。

使用教程:

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/

15、Java工具集Dragonwell

Alibaba Dragonwell是阿里巴巴內部OpenJDK定製版AJDK的開源版本,AJDK為在線電商、金融、物流等行業做了結合業務場景的優化,運行在超大規模的,100,000+ 伺服器的阿里巴巴數據中心。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

關注「重慶千鋒」公眾號,搶先預約14天免費試聽課,體驗名師面授教學,多項目實操,真技能,真高薪。

文章來源: https://twgreatdaily.com/zh-mo/J3CevG0BMH2_cNUgJr4e.html