第九期: 阿里巴巴程序员常用的15款开发者工具

阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。

 

阿里巴巴程序员常用的15款开发者工具

从人工到自动化,从重复到创新,技术演进的历程中,伴随着开发者工具类产品的发展。

阿里巴巴将自身在各类业务场景下的技术积淀,通过开源、云上实现或工具等形式对外开放,本文将精选了一些阿里巴巴的开发者工具,希望能帮助开发者们提高开发效率、更优雅的写代码。

由于开发者涉及的技术领域众多,笔者仅从自己熟悉的领域,以后端开发者的视角盘点平时可能用得到的工具。每个工具按照以下几点进行介绍:

  • 工具名称和简介
  • 使用场景
  • 使用教程
  • 获取方式

一、Java 线上诊断工具 Arthas

Arthas 是阿里巴巴 2018 年 9 月开源的一款 Java 线上诊断工具。

工具的使用场景:

  • 这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?
  • 我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?
  • 遇到问题无法在线上 debug,难道只能通过加日志再重新发布吗?
  • 线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!
  • 是否有一个全局视角来查看系统的运行状况?
  • 有什么办法可以监控到 JVM 的实时运行状态?

Arthas 支持 JDK 6+,支持 Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断。

使用教程:

  • 基础教程: https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics 
  • 进阶教程: https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-advanced

获取方式:(开源)
开源地址: https://github.com/alibaba/arthas

开发者交流群号:21965291(钉群)

二、IDE 插件 Cloud Toolkit

Cloud Toolkit 是一款 IDE 插件,可以帮助开发者更高效地开发、测试、诊断并部署应用。通过 Cloud Toolkit,开发者能够方便地将本地应用一键部署到任意机器(本地或云端),并内置 Arthas 诊断、高效执行终端命令和 SQL 等,提供 IntelliJ IDEA 版,Eclipse 版,PyCharm 版和 Maven 版。

工具的使用场景:

  • 每次修改完代码后,是否正在经历反复地打包?
  • 在 Maven 、Git 以及其他运维脚本和工具的之间频繁切换?
  • 采用 SCP 工具上传?使用 XShell 或 SecureCRT 登录服务器?替换部署包?重启?
  • 文件上传到服务器指定目录,在各种 FTP、SCP 工具之间频繁切换 ?

使用教程:

  • IntelliJ IDEA 版: https://help.aliyun.com/document_detail/98762.html 
  • Eclipse 版: https://help.aliyun.com/document_detail/29970.html 
  • PyCharm 版: https://help.aliyun.com/document_detail/112740.html 
  • Maven 版: https://help.aliyun.com/document_detail/108682.html 

获取方式:(免费)

工具地址: https://www.aliyun.com/product/cloudtoolkit

开发者交流群号: 23341694(钉群)

三、混沌实验注入工具 ChaosBlade

ChaosBlade 是一款遵循混沌工程实验原理,提供丰富故障场景实现,帮助分布式系统提升容错性和可恢复性的混沌工程工具,可实现底层故障的注入,提供了延迟、异常、返回特定值、修改参数值、重复调用和 try-catch 块异常等异常场景。

工具的使用场景:

  • 微服务的容错能力不易衡量?
  • 容器编排配置是否合理无法验证?
  • PaaS 层健壮性的测试工作无从入手?

使用教程: https://github.com/chaosblade-io/chaosblade/wiki/新手指南

获取方式:(开源)

开源地址: https://github.com/chaosblade-io/chaosblade/wiki/新手指南

开发者交流群号:23177705(钉群)

四、Java 代码规约扫描插件

该插件用于检测 Java 代码中存在的不规范的位置,并给予提示。规约插件是采用 Kotlin 语言开发。

使用教程:

  • IDEA插件使用文档: https://github.com/alibaba/p3c/wiki/IDEA插件使用文档 
  • Eclipse插件使用文档: https://github.com/alibaba/p3c/wiki/Eclipse插件使用文档 

获取方式:(开源)

开源地址: https://github.com/alibaba/p3c

五、应用实时监控工具 ARMS

ARMS 是一款 APM 类的监控工具,提供前端、应用、自定义监控 3 类监控选项,可快速构建实时的应用性能和业务监控能力。

工具的使用场景:

  • 晚上 10 点收到 37 报警信息,你却无从下手?
  • 当我们发现问题的时候,客户/业务方已经发起投诉?
  • 每个月花几十万买服务器,却无法保障用户体验?

使用教程:

  • 前端监控接入: https://help.aliyun.com/documentdetail/106086.html 
  • 应用监控接入: https://help.aliyun.com/documentdetail/63796.html 
  • 自定义监控: https://help.aliyun.com/document_detail/47474.html 

获取方式:(收费)

工具地址: https://www.aliyun.com/product/arms

开发者交流群号:21914303(钉群)

六、静态开源站点搭建工具 Docsite

Docsite 一款集官网、文档、博客和社区为一体的静态开源站点的解决方案,具有简单易上手、上手不撒手的特质,同时支持 react 和静态渲染、PC端和移动端、支持中英文国际化、SEO、markdown 文档、全局站点搜索、站点风格自定义、页面自定义等功能。

使用教程: https://docsite.js.org/zh-cn/docs/installation.html

获取方式:(开源)

项目地址: https://github.com/txd-team/docsite

七、Android 平台上的秒级编译方案 Freeline

Freeline 可以充分利用缓存文件,在几秒钟内迅速地对代码的改动进行编译并部署到设备上,有效地减少了日常开发中的大量重新编译与安装的耗时。Freeline 最快捷的使用方法就是直接安装 Android Studio 插件。

使用教程: https://github.com/alibaba/freeline/blob/master/README-zh.md

获取方式:(开源)

项目地址: https://github.com/alibaba/freeline

八、性能测试工具 PTS

PTS 可以模拟大量用户访问业务的场景,任务随时发起,免去搭建和维护成本,支持 JMeter 脚本转化为 PTS 压测,同样支持原生 JMeter 引擎进行压测。

使用教程: https://help.aliyun.com/document_detail/70290.html

获取方式:(收费)

工具地址: https://www.aliyun.com/product/pts

九、云效开发者工具 KT

KT 可以简化在 Kubernetes 下进行联调测试的复杂度,提高基于 Kubernetes 的研发效率。

使用教程: https://yq.aliyun.com/articles/690519

获取方式:(免费)
工具地址: https://yq.aliyun.com/download/3393

十、架构可视化工具 AHAS

AHAS 为 K8s 等容器环境提供了架构可视化的功能,同时,具有故障注入式高可用能力评测和一键流控降级等功能,可以快速低成本的提升应用可用性。

工具的使用场景:

  • 服务化改造过程中,想精确的了解资源实例的构成和交互情况,实现架构的可视化?
  • 想引入真实的故障场景和演练模型?
  • 低门槛获得流控、降级功能?

使用教程: https://help.aliyun.com/document_detail/90323.html

获取方式:(免费)

工具地址: https://www.aliyun.com/product/ahas

十一、数据处理工具 EasyExcel

EasyExcel 是一个用来对 Java 进行解析、生成Excel 的框架,它重写了 poi 对07版 Excel 的解析,原本一个3M的 Excel 用POI sax需要100M左右内存,EasyExcel可降低到 KB 级别,并且再大的excel也不会出现内存溢出的情况。03版依赖 POI 的 sax 模式。在上层做了模型转换的封装,让使用者更加简单方便。

使用教程: https://github.com/alibaba/easyexcel/blob/master/quickstart.md

获取方式:(开源)

工具地址: https://github.com/alibaba/easyexcel

十二、iOS 类工具 HandyJSON

HandyJSON 是一个用于 Swift 语言中的JSON序列化/反序列化库。

与其他流行的 Swift JSON 库相比,HandyJSON 的特点是,它支持纯 Swift 类,使用也简单。它反序列化时(把 JSON 转换为 Model)不要求 Model从 NSObject 继承(因为它不是基于 KVC 机制),也不要求你为 Model 定义一个 Mapping 函数。只要你定义好 Model 类,声明它服从 HandyJSON 协议,HandyJSON 就能自行以各个属性的属性名为 Key,从 JSON 串中解析值。

使用教程: https://github.com/alibaba/HandyJSON/blob/master/README_cn.md

获取方式:(开源)

工具地址: https://github.com/alibaba/HandyJSON

十三、云上资源和应用部署工具 EDAS Serverless

EDAS Serverless 一款基于 Kubernetes,面向应用和微服务的 Serverless 平台。用户无需管理和维护集群与服务器,即可通过镜像、WAR 包和 JAR 包,快速创建原生支持 Kubernetes 的容器应用,同时支持 Spring Cloud 和 Dubbo 等主流微服务框架。

使用教程: https://help.aliyun.com/document_detail/102048.html

获取方式:(公测期间免费)

工具地址: https://help.aliyun.com/document_detail/97792.html

十四、数据库连接池 Druid

Druid 是 Java 语言下的数据库连接池,它能够提供强大的监控和扩展功能。

使用教程: https://github.com/alibaba/druid/wiki/常见问题 

获取方式:(开源)

工具地址: http://central.maven.org/maven2/com/alibaba/druid/

十五、Java 工具集 Dragonwell

Alibaba Dragonwell 是阿里巴巴内部 OpenJDK 定制版 AJDK 的开源版本, AJDK 为在线电商,金融,物流做了结合业务场景的优化,运行在超大规模的,100,000+ 服务器的阿里巴巴数据中心。 Alibaba Dragonwell 与 Java SE 标准兼容,目前仅支持 Linux/x86_64 平台。

使用教程:https://github.com/alibaba/dragonwell8/wiki/阿里巴巴Dragonwell8用户指南

获取方式:(开源)

工具地址: https://github.com/alibaba/dragonwell8


阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380691

阅读目录(置顶)(长期更新计算机领域知识)https://blog.csdn.net/weixin_43392489/article/details/102380882

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/425088.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 绑定StaticResource到控件的方法

WPF 绑定StaticResource到控件的方法 原文:WPF 绑定StaticResource到控件的方法资源文件内的属性能否直接通过绑定应用到控件&#xff1f;答案是肯定的。 比如&#xff0c;我们要直接把下面的<SolidColorBrush x:Key"RedBrush" Color"#FFFF0000" />直…

第三十三期:对于人工智能的恐惧及其5个解决方法

实施人工智能技术的IT领导人可能会感到一些恐惧&#xff0c;这有着充分的理由。人工智能在拥有数十年发展和应用历史的同时却有着奇怪的定位&#xff0c;但对于许多人来说&#xff0c;人工智能仍然是一种未来主义的感觉。 实施人工智能技术的IT领导人可能会感到一些恐惧&#x…

[Leetcode][第392题][JAVA][判断子序列][动态规划][双指针]

【问题描述】[简单] 【解答思路】 1. 双指针 时间复杂度&#xff1a;O(NM) 空间复杂度&#xff1a;O(1) class Solution { public:bool isSubsequence(string s, string t) {int n s.length(), m t.length();int i 0, j 0;while (i < n && j < m) {if (s[…

codeUp 2143: 迷瘴 浮点计算|贪心

2143: 迷瘴 时间限制: 1 Sec 内存限制: 32 MB 提交: 666 解决: 201 [提交][状态][讨论版][命题人:外部导入] 题目描述 小明正在玩游戏&#xff0c;他控制的角色正面临着幽谷的考验—— 幽谷周围瘴气弥漫&#xff0c;静的可怕&#xff0c;隐约可见地上堆满了骷髅。由于此处长…

权限分配之权限的展示

最后就是权限的展示了&#xff1a;对前面的 总结&#xff1a;  1. 一级菜单列表&#xff0c;是我对 menu表的&#xff0c;增删改查。  2. 二级菜单列表&#xff0c;是我对Permission表中&#xff0c; 可以作为二级菜单存在&#xff0c;如 客户列表、账单列表的 增删改查  …

优先队列----堆

问题 打印机打印作业一般是放在队列中的。如果按照先来先打印的顺序&#xff0c;有一个100页的打印任务&#xff0c;那么会让后面短小的任务等待很长时间。更合理的做法也许是最后处理最耗时的打印任务&#xff0c;不管它是不是最后提交上来的。 在多用户操作系统中&#xff…

第三十四期:游戏开发中常见的10种编程语言

游戏开发是非常有经验和熟练的程序员的工作。 它可能花费数亿美元。 这是一项非常有创意的工作&#xff0c;也需要技术水平。 他们需要具有特定需求的编程语言。 游戏开发是非常有经验和熟练的程序员的工作。 它可能花费数亿美元。 这是一项非常有创意的工作&#xff0c;也需要…

[Leetcode][第5458题][JAVA][字符串的好分割数目][双指针][HashSet]

【问题描述】5458. 字符串的好分割数目[中等] 【解答思路】 1. 双指针 前面的搜索前面的个数和&#xff0c;后面的搜索后面的个数和 时间复杂度&#xff1a;O(N^2) 空间复杂度&#xff1a;O(1) class Solution {/*双指针做法&#xff0c;前面的搜索前面的个数和&#xff0c;…

Spring Aop——给Advice传递参数

给Advice传递参数 Advice除了可以接收JoinPoint&#xff08;非Around Advice&#xff09;或ProceedingJoinPoint&#xff08;Around Advice&#xff09;参数外&#xff0c;还可以直接接收与切入点方法执行有关的对象&#xff0c;比如切入点方法参数、切入点目标对象&#xff08…

第三十五期:AI核心难点之一:情感分析的常见类型与挑战

情感分析或情感人工智能&#xff0c;在商业应用中通常被称为意见挖掘&#xff0c;是自然语言处理(NLP)的一个非常流行的应用。文本处理是该技术最大的分支&#xff0c;但并不是唯一的分支。情绪AI有三种类型及其组合。 情感分析或情感人工智能&#xff0c;在商业应用中通常被称…

AtCoder - 4172 Modulo Summation 贪心

开始想复杂的了 仔细观察样例后发现这个数 其实就是所有的数的LCM-1吗 只有LCM-1 对所有数取模的时候才能对所有数得到MOD = a[i]-1; 那么一个X%Y得到的最大值就是Y-1 于是得到了这个代码 #include<iostream> #include<cstdio> #include<queue> #includ…

[Leetcode][第104题][JAVA][二叉树的最大深度][递归][BFS]

【问题描述】[简单] 【解答思路】 1. 递归 终止条件/基本情况 root null 递推关系 max(l,r)1 时间复杂度&#xff1a;O(N) 空间复杂度&#xff1a;O(height) class Solution {public int maxDepth(TreeNode root) {if (root null) {return 0;} else {int leftHeight ma…

第三十六期:人工智能统计调查:86%的消费者更喜欢人工客服

美国消费者越来越不愿意与聊天机器人聊天&#xff0c;人们对人工智能作为关键业务组成部分的期望越来越高&#xff0c;由于部署这项新技术导致员工技能差距越来越大。 最近一些人工智能的健康和进展状况相关调查、研究、预测和其他定量评估突显出以下几点&#xff1a;美国消费者…

[Leetcode][第111题][JAVA][BFS][二叉树的最小深度][BFS][递归]

【问题描述】[简单] 【解答思路】 1. 递归 自下而上 基本情况/结束条件 &#xff1a; 叶子节点的定义是左孩子和右孩子都为 null 时叫做叶子节点 当 root 节点左右孩子都为空时&#xff0c;返回 1 当 root 节点左右孩子有一个为空时&#xff0c;返回不为空的孩子节点的深度 当…

PAT 1009 说反话

#include<cstdio>#include<cstring>#include<iostream>using namespace std;typedef long long ll;char a[82][82];int cnt;int main(){while(scanf("%s",a[cnt])!EOF){cnt;//***** 由于这里把cnt放到上面的判断中去了导致 最后在判断EOF的时候多判…

75 jsp基础语法汇总

JSP语法 脚本程序 脚本程序可以包含任意量量的Java语句句、变量量、⽅方法或表达式&#xff0c;只要它们在脚本语⾔言 中是有效的。 脚本程序的语法格式&#xff1a; <% 代码⽚片段 %>或者&#xff0c;您也可以编写与其等价的XML语句句&#xff0c;就像下⾯面这样&#…

CodeVS 1300 文字排版 线性DP

1300 文件排版 时间限制: 1 s 空间限制: 128000 KB 题目描述 Description 写电子邮件是有趣的&#xff0c;但不幸的是经常写不好看&#xff0c;主要是因为所有的行不一样长&#xff0c;你的上司想要发排版精美的电子邮件&#xff0c;你的任务是为他编写一个电子邮件排版程序…

[递归]一文看懂递归

1. 递归的定义 编程语言中&#xff0c;函数 Func(Type a,……) 直接或间接调用函数本身&#xff0c;则该函数称为「递归函数」。 在实现递归函数之前&#xff0c;有两件重要的事情需要弄清楚: 递推关系&#xff1a;一个问题的结果与其子问题的结果之间的关系。基本情况&…

centos6.8 安装软件

1.安装jdk1.8 https://blog.csdn.net/zhengjinyou/article/details/80890893 2.安装tomcat8.5 https://www.cnblogs.com/jimboi/p/6405136.html 3.安装nginx https://www.cnblogs.com/vurtne-lu/p/7010065.html nginx: unrecognized service问题解决 https://blog.csdn.ne…