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