阿里提供的12種常用后端開發(fā)工具
譯文【51CTO.com快譯】無論是從手動(dòng)編碼到自動(dòng)化開發(fā),還是從重復(fù)勞動(dòng)到改進(jìn)創(chuàng)新,業(yè)界的開發(fā)工具一直在隨著編程技術(shù)的發(fā)展而持續(xù)迭代。在此方面,阿里巴巴團(tuán)隊(duì)與阿里云平臺(tái)通過以開源的方式,發(fā)布了各種基于云的應(yīng)用。與此同時(shí),他們也向公眾提供了一系列經(jīng)過了在各種業(yè)務(wù)場景中多年積累的技術(shù)實(shí)踐。
考慮到開發(fā)人員涉獵技術(shù)的多樣性,本文將向您主要介紹的是阿里開發(fā)團(tuán)隊(duì)常用的十二種后端工具,希望它們能夠幫助您開發(fā)出更高效、更優(yōu)雅的軟件產(chǎn)品。
1. Arthas - Java在線診斷工具
Arthas是由阿里巴巴于2018年9月推出的針對Java應(yīng)用程序的開源式在線診斷工具。
典型適用場景:
- 并不知道某個(gè)特定JAR包是從哪個(gè)類被加載的,但又需要搞清楚為何自己的系統(tǒng)拋出了各種與類相關(guān)的異常。
 - 不清楚為何自己修改后的代碼無法被執(zhí)行;也不記得是否提交過哪些修改;或者不確定是否使用了正確的版本分支。
 - 面對出現(xiàn)的問題,無法進(jìn)行聯(lián)機(jī)調(diào)試;正在猶豫是否需要將各種日志添加到自己的應(yīng)用中,并再次發(fā)布。
 - 遇到了某個(gè)用戶數(shù)據(jù)處理的問題,但是無法進(jìn)行聯(lián)機(jī)調(diào)試、或予以脫機(jī)重現(xiàn)問題。
 - 希望通過全局視圖來監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)。
 - 需要使用一套解決方案,來監(jiān)控JVM的實(shí)時(shí)運(yùn)行狀態(tài)。
 
Arthas能夠支持Java開發(fā)工具包(JDK)6及更高的版本,同時(shí)也支持Linux、Mac和Windows。Arthas使用的是命令行交互模式,并允許用戶使用Tab鍵自動(dòng)完成命令行中的剩余字符,進(jìn)而使得問題的查找和診斷變得更加容易。
基礎(chǔ)教程: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)是一個(gè)集成式的開發(fā)環(huán)境(IDE)插件,可用于幫助開發(fā)人員更有效地開發(fā)、測試、診斷和部署應(yīng)用程序。Cloud Toolkit允許開發(fā)人員方便地將本地應(yīng)用程序部署到任何云端或本地主機(jī)上。Cloud Toolkit內(nèi)置了Arthas診斷工具,并支持高效地執(zhí)行各種終端命令和SQL語句。Cloud Toolkit適用于包括IntelliJ IDEA、Eclipse、PyCharm和Maven在內(nèi)的不同IDE。
典型適用場景:
- 針對每一次修改代碼,都需要反復(fù)打包。
 - 不希望定期在Maven和Git之類的代碼管理工具之間進(jìn)行來回切換。
 - 既可以使用安全復(fù)制(SCP)工具上傳文件,有能夠使用XShell或SecureCRT登錄到服務(wù)器上替換部署包、或是重新啟動(dòng)服務(wù)器。
 - 不希望為了將各種文件上傳到服務(wù)器的指定目錄,而定期在各種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)是一種混沌工程類工具。它遵循了各種混沌工程的實(shí)驗(yàn)原則,并提供了廣泛的故障場景,能幫助用戶提高分布式系統(tǒng)的容錯(cuò)能力和可恢復(fù)性。它通過注入各種潛在的故障,來提供包括延遲、異常、返回特定值、修改參數(shù)值、重復(fù)調(diào)用、以及捕捉塊異常等不同的故障方案。
典型適用場景:
- 難以測試各種微服務(wù)的容錯(cuò)能力。
 - 無法驗(yàn)證容器編排配置的合理性。
 - 不知如何實(shí)現(xiàn)PaaS層面上的魯棒性測試。
 
GitHub頁面:https://github.com/chaosblade-io/chaosblade
4. Alibaba Java Coding Guidelines - 編碼指南
此插件能夠檢測Java代碼中的編碼問題,并給用戶提供相應(yīng)的提示。它是基于Kotlin語言開發(fā)的。
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(應(yīng)用實(shí)時(shí)監(jiān)控服務(wù),ARMS)
ARMS(https://www.alibabacloud.com/product/arms?spm=a2c41.12911801.0.0.57544839B5EtTB)是一種應(yīng)用程序性能管理(APM)工具。它通過提供三種監(jiān)控選項(xiàng):前端監(jiān)控、應(yīng)用程序監(jiān)控和自定義監(jiān)控,來幫助用戶自行實(shí)現(xiàn)實(shí)時(shí)應(yīng)用程序性能、以及業(yè)務(wù)監(jiān)控功能。
典型適用場景:
- 例如:您在22:00收到了37條令人崩潰的錯(cuò)誤消息,卻不知從何下手。
 - 客戶或業(yè)務(wù)團(tuán)隊(duì)比您更早地發(fā)現(xiàn)了問題。
 - 雖然每個(gè)月在服務(wù)器上投入高達(dá)數(shù)萬元,但是仍然無法保證提供良好的用戶體驗(yàn)。
 
應(yīng)用程序監(jiān)控集成:https://www.alibabacloud.com/help/doc-detail/63796.htm
自定義監(jiān)控:https://www.alibabacloud.com/help/doc-detail/47474.htm
產(chǎn)品頁面:https://www.alibabacloud.com/product/arms
6. Docsite - 開源靜態(tài)網(wǎng)站生成器
Docsite(https://github.com/txd-team/docsite?spm=a2c41.12911801.0.0.57544839B5EtTB)是一種開源的靜態(tài)網(wǎng)站生成器。它能夠幫助用戶自行構(gòu)建官方網(wǎng)站、文檔中心、博客站點(diǎn)、以及相應(yīng)的社區(qū)。它不但簡單易用,而且能夠在PC和移動(dòng)端上支持多語言的界面交互、靜態(tài)渲染、SEO、標(biāo)記文檔。另外,它還具有諸如:全局網(wǎng)站搜索、網(wǎng)站樣式自定義、以及頁面定制等許多實(shí)用的功能。
教程: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)能夠緩存各種可重用類的文件和資源索引,通過編譯代碼的各類更新,它可以在幾秒鐘內(nèi)完成對于設(shè)備的部署。可見,F(xiàn)reeline有效地減少了用戶在日常開發(fā)過程中,花費(fèi)在重新編譯和安裝上的大量時(shí)間。另外,最方便使用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(阿里云應(yīng)用高可用性服務(wù),AHAS)
AHAS提供了針對容器環(huán)境(如Kubernetes/K8s)的體系結(jié)構(gòu)可視化、基于故障注入的高可用性評估、以及一鍵式限流和降級等,許多強(qiáng)大的功能。AHAS可幫助用戶以低成本的方式,快速提高應(yīng)用程序的可用性。
典型適用場景:
- 在重建服務(wù)時(shí),希望以可視化的體系結(jié)構(gòu)、精確地了解資源實(shí)例的組合和交互。
 - 需要提供真正的故障場景和發(fā)掘模型。
 - 希望以較低的成本實(shí)現(xiàn)限流和降級等功能。
 
教程:https://www.alibabacloud.com/help/doc-detail/90323.htm
產(chǎn)品頁面:https://www.alibabacloud.com/product/ahas
9. EasyExcel - 數(shù)據(jù)處理工具
EasyExcel是一個(gè)分析Java代碼、并生成對應(yīng)Excel文件的框架。它針對Microsoft Excel 2007重寫了Apache POI SAX分析器。一般而言,Apache POI SAX解析器需要使用大約100 MB的內(nèi)存,來處理3 MB大小的Excel文件;而EasyExcel只需要大約幾個(gè)KB。因此,無論Excel文件的體積如何,EasyExcel都能夠有效地消除內(nèi)存不足(out-of-memory,OOM)的問題。而對于Microsoft Excel 2003而言,EasyExcel也會(huì)使用到Apache POI SAX 解析器,不過為了方便使用,它封裝了上層的模型轉(zhuǎn)換器。
教程:https://github.com/alibaba/easyexcel/blob/master/quickstart.md
GitHub 頁面:https://github.com/alibaba/easyexcel
10. HandyJSON for iOS
HandyJSON是一個(gè)使用Swift語言編寫而成的json對象的序列化/反序列化庫。與其他流行的Swift JSON庫相比,HandyJSON不但易于被使用,而且支持完全的Swift類。當(dāng)您在反序列化中使用HandyJSON來將JSON轉(zhuǎn)換為模型時(shí),由于HandyJSON并不基于KVC,因此所產(chǎn)生的模型不必繼承NSObject。當(dāng)然,您也不必為模型定義任何映射函數(shù)。在您定義并聲明了遵循HandyJSON協(xié)議的模型類之后,HandyJSON會(huì)通過將屬性名稱作為鍵值,去自動(dòng)分析JSON字符串中的數(shù)值。
教程:https://github.com/alibaba/HandyJSON/blob/master/README.md
GitHub 頁面:https://github.com/alibaba/HandyJSON
11. Druid - 數(shù)據(jù)庫連接池
Druid可謂Java 語言中最好的數(shù)據(jù)庫連接池,它提供了強(qiáng)大的監(jiān)控和擴(kuò)展功能。
教程:https://github.com/alibaba/druid/wiki/FAQ
GitHub 頁面:https://github.com/alibaba/druid
12. Alibaba Dragonwell Java 開發(fā)套件
Alibaba Dragonwell是阿里團(tuán)隊(duì)內(nèi)部使用的開源版定制OpenJDK。AJDK對于在線電子商務(wù)、財(cái)務(wù)和物流等應(yīng)用,進(jìn)行了基于業(yè)務(wù)場景的優(yōu)化。它一直運(yùn)行在阿里的超大型數(shù)據(jù)中心之中,而每個(gè)數(shù)據(jù)中心都有超過10萬臺(tái)服務(wù)器。Alibaba Dragonwell符合Java SE的標(biāo)準(zhǔn)。不過,它目前只支持Linux x86_64的平臺(tái)。
教程:https://github.com/alibaba/dragonwell8/wiki/Alibaba-Dragonwell8-User-Guide
GitHub 頁面:https://github.com/alibaba/dragonwell8
原文標(biāo)題:12 Backend Development Tools by Alibaba,作者:Leona Zhang
【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請注明原文譯者和出處為51CTO.com】















 
 
 

 
 
 
 