46

阿里提供的12种后端开发工具

 4 years ago
source link: https://www.tuicool.com/articles/vAnye2z
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

bA77Jz6.jpg!web

【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】


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK