阿里将通过开源、云实现或工具等方式对外开放其在各业务场景的技术积累。本文将选取部分阿里巴巴开发者工具,希望能帮助开发者提高开发效率,更优雅地编写代码。由于开发者涉及多个技术领域,笔者仅从自己熟悉的领域,以后端开发者的角度,对日常生活中可能用到的工具进行盘点。每个工具按照以下几点介绍:工具介绍场景教程如何获取1.Java在线诊断工具ArthasArthas是阿里巴巴于2018年9月开源的一款Java在线诊断工具。工具的使用场景:哪个jar包这个类是从哪里加载的?为什么会报各种类型的Exception?为什么我改的代码没有执行?是因为我没有答应吗?分支错了吗?debug,只能加日志才能重新发布吗?线上遇到一个用户数据处理的问题,但是线上无法调试,线下也无法重现!是否有全局视角查看系统运行状态??有什么办法可以监控JVM的实时运行状态吗?Arthas支持JDK6+,支持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/arthas2.IDE插件CloudToolkitCloudToolkit是一个IDE插件,可以帮助开发者进行开发、测试、诊断和部署应用程序。通过CloudToolkit,开发者可以轻松地将本地应用一键部署到任意一台机器(本地或云端),并内置Arthas诊断,高效执行终端命令和SQL等。IntelliJIDEA版本、Eclipse版本、PyCharm版本和Maven提供版本。工具使用场景:是否每次修改代码后都在重复打包?频繁切换Maven、Git等运维脚本和工具?使用SCP工具上传?使用XShell或SecureCRT登录服务器?更换部署包?重新开始?上传文件到服务器指定目录,频繁切换各种FTP、SCP工具?教程:IntelliJIDEA版:https://help.aliyun.com/documentdetail/98762.htmlEclipse版:https://help.aliyun.com/documentdetail/29970.htmlPyCharm版:https://help.aliyun。com/documentdetail/112740.htmlMaven版本:https://help.aliyun.com/documentdetail/108682.html方法:*(免费)*https://www.aliyun.com/product/cloudtoolkit3.ChaosBladeChaosBlade是一款混沌实验注入工具,遵循混沌工程实验原理,提供丰富的故障场景,帮助分布式系统提高容错性和性能。可恢复的混沌工程工具可以实现底层故障的注入,提供延迟、异常、返回特定值、修改参数值、重复调用、try-catch块异常等异常场景。工具使用场景:微服务的容错性很难衡量吗?容器编排配置是否合理,无法验证?没有办法开始测试PaaS层的健壮性吗?教程:https://github.com/chaosblade-io/chaosblade/wiki/新手指南获取方式:*(免费)*https://github.com/chaosblade-io/chaosblade/wiki/新手指南4.Java代码规格扫描插件该插件用于检测Java代码中的不规则位置。并给予提示。规范插件是用Kotlin语言开发的。教程:https://github.com/alibaba/p3c/wiki/IDEA插件使用文档Eclipse插件使用文档:https://github.com/alibaba/p3c/wiki/Eclipse插件使用文档获取方法:*(免费)*开源地址:https://github.com/alibaba/p3c5.应用实时监控工具ARMSARMS是一款APM监控工具,提供三种监控选项:前端、应用、和自定义监控,可快速构建实时应用性能和业务监控能力。工具使用场景:晚上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/arms6.静态开源建站工具DocsiteDocsite是一套集官网、文档、博客和社区于一体的静态开源建站解决方案,好用不放手,同时支持react和静态渲染,PC端和移动端终端,支持中英文国际化、SEO、markdown文档、全球站搜索、站点风格定制、页面定制等功能。教程:https://docsite.js.org/zh-cn/docs/installation.html获取方式:(免费)https://github.com/txd-team/docsite7.Android上的二级编译平台解决方案FreelineFreeline可以充分利用缓存文件,在几秒内快速编译并部署代码变更到设备,有效减少日常开发中大量重新编译和安装的耗时。使用Freeline最快的方法是直接安装AndroidStudio插件。教程:https://github.com/alibaba/freeline/blob/master/README-zh.md获取方式:(免费)https://github.com/alibaba/freeline8.性能测试工具PTSPTS可以模拟在大量用户访问业务的场景下,可以随时发起任务,省去建设和维护成本。支持将JMeter脚本转换为PTS压测,也支持原生JMeter引擎进行压测。教程:https://help.aliyun.com/document_detail/70290.html获取方式:(付费)https://www.aliyun.com/product/pts9.Cloud-EfficiencyDeveloperToolKTKT可以简化下Kubernetes联合调试和测试的复杂性提高了基于Kubernetes的研发效率。教程:https://yq.aliyun.com/articles/690519获取方式:(免费)工具地址:https://yq.aliyun.com/download/339310.为K8s等提供架构可视化工具AHASAHAS容器环境不仅具备架构可视化功能,还具备故障注入高可用评估、一键流控降级等功能,能够快速、低成本地提升应用可用性。工具使用场景:在服务化转型过程中,是否希望准确理解资源实例的组成和交互,实现架构的可视化?想介绍真实的故障场景和演练模型?低门槛接入流控和降级功能?教程:https://help.aliyun.com/document_detail/90323.html获取方式:(免费)https://www.aliyun.com/product/ahas11.数据处理工具EasyExcelEasyExcel是一个解析Java的工具,生成Excel的框架,重写了poi对07版Excel的解析。本来一个3M的Excel做POIsax需要100M左右的内存,但是EasyExcel可以把它降到KB级别,再大的excel也不会出现内存溢出的情况。版本03依赖于POI的萨克斯模式。模型转换包做在上层,方便用户使用。教程:https://github.com/alibaba/easyexcel/blob/master/quickstart.md获取方法:(开源)https://github.com/alibaba/easyexcel十二、iOS工具HandyJSONHandyJSON是JSON序列化的工具/Swift语言的反序列化库。与其他流行的SwiftJSON库相比,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十三、云资源及应用部署工具EDASServerlessEDASServerless是一个基于Kubernetes的无服务器平台,用于应用程序和微服务。用户无需管理和维护集群和服务器,可以通过镜像、WAR包、JAR包快速创建原生支持Kubernetes的容器应用,支持SpringCloud、Dubbo等主流微服务框架。教程:https://help.aliyun.com/document_detail/102048.html获取方法:(公测期间免费)https://help.aliyun.com/document_detail/97792.html14.数据库连接池DruidDruid是Java的语言下的数据库连接池可以提供强大的监控和扩展功能。教程:https://github.com/alibaba/druid/wiki/%E5%B8%B8%E8%A7%81%E9%97%AE%E9%A2%98获取方法:(开源)http:///central.maven.org/maven2/com/alibaba/druid/15。Java工具集Dragonwell阿里巴巴Dragonwell是阿里巴巴内部OpenJDK定制版AJDK的开源版本。AJDK结合线上电商、金融、物流等业务场景优化运行在拥有10万+服务器的超大规模阿里巴巴数据中心。AlibabaDragonwell兼容JavaSE标准,目前只支持Linux/x86_64平台。教程:https://github.com/alibaba/dragonwell8/wiki/%E9%98%BF%E9%87%8C%E5%B7%B4%E5%B7%B4Dragonwell8%E7%94%A8%E6%88%B7%E6%8C%87%E5%8D%97获取方式:(开源)https://github.com/alibaba/dragonwell8
