阿里巴巴技术输出

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/huxiutao/article/details/90951300

一、阿里巴巴Java开发手册

经过最近几年的发展,阿里巴巴形成了良好的技术体系,阿里巴巴许多技术输出影响着越来越多的程序开发者。有许多工具类的软件、性能验证、开发规范等等。

如果一个项目比较小那么有许多东西是可以不考虑的,而且,涉及的开发人员也不会太多,但是如果是一个大型的项目,且开发人员很多时,各个模块组合成一个大型系统时,就会有许许多多的因素在影响整个项目。所以,阿里巴巴制定了涵盖编程规约、异常日志、单元测试、安全规约、MySQL数据库、工程规约、设计规约等7大维度的开发规范——《阿里巴巴Java开发手册》。
经过几年的不断完善,并经历了多次大规模一线实战检验,现在已经更新到1.4.0版本。(2018年6月更新)
下载地址如下:
链接:https://pan.baidu.com/s/1UPag-tGn_zKsTssvG0zkVA
提取码:zyf1
解压密码:123

或者GitHub上的地址:(包含开发规约插件)
https://github.com/alibaba/p3c.git

主要的更新节点如下:
2016年3月,由阿里研发效能事业部云效高级技术专家孤尽首次发布在ATA(阿里内部技术同学华山论剑处);
2017年2月,首次对外公开;
2017年9月,正式版发布。
2017年10月,在杭州云栖大会《研发效能峰会》发布;
2018年6月,新增16条设计规约!
2018年10月,升级为一本书进行出版:《码出高效:Java 开发手册》在杭州云栖大会《开发者生态峰会》上正式发布,并宣布将所有收益捐赠于技术公益项目“83行代码计划”。
关于这份文档,还有官方的小视频:三位普通工程师与《手册》的故事,有时间的话,可以看一下:http://cloud.video.taobao.com/play/u/2865628743/p/1/e/6/t/1/50293814709.mp4

在阿里云网站上提供线上体验:
https://code.aliyun.com/
该线上工具提供的功能非常丰富,具体可以自己尝试一下:
在这里插入图片描述
当然,使用云效也可体验:https://www.aliyun.com/product/yunxiao

在如下网址上还提供了视频教程,推荐看一下:
http://click.aliyun.com/m/1000019586/

IDEA插件与Eclipse插件使用指南可以参考如下链接:
http://click.aliyun.com/m/1000019587/

扫描插件详情介绍链接:
http://click.aliyun.com/m/1000019588/

在阿里云大学上有编码规范考试认证:(需要花钱认证考试的,两次机会,而且有在线学习的,有兴趣的可以看一下,会办法电子证书的)
http://click.aliyun.com/m/1000019590/

阿里巴巴Java开发规约挑战赛:
http://click.aliyun.com/m/1000019591/
挑战赛说明:
答题开始即开始计时,中途不可暂停,如超时则自动提交
1、考试共 (5) 道题,总分100分,及格分数60分
2、考试需在(10分钟)内交卷,过程中无法暂停,请提前安排好时间;如未及时交卷,则本次考试作废

以上链接大部分出自阿里云,有时间可以经常关注一下这个网站,会对自己编码水平的提高会有比较大的帮助。

扫描二维码关注公众号,回复: 7659261 查看本文章

二、Java 线上诊断工具 Arthas

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

利用Arthas再好不过了,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,无需重启,动态跟踪Java代码,实时监控JVM状态,进一步方便进行问题的定位和诊断。

使用教程
基础教程:https://alibaba.github.io/arthas/arthas-tutorials?language=cn&id=arthas-basics

Github: https://github.com/alibaba/arthas
文档: https://alibaba.github.io/arthas/

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

对于以上提供的教程都是中文版的,编写风格很好,而且简单易懂,值得推荐。

值得一提的是,在启动时可以指定被暴露的target-ip、telnet-port、http-port,在不指定以上参数时,是不能直接远程连接的。默认启动的方式,只能本地监控。而且,这里的target-ip指的是服务所在的IP地址,这个地址是暴露给别人用的。
在arthas的远程监控中如果遇到“Connection refuse”错误,要先确认这个端口是否被防火墙屏蔽。在防火墙没有屏蔽这个端口的情况下,还有一个可能是target-ip参数指定错误。它需要被指定为外能访问的本机ip,不指定或者指定为127.0.0.1都有可能导致“Connection refuse”错误。

几个比较好说明博客地址:
https://my.oschina.net/Rayn/blog/2054773
https://www.cnblogs.com/theRhyme/p/10659265.html
https://blog.csdn.net/lsy0903/article/details/94184008#Dashboard_76

三、数据库连接池 Druid

相信许多公司都已经在使用了该连接池了,Druid 是 Java 语言下的数据库连接池,它能够提供强大的监控和扩展功能。

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

获取方式:(开源) http://central.maven.org/maven2/com/alibaba/druid/

具体的使用和注意事项会在另外的博客上写明。

四、应用实时监控工具 ARMS

在以下场景下的解决方案——ARMS(目前收费)
• 晚上 10 点收到 37 条报警信息,你却无从下手?
• 当我们发现问题的时候,客户/业务方已经发起投诉?
• 每个月花几十万买服务器,却无法保障用户体验?

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

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

由于目前是收费的,本人暂时没有研究过,只看过别人在使用过。不过只要是分布式微服务系统架构,都会有自己的实时监控系统(往往公司自行开发)。

五、性能测试工具 PTS

对于后端开发、测试人员用的比较多的。PTS 可以模拟大量用户访问业务的场景,任务随时发起,免去搭建和维护成本,支持 JMeter 脚本转化为 PTS 压测,同样支持原生 JMeter 引擎进行压测。
但是,该工具是收费的(6个月628元)。

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

本人没有仔细研究过,只看过别人使用。当然,对于一个项目公司而言,肯定会有一套自己的测试系统。(如果选用PTS这点费用肯定也不算什么)

官网地址: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 等容器环境提供了架构可视化的功能,同时,具有故障注入式高可用能力评测和一键流控降级等功能,可以快速低成本的提升应用可用性。

目前大部分公司都是基于Spring全家桶二次开发的自己微服务分布式框架,可能会开发自己的流量控制、降级功能,可以参考以下这个工具。(该工具是免费的)

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

获取方式:https://www.aliyun.com/product/ahas

八、数据处理工具 EasyExcel

在以前的一个项目中要操作Excel,当时还是使用了jxl技术,虽然也可以完成大部分功能,但是从性能角度看,利用poi技术可能会好点(数据量较大时较为明显,本人没有实际做过对比,只是从网上看到的)。阿里出的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

我简单试了下,性能还是不错的,以后操作Excel首选。

附:几个总结比较好的网站

最具权威的网站:
https://yq.aliyun.com/opensource?spm=5176.8279002.minheadermenu.12

https://www.cnblogs.com/lidabo/p/9087760.html

https://www.oschina.net/project/alibaba/

猜你喜欢

转载自blog.csdn.net/huxiutao/article/details/90951300