作者:愛馬仕_人員
連結:https://www.jianshu.com/p/4d1a4606ef61
從手動編碼到自動化,從重復工作到創新,開發人員工具隨著技術的發展而不斷發展。阿裏巴巴集團和阿裏巴巴雲已透過開源釋出和基於雲的實施向公眾提供其技術。透過在各種業務場景中的多年開發積累了這些技術。本文介紹了一些阿裏巴巴開發人員工具,希望它們可以幫助您的開發過程更加高效和優雅。
鑒於開發人員可能參與的技術分支的多樣性,本文介紹了一些可能對後端開發人員有用的工具。
1.亞爾薩斯Java線上診斷工具
Arthas是一款用於Java應用程式的線上診斷工具,由阿裏巴巴於2018年9月開源。
典型場景:
您不知道從中載入類的特定JAR包。您想弄清楚為什麽您的系統會丟擲各種與類相關的異常。
您不知道為什麽修改後的程式碼無法執行。您不記得是否已送出更改。您不確定您是否使用正確的分支。
出現問題,您無法線上偵錯。您想知道是否必須將日誌添加到您的套用並再次釋出。
您遇到了使用者數據處理問題,但無法線上偵錯或離線重現問題。
您希望擁有一個全域檢視來監視系統的執行狀態。
您需要一個解決方案來監視JVM的即時執行狀態。
Arthas支持Java Development Kit(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是一個整合式開發環境(IDE)外掛程式,可用於幫助開發人員更有效地開發,測試,診斷和部署應用程式。Cloud Toolkit允許開發人員方便地將本地應用程式部署到任何電腦(本地或基於雲)。Cloud Toolkit內建了Arthas診斷工具,支持高效執行終端命令和SQL語句。CloudToolkit可用於不同的IDE,例如IntelliJ IDEA,Eclipse,PyCharm和Maven。
典型場景:
每次修改程式碼時,您都厭倦了反復打包程式碼。
您不希望經常在Maven和Git等程式碼管理工具之間來回切換。
您使用安全副本(SCP)工具上載檔,並使用XShell或SecureCRT登入到您的伺服器,替換部署包或重新啟動伺服器。
您不希望定期在各種FTP和SCP工具之間來回切換,以將檔上載到伺服器的指定目錄。
下載連結:https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit
3.ChaosBlade混沌工程故障註入工具
ChaosBlade是一個混沌工程工具,遵循混沌工程實驗的原則,並提供廣泛的故障場景,以幫助您提高分布式系統的容錯性和可恢復性。它可以註入潛在的故障,並提供各種故障情景。這些方案包括延遲,異常,返回特定值,修改參數值,重復呼叫和try-catch塊異常。
典型場景:
您發現很難測量微服務的容錯能力。
您不知道如何驗證容器編排配置的合理性。
您不知道如何實作PaaS層的健壯性測試。
GitHub頁面:https://github.com/chaosblade-io/chaosblade
4.阿裏巴巴Java編碼指南
此外掛程式檢測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.套用即時監控服務(ARMS)
ARMS是一種應用程式效能管理(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是一個開源靜態網站生成器,可幫助您構建自己的官方網站,文件中心,部落格站點和社群。它易於使用和上癮。它支持反應和靜態渲染,PC和移動客戶端,國際化,SEO,降價文件以及許多有用的功能,如全域站點搜尋,站點樣式自訂和頁面自訂。
教程:https://docsite.js.org/en-us/docs/installation.html
GitHub頁面:https://github.com/txd-team/docsite
7.Freeline - Android的二級編譯解決方案
Freeline緩存可重用的類檔和資源索引,並編譯程式碼更新並在幾秒鐘內將它們部署到您的裝置。這有效地減少了在日常開發期間重新編譯和安裝的大量時間。使用Freeline最方便的方法是直接安裝AndroidStudio外掛程式。
教程:https://github.com/alibaba/freeline/blob/master/README.md
GitHub頁面:https://github.com/alibaba/freeline
8.阿裏雲套用高可用性服務(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解析器。要處理3 MB Excel檔,Apache POI SAX解析器需要大約100 MB記憶體,而EasyExcel需要大約幾KB。此外,EasyExcel消除了記憶體(OOM)問題,無論excel檔有多大。對於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-object序列化/反序列化庫。
與其他流行的Swift JSON庫相比,HandyJSON支持純Swift類,易於使用。在反序列化中使用HandyJSON(將JSON轉換為模型)時,模型不必從NSObject繼承,因為HandyJSON不是基於KVC的。您也不必為模型定義對映函式。在定義模型類並聲明它遵循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.阿裏巴巴DragonwellJava開發套件
阿裏巴巴Dragonwell是阿裏巴巴/AlipayJDK(AJDK)的開源版本,是阿裏巴巴內部使用的客製OpenJDK。AJDK為線上電子商務,金融和物流應用程式進行了基於業務場景的最佳化。它一直在超大型阿裏巴巴數據中心執行,每個數據中心執行超過100,000台伺服器。阿裏巴巴Dragonwell相容Java SE標準。目前,它僅支持Linux x86_64平台。