摘要:GitHub頁面: https://github.com/alibaba/arthas。GitHub 頁面: https://github.com/alibaba/easyexcel。

【51CTO.com快譯】無論是從手動編碼到自動化開發,還是從重複勞動到改進創新,業界的開發工具一直在隨着編程技術的發展而持續迭代。在此方面,阿里巴巴團隊與阿里雲平臺通過以開源的方式,發佈了各種基於雲的應用。與此同時,他們也向公衆提供了一系列經過了在各種業務場景中多年積累的技術實踐。

考慮到開發人員涉獵技術的多樣性,本文將向您主要介紹的是阿里開發團隊常用的十二種後端工具,希望它們能夠幫助您開發出更高效、更優雅的軟件產品。

1. Arthas - Java在線診斷工具

Arthas 是由阿里巴巴於2018年9月推出的針對Java應用程序的開源式在線診斷工具。

典型適用場景:

  • 並不知道某個特定JAR包是從哪個類被加載的,但又需要搞清楚爲何自己的系統拋出了各種與類相關的異常。
  • 不清楚爲何自己修改後的代碼無法被執行;也不記得是否提交過哪些修改;或者不確定是否使用了正確的版本分支。
  • 面對出現的問題,無法進行聯機調試;正在猶豫是否需要將各種日誌添加到自己的應用中,並再次發佈。
  • 遇到了某個用戶數據處理的問題,但是無法進行聯機調試、或予以脫機重現問題。
  • 希望通過全局視圖來監控系統的運行狀態。
  • 需要使用一套解決方案,來監控JVM的實時運行狀態。

Arthas能夠支持Java開發工具包(JDK)6及更高的版本,同時也支持Linux、Mac和Windows。Arthas使用的是命令行交互模式,並允許用戶使用Tab鍵自動完成命令行中的剩餘字符,進而使得問題的查找和診斷變得更加容易。

基礎教程: https://alibaba.github.io/arthas/arthas-tutorials?language=en&id=arthas-basics

高級教程: https://alibaba.github.io/arthas/arthas-tutorials?language=en&id=arthas-advanced

GitHub頁面: https://github.com/alibaba/arthas

2. Cloud Toolkit(雲工具包) - IDE插件

Cloud Toolkit(https://www.alibabacloud.com/help/doc-detail/98551.htm?spm=a2c41.12911801.0.0.57544839B5EtTB)是一個集成式的開發環境(IDE)插件,可用於幫助開發人員更有效地開發、測試、診斷和部署應用程序。Cloud Toolkit允許開發人員方便地將本地應用程序部署到任何雲端或本地主機上。Cloud Toolkit內置了Arthas診斷工具,並支持高效地執行各種終端命令和SQL語句。Cloud Toolkit適用於包括IntelliJ IDEA、Eclipse、PyCharm和Maven在內的不同IDE。

典型適用場景:

  • 針對每一次修改代碼,都需要反覆打包。
  • 不希望定期在Maven和Git之類的代碼管理工具之間進行來回切換。
  • 既可以使用安全複製(SCP)工具上傳文件,有能夠使用XShell或SecureCRT登錄到服務器上替換部署包、或是重新啓動服務器。
  • 不希望爲了將各種文件上傳到服務器的指定目錄,而定期在各種FTP和SCP工具之間來回切換。

下載鏈接: https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit

3. ChaosBlade - 混沌工程類故障注入工具

Chaosblade(https://github.com/chaosblade-io/chaosblade?spm=a2c41.12911801.0.0.57544839B5EtTB)是一種混沌工程類工具。它遵循了各種混沌工程的實驗原則,並提供了廣泛的故障場景,能幫助用戶提高分佈式系統的容錯能力和可恢復性。它通過注入各種潛在的故障,來提供包括延遲、異常、返回特定值、修改參數值、重複調用、以及捕捉塊異常等不同的故障方案。

典型適用場景:

  • 難以測試各種微服務的容錯能力。
  • 無法驗證容器編排配置的合理性。
  • 不知如何實現PaaS層面上的魯棒性測試。

GitHub頁面: https://github.com/chaosblade-io/chaosblade

4. Alibaba Java Coding Guidelines - 編碼指南

此插件能夠檢測Java代碼中的編碼問題,並給用戶提供相應的提示。它是基於Kotlin語言開發的。

IDEA插件的使用說明: https://github.com/alibaba/p3c/tree/master/idea-plugin

Eclipse插件的使用說明: https://github.com/alibaba/p3c/tree/master/eclipse-plugin

GitHub頁面: https://github.com/alibaba/p3c

5. Application Real-Time Monitoring Service(應用實時監控服務,ARMS)

ARMS(https://www.alibabacloud.com/product/arms?spm=a2c41.12911801.0.0.57544839B5EtTB)是一種應用程序性能管理(APM)工具。它通過提供三種監控選項:前端監控、應用程序監控和自定義監控,來幫助用戶自行實現實時應用程序性能、以及業務監控功能。

典型適用場景:

  • 例如:您在22:00收到了37條令人崩潰的錯誤消息,卻不知從何下手。
  • 客戶或業務團隊比您更早地發現了問題。
  • 雖然每個月在服務器上投入高達數萬元,但是仍然無法保證提供良好的用戶體驗。

應用程序監控集成: https://www.alibabacloud.com/help/doc-detail/63796.htm

自定義監控: https://www.alibabacloud.com/help/doc-detail/47474.htm

產品頁面: https://www.alibabacloud.com/product/arms

6. Docsite - 開源靜態網站生成器

Docsite(https://github.com/txd-team/docsite?spm=a2c41.12911801.0.0.57544839B5EtTB)是一種開源的靜態網站生成器。它能夠幫助用戶自行構建官方網站、文檔中心、博客站點、以及相應的社區。它不但簡單易用,而且能夠在PC和移動端上支持多語言的界面交互、靜態渲染、SEO、標記文檔。另外,它還具有諸如:全局網站搜索、網站樣式自定義、以及頁面定製等許多實用的功能。

教程: https://docsite.js.org/en-us/docs/installation.html

GitHub頁面: https://github.com/txd-team/docsite

7. Freeline - Second-Level Compilation Solution for Android

Freeline(https://github.com/alibaba/freeline?spm=a2c41.12911801.0.0.57544839B5EtTB)能夠緩存各種可重用類的文件和資源索引,通過編譯代碼的各類更新,它可以在幾秒鐘內完成對於設備的部署。可見,Freeline有效地減少了用戶在日常開發過程中,花費在重新編譯和安裝上的大量時間。另外,最方便使用Freeline的方法是直接安裝 Android Studio的插件。

教程: https://github.com/alibaba/freeline/blob/master/README.md

GitHub 頁面: https://github.com/alibaba/freeline

8. Alibaba Cloud Application High Availability Service(阿里雲應用高可用性服務,AHAS)

AHAS提供了針對容器環境(如Kubernetes/K8s)的體系結構可視化、基於故障注入的高可用性評估、以及一鍵式限流和降級等,許多強大的功能。AHAS可幫助用戶以低成本的方式,快速提高應用程序的可用性。

典型適用場景:

  • 在重建服務時,希望以可視化的體系結構、精確地瞭解資源實例的組合和交互。
  • 需要提供真正的故障場景和發掘模型。
  • 希望以較低的成本實現限流和降級等功能。

教程: https://www.alibabacloud.com/help/doc-detail/90323.htm

產品頁面: https://www.alibabacloud.com/product/ahas

9. EasyExcel - 數據處理工具

EasyExcel是一個分析Java代碼、並生成對應Excel文件的框架。它針對Microsoft Excel 2007重寫了Apache POI SAX分析器。一般而言,Apache POI SAX解析器需要使用大約100 MB的內存,來處理3 MB大小的Excel文件;而EasyExcel只需要大約幾個KB。因此,無論Excel文件的體積如何,EasyExcel都能夠有效地消除內存不足(out-of-memory,OOM)的問題。而對於Microsoft Excel 2003而言,EasyExcel也會使用到Apache POI SAX 解析器,不過爲了方便使用,它封裝了上層的模型轉換器。

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

GitHub 頁面: https://github.com/alibaba/easyexcel

10. HandyJSON for iOS

HandyJSON是一個使用Swift語言編寫而成的json對象的序列化/反序列化庫。與其他流行的Swift JSON庫相比,HandyJSON不但易於被使用,而且支持完全的Swift類。當您在反序列化中使用HandyJSON來將JSON轉換爲模型時,由於HandyJSON並不基於KVC,因此所產生的模型不必繼承NSObject。當然,您也不必爲模型定義任何映射函數。在您定義並聲明瞭遵循HandyJSON協議的模型類之後,HandyJSON會通過將屬性名稱作爲鍵值,去自動分析JSON字符串中的數值。

教程: https://github.com/alibaba/HandyJSON/blob/master/README.md

GitHub 頁面: https://github.com/alibaba/HandyJSON

11. Druid - 數據庫連接池

Druid可謂Java 語言中最好的數據庫連接池,它提供了強大的監控和擴展功能。

教程: https://github.com/alibaba/druid/wiki/FAQ

GitHub 頁面: https://github.com/alibaba/druid

12. Alibaba Dragonwell Java 開發套件

Alibaba Dragonwell是阿里團隊內部使用的開源版定製OpenJDK。AJDK對於在線電子商務、財務和物流等應用,進行了基於業務場景的優化。它一直運行在阿里的超大型數據中心之中,而每個數據中心都有超過10萬臺服務器。Alibaba Dragonwell符合Java SE的標準。不過,它目前只支持Linux x86_64的平臺。

教程: https://github.com/alibaba/dragonwell8/wiki/Alibaba-Dragonwell8-User-Guide

GitHub 頁面: https://github.com/alibaba/dragonwell8

原文標題:12 Backend Development Tools by Alibaba,作者:Leona Zhang

【51CTO譯稿,合作站點轉載請註明原文譯者和出處爲51CTO.com】

【責任編輯:龐桂玉 TEL:(010)68476606】

相關文章