12 Backend Development Tools by Alibaba

From manual coding to automation and from repeated work to innovation, developer tools have been evolving along with technologies. Alibaba Group and Alibaba Cloud have made its technologies available to public through open source release and cloud-based implementation. These technologies have been accumulated through years of development in various business scenarios. This article introduces some Alibaba developer tools in the hopes that they can help make your development process more efficient and graceful.

Given the vast diversity of technological branches that developers may engage in, this article introduces some tools that may be helpful for backend developers.

1. Arthas Java Online Diagnostic Tool

Arthas is an online diagnostic tool for Java applications open-sourced by Alibaba in September 2018.

Typical scenarios:

  • You do not know the specific JAR package from which a class was loaded. You want to figure out why your system throws various class-related exceptions.

Arthas supports Java Development Kit (JDK) 6 and later versions, and it supports Linux, Mac, and Windows. Arthas uses the command line interaction mode, and allows you to use Tab to autocomplete commands in the command line, making problem locating and diagnosis much easier.

Basic tutorial: https://alibaba.github.io/arthas/arthas-tutorials?language=en&id=arthas-basics

Advanced tutorial: https://alibaba.github.io/arthas/arthas-tutorials?language=en&id=arthas-advanced

GitHub page: https://github.com/alibaba/arthas

2. Cloud Toolkit IDE Plug-in

Cloud Toolkit is an integrated development environment (IDE) plug-in that can be used to help developers more efficiently develop, test, diagnose, and deploy applications. Cloud Toolkit allows developers to conveniently deploy local applications to any machines (on-premises or cloud-based). Cloud Toolkit is built-in with the Arthas diagnostic tool, and supports efficiently executing terminal commands and SQL statements. Cloud Toolkit is available for different IDEs such as IntelliJ IDEA, Eclipse, PyCharm, and Maven.

Typical scenarios:

  • You are tired of repeatedly packaging your code every time you modify it.

Download link: https://plugins.jetbrains.com/plugin/11386-alibaba-cloud-toolkit

3. ChaosBlade Chaos Engineering Fault Injection Tool

ChaosBlade is a chaos engineering tool that follows principles of chaos engineering experiments, and provides extensive fault scenarios to help you improve the fault tolerance and recoverability of distributed systems. It can inject underlying faults, and provides various fault scenarios. These scenarios include delays, exceptions, returning specific values, modification of parameter values, repeated calls, and try-catch block exceptions.

Typical scenarios:

  • You find it difficult to measure the fault tolerance capacity of microservices.

GitHub page: https://github.com/chaosblade-io/chaosblade

4. Alibaba Java Coding Guidelines

This plug-in detects coding problems in Java code, and gives you prompts. This plug-in was developed based on the Kotlin language.

IDEA plug-in usage instruction:

https://github.com/alibaba/p3c/tree/master/idea-plugin

Eclipse plug-in usage instruction: https://github.com/alibaba/p3c/tree/master/eclipse-plugin

GitHub page: https://github.com/alibaba/p3c

5. Application Real-Time Monitoring Service (ARMS)

ARMS is an application performance management (APM) tool. It offers three monitoring options: frontend monitoring, application monitoring, and custom monitoring to help you build up your own real-time application performance and business monitoring capability.

Typical scenarios:

  • You receive 37 alarming messages at 22:00, but you do not know where to start.

Application monitoring integration: https://www.alibabacloud.com/help/doc-detail/63796.htm

Custom monitoring: https://www.alibabacloud.com/help/doc-detail/47474.htm

Product page: https://www.alibabacloud.com/product/arms

6. Docsite Open-source Static Website Generator

Docsite is an open-source static website generator that helps you build your own official website, document center, blog site, and community. It is easy to use and addictive. It supports react and static rendering, PC and mobile clients, internationalization, SEO, markdown documents, and many useful features such as global site search, site style customization, and page customization.

Tutorial: https://docsite.js.org/en-us/docs/installation.html

GitHub page: https://github.com/txd-team/docsite

7. Freeline — A Second-Level Compilation Solution for Android

Freeline caches reusable class files and resource indices, and compiles code updates and deploys them to your device in seconds. This effectively reduces large amounts of time for recompilation and installation during daily development. The most convenient way to use Freeline is to directly install the Android Studio plug-in.

Tutorial: https://github.com/alibaba/freeline/blob/master/README.md

GitHub page: https://github.com/alibaba/freeline

8. Alibaba Cloud Application High Availability Service (AHAS)

AHAS provides many powerful features, such as architecture visualization for container environments such as Kubernetes (K8s), fault-injection-based high-availability evaluation, and one-click throttling and downgrade. AHAS helps you quickly improve application availability at low costs.

Typical scenarios:

  • When you reconstruct your service, you want to visualize the architecture to precisely understand the resource-instance composition and interaction.

Tutorial: https://www.alibabacloud.com/help/doc-detail/90323.htm

Product page: https://www.alibabacloud.com/product/ahas

9. EasyExcel Data Processing Tool

EasyExcel is a framework that parses Java code and generates excel files. It rewrites the Apache POI SAX parser for Microsoft Excel 2007. To process a 3 MB Excel file, the Apache POI SAX parser needs about 100 MB memory, while EasyExcel needs about several KB. In addition, EasyExcel eliminates the out-of-memory (OOM) problem, no matter how large the excel file is. For Microsoft Excel 2003, EasyExcel still uses the Apache POI SAX parser. But it encapsulates the model converter at the upper layer to make it easier to use.

Tutorial: https://github.com/alibaba/easyexcel/blob/master/quickstart.md

GitHub Page: https://github.com/alibaba/easyexcel

10. HandyJSON for iOS

HandyJSON is a json-object serialization/deserialization library written in Swift language.

Compared with other popular Swift JSON libraries, HandyJSON supports pure Swift classes and is easy to use. When you use HandyJSON in deserialization, which converts JSON to model, the model does not have to inherit from the NSObject, because HandyJSON is not KVC-based. You do not have to define a mapping function for the model either. After you define the model class and declare that it follows the HandyJSON protocol, HandyJSON automatically parses values from JSON strings by taking the property name as the key.

Tutorial: https://github.com/alibaba/HandyJSON/blob/master/README.md

GitHub page: https://github.com/alibaba/HandyJSON

11. Druid Database Connection Pool

Druid is the best database connection pool in the Java language, and it provides powerful monitoring and expansion capabilities.

Tutorial: https://github.com/alibaba/druid/wiki/FAQ

GitHub page: https://github.com/alibaba/druid

12. Alibaba Dragonwell Java Development Kit

Alibaba Dragonwell is the open-source version of Alibaba/AlipayJDK (AJDK), the customized OpenJDK used internally by Alibaba. AJDK has made business-scenario-based optimizations for online-ecommerce, finance, and logistics applications. It has been running in super large Alibaba data centers that run more than 100,000 servers each. Alibaba Dragonwell is compatible with the Java SE standard. Currently, it only supports the Linux x86_64 platform.

Tutorial: https://github.com/alibaba/dragonwell8/wiki/Alibaba-Dragonwell8-User-Guide

GitHub page: https://github.com/alibaba/dragonwell8

Reference:https://www.alibabacloud.com/blog/12-backend-development-tools-by-alibaba_594826?spm=a2c41.12911784.0.0

Follow me to keep abreast with the latest technology news, industry insights, and developer trends.