【51CTO.com快译】无论是从手动编码到自动化开发,还是从重复劳动到改进创新,业界的开发工具一直在随着编程技术的发展而持续迭代。在此方面,阿里巴巴团队与阿里云平台通过以开源的方式,发布了各种基于云的应用。与此同时,他们也向公众提供了一系列经过了在各种业务场景中多年积累的技术实践。
考虑到开发人员涉猎技术的多样性,本文将向您主要介绍的是阿里开发团队常用的十二种后端工具,希望它们能够帮助您开发出更高效、更优雅的软件产品。
Arthas 是由阿里巴巴于2018年9月推出的针对Java应用程序的开源式在线诊断工具。
典型适用场景:
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
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。
典型适用场景:
下载链接: https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit
Chaosblade(https://github.com/chaosblade-io/chaosblade?spm=a2c41.12911801.0.0.57544839B5EtTB)是一种混沌工程类工具。它遵循了各种混沌工程的实验原则,并提供了广泛的故障场景,能帮助用户提高分布式系统的容错能力和可恢复性。它通过注入各种潜在的故障,来提供包括延迟、异常、返回特定值、修改参数值、重复调用、以及捕捉块异常等不同的故障方案。
典型适用场景:
GitHub页面: https://github.com/chaosblade-io/chaosblade
此插件能够检测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
ARMS(https://www.alibabacloud.com/product/arms?spm=a2c41.12911801.0.0.57544839B5EtTB)是一种应用程序性能管理(APM)工具。它通过提供三种监控选项:前端监控、应用程序监控和自定义监控,来帮助用户自行实现实时应用程序性能、以及业务监控功能。
典型适用场景:
应用程序监控集成: https://www.alibabacloud.com/help/doc-detail/63796.htm
自定义监控: https://www.alibabacloud.com/help/doc-detail/47474.htm
产品页面: https://www.alibabacloud.com/product/arms
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
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
AHAS提供了针对容器环境(如Kubernetes/K8s)的体系结构可视化、基于故障注入的高可用性评估、以及一键式限流和降级等,许多强大的功能。AHAS可帮助用户以低成本的方式,快速提高应用程序的可用性。
典型适用场景:
教程: https://www.alibabacloud.com/help/doc-detail/90323.htm
产品页面: https://www.alibabacloud.com/product/ahas
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
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
Druid可谓Java 语言中最好的数据库连接池,它提供了强大的监控和扩展功能。
教程: https://github.com/alibaba/druid/wiki/FAQ
GitHub 页面: https://github.com/alibaba/druid
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】