摘要:阿里巴巴將自身在各類業務場景下的技術積澱,通過開源、雲上實現或工具等形式對外開放,本文將精選了一些阿里巴巴的開發者工具,希望能幫助開發者們提高開發效率、更優雅的寫代碼。工具的使用場景:。

從人工到自動化,從重複到創新,技術演進的歷程中,伴隨着開發者工具類產品的發展。

阿里巴巴將自身在各類業務場景下的技術積澱,通過開源、雲上實現或工具等形式對外開放,本文將精選了一些阿里巴巴的開發者工具,希望能幫助開發者們提高開發效率、更優雅的寫代碼。

阿里程序員常用的 15 款開發者工具,值得收藏

由於開發者涉及的技術領域衆多,筆者僅從自己熟悉的領域,以後端開發者的視角盤點平時可能用得到的工具。

每個工具按照以下幾點進行介紹:

  1. 工具名稱和簡介
  2. 使用場景


一、Java 線上診斷工具 Arthas

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

工具的使用場景:

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


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


二、IDE 插件 Cloud Toolkit

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

工具的使用場景:

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

三、混沌實驗注入工具 ChaosBlade

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

工具的使用場景:

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


四、Java 代碼規約掃描插件

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


五、應用實時監控工具 ARMS

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

工具的使用場景:

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


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

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

七、Android 平臺上的秒級編譯方案 Freeline

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

八、性能測試工具 PTS

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


九、雲效開發者工具K


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

十、架構可視化工具 AHAS

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

工具的使用場景:

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


十一、數據處理工具 EasyExcel

EasyExcel 是一個用來對 Java 進行解析、生成Excel 的框架,它重寫了 poi 對07版 Excel 的解析,原本一個3M的 Excel 用POI sax需要100M左右內存,EasyExcel可降低到 KB 級別,並且再大的excel也不會出現內存溢出的情況。03版依賴 POI 的 sax 模式。在上層做了模型轉換的封裝,讓使用者更加簡單方便。

十二、iOS 類工具 HandyJSON

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

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

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

十四、數據庫連接池 Druid

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

十五、Java 工具集 Dragonwell

Alibaba Dragonwell 是阿里巴巴內部OpenJDK定製版AJDK的開源版本, AJDK爲在線電商,金融,物流做了結合業務場景的優化,運行在超大規模的,100,000+ 服務器的阿里巴巴數據中心。Alibaba Dragonwell與Java SE標準兼容,目前僅支持 Linux/x86_64平臺。

相關文章