工欲善其事必先利其器,一个精良的程序员除了代码写得好,长于利用各种开拓工具同样可以事半功倍。以 BAT 为代表的各大厂程序员们在平时的事情中都用什么开拓工具呢?
阿里篇
一、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
二、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
三、混沌实验注入工具 ChaosBlade
ChaosBlade 是一款遵照混沌工程实验事理,供应丰富故障场景实现,帮助分布式系统提升容错性和可规复性的混沌工程工具,可实现底层故障的注入,供应了延迟、非常、返回特定值、修正参数值、重复调用和 try-catch 块非常等非常场景。
利用场景:
微做事的容错能力不易衡量?容器编排配置是否合理无法验证?PaaS 层健壮性的测试事情无从入手?利用教程:
https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南
开源地址:
https://github.com/chaosblade-io/chaosblade/wiki/ 新手指南
四、Java 代码规约扫描插件
该插件用于检测 Java 代码中存在的不规范的位置,并给予提示。规约插件是采取 Kotlin 措辞开拓。
利用教程:
IDEA 插件利用文档:
https://github.com/alibaba/p3c/wiki/IDEA 插件利用文档
Eclipse 插件利用文档:
https://github.com/alibaba/p3c/wiki/Eclipse 插件利用文档
开源地址:
https://github.com/alibaba/p3c
五、办理 Kubernetes 上运用自动化问题工具 OpenKruise
Kruise 的核心是自动化,从不同维度办理 Kubernetes 之上运用的自动化问题,包括支配,升级,弹性扩缩容,Qos 调节,康健检讨,迁移修复等。这次,Kruise 开源的内容紧张在运用支配,升级方面,即一套增强版 controller 组件用于运用的支配和级和运维。后续,Kruise 会依次开源智能化的弹性扩缩容组件,以及运用 Qos 自调节能力的组件等。
开源地址:
https://github.com/openkruise/kruise
六、静态开源站点搭建工具 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
八、架构可视化工具 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
十一、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
腾讯篇
一、Web 开拓根本样式库 WeUI
WeUI 是一套同微信原生视觉体验同等的根本样式库,由微信官方设计团队为微信 Web 开拓量身设计,可以令用户的利用感知更加统一。包含 button、cell、dialog、 progress、 toast、article、actionsheet、icon 等各式元素。
利用文档:
https://github.com/Tencent/weui/wiki
开源地址:
https://github.com/Tencent/Weui
二、腾讯 Git 代码管理平台『工蜂』
腾讯工蜂是腾讯研发管理部自主研发的 Git 托管代码平台,做事腾讯内部数万名研发工程师,是腾讯内部利用范围最为广泛的工程效率工具;在知足基本开拓协作能力的根本上,工蜂也供应了可定制化的 CodeReview、开源协作和研发度量能力。
利用场景:
• 企业内部研发管理、开拓协作;
• 企业内部开源项目管理、协同共享;
• 微信小程序版本开拓;
• 高校实验室,传授教化场景等
官网和文档:
官网:https://code.tencent.com/
文档:https://code.tencent.com/help/productionDoc/project
三、腾讯敏捷协作平台 TAPD
TAPD 平台是腾讯敏捷研发体系十余年的发展成果,为产品研发全生命周期供应办理方案,支持敏捷需求方案、迭代操持跟踪、测试与质量担保、持续构建交付等全过程研发实践。TAPD 于 2017 年对外做事,目前已帮助超过 10 万家企业提升研发效能,实现数字化转型升级。
利用场景:
任务协作——适宜不同场景的任务跟进敏捷研发——一站式敏捷研发全生命周期管理DevOps——一站式 DevOps 持续交付平台企业级研发数据度量——助力企业衡量效能、持续改进官网:https://www.tapd.cn/
文档:https://www.tapd.cn/help#page-wikidoc
四、一站式 DevOps 研发平台:腾讯 CI 平台(蓝盾)
蓝盾(bk-ci)是一个开源的持续集成和持续交付系统,从业务安全出发,贯穿产品研发、测试和运营的全生命周期;助力业务平滑过渡到敏捷研发模式,打造一站式研发运营体系,持续快速交付高质量的产品。目前做事于腾讯 10000+ 开拓职员,现已成为腾讯公司指定的 CI 平台。其余,也是得到行业至今为止唯一一个 4 级认证的 DevOps 标准。蓝盾供应了流水线、代码库、凭据管理、环境管理、研发商店 5 大核心做事,多重组合,知足企业不同场景的需求。
利用场景:
工程编译静态代码检讨运行测试用例,及时创造 BUG支配与发布开源地址:
https://github.com/Tencent/bk-ci
五、高性能、多措辞的微做事管理框架 Tars
Tars 是腾讯将其内部利用的微做事框架 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品利用,做事内部数千名 C++、Java、Golang、Node.Js 与 PHP 开拓者。其包含一整套开拓框架与管理平台,兼顾多措辞、易用性、高性能与做事管理,理念是让开发更聚焦业务逻辑,让运营更高效。目前腾讯有 160 多个业务(如 QQ 浏览器、手机 QQ、手机游戏、运用宝、微视、每天快报等)在 10 万台做事器上利用 TARS。2017 年,Tars 在 GitHub 开源,目前 TarsCloud 拥有将近一万 star。2018 年,Tars 项目被捐献给 Linux 开源基金会。
利用场景:
高效支持后台做事的开拓、支配、发布、运营、监控等;供应一站式做事管理,包括做事注册创造、做事配置、负载均衡、过载保护、容灾容错等功能;供应立体化监控平台,轻松获取流量、耗时、超时、非常、自定义等监控数据和历史曲线。同时可进行染色,从而做有针对性的监控。开源地址:
https://github.com/tarsCloud
轻量级做事注册发行容错方案 TSeer
TSeer 是一套做事注册创造容错方案,是对 TARS 名字做事功能的轻量化,对业务侵入性低,并且供应 Web 管理平台。在腾讯内部浩瀚业务中广泛采取,目前日均承载百亿级的要求量。
开源地址:
https://github.com/Tencent/tseer/
分布式 NoSQL 存储系统 DCache
DCache 是一个基于 TARS 框架开拓的分布式 NoSQL 存储系统,数据采取内存存储,支持连接后端 DB 实现数据持久化。DCache 采取集群模式,具有高扩展、高可用的特点。DCache 在腾讯内部有大量业务利用,日访问总量超万亿次。
开源地址:
https://github.com/tencent/dcache
六、小程序组件化开拓框架 WePY
WePY 项目启动于 2017 年 11 月份, 是小程序最早的框架之一,是一款让小程序支持组件化开拓的框架,通过预编译的手段让开发者可以选择自己喜好的开拓风格去开拓小程序。框架的细节优化,Promise,Async Functions 的引入都是为了能让开发小程序项目变得更加大略,高效。
利用场景:
利用 Vue Observer 实现数据绑定支持 Vue watch/computed/mixin 等特性基于原生组件实现组件化开拓支持 TypeScript开源地址:
https://github.com/Tencent/wepy
七、腾讯自动化测试中台 QTA
QTA 是面向多种平台(包括 Android、iOS、Windows、MacOS、Web、小程序、后台做事和云原生运用等)的自动化测试做事平台,致力于帮助业务研发团队开展和落田主动化测试,供应包括自动化测试用例管理和数据剖析、分布式测试实行、线上测试报告和数据可视化、测试实行度量剖析、测试资源管理等功能。
QT4A,UI 自动化测试 for Android:
https://github.com/Tencent/QT4A
QT4i,UI 自动化测试 for iOS:
https://github.com/Tencent/QT4i
QT4W,UI 自动化测试 for Web:
https://github.com/Tencent/QT4W
八、微信跨平台跨业务根本组件 Mars
Mars 是微信官方的终端根本组件, 是一个业务性无关, 平台性无关,利用 C++ 编写的根本组件。目前已接入微信 Android、iOS、Mac、Windows、WP、UWP 等客户端。Mars 是一个结合移动 App 所设计的基于 socket 层的办理方案,在网络调优方面有更好的可控性,Mars 在微信用的运用处景紧张是:普通 CGI 要求类似收发收发语音,业务 CGI 支付要求等。
开源地址:
https://github.com/Tencent/Mars
百度篇
一、主打 C++ 平台下的高性能 RPC 框架 baidu-rpc
baidu-rpc (简称 brpc) 是一款主打 C++ 平台下的高性能 RPC 框架,它上手简单,扩展性上限又很高,同时还具备完善的运维和调试接口。目的是构建一套百度内统一的 RPC 框架,那么灵巧的扩展性便是最根本的需求。Baidu-rpc 在实现过程中非常看重机制与策略分离,支持了百度内利用的大部分 RPC 协议,方便无缝迁移业务到 baidu-rpc。除了协议之外,将名字做事、负载均衡和认证也采取了详细 policy 实现,比如 bns 名字做事、rr 负载均衡。
利用场景:
搭建能被百度内所有协议访问的做事,包括但不限于:标准协议,hulu-pbrpc,sofa-pbrpc,nova-pbrpc,public-pbrpc,ubrpc 和所有利用 nshead 的协议,http 和 https, 个中 json 可自动转化为 protobuf ;访问百度内所有的做事,包括但不限于:标准协议,hulu-pbrpc,sofa-pbrpc,nova-pbrpc,public-pbrpc,ubrpc(包括 idl 或裸用 mcpack/compack),http(baidu::rpc::Channel 可以代替 curl);通过 HTTP 调试做事,或用 pprof 在线采样做事的性能;得到更好的延时和吞吐。开源地址:
https://github.com/apache/incubator-brpc
二、高度个性化定制的数据可视化图表 Echarts
ECharts 是一个纯 Javascript 的图表库,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari 等),底层依赖轻量级的 Canvas 类库 ZRender ,供应直不雅观生动、可交互、可高度个性化定制的数据可视化图表。从而增强用户对数据进行挖掘和整合的能力,揭示出隐蔽在数据背后的代价。
利用场景:
利用 Canvas 或者 SVG 渲染;在图表中支持无障碍访问;利用 ECharts GL 实现根本的三维可视化;在微信小程序中利用 ECharts;多种数据格式无需转换直策应用。官网地址:
https://echarts.apache.org
开源地址:
https://github.com/apache/incubator-echarts
三、深度学习平台飞桨(PaddlePaddle)
飞桨(PaddlePaddle)是百度自主研发、集深度学习演习和预测框架、模型库、工具组件、做事平台等为一体的开源深度学习平台。目前 PaddlePaddle 开源了 60 多个经由真实业务场景验证的官方模型,涵盖视觉、NLP、语音和推举等 AI 核心技能领域。
利用场景:
研究新的 AI 算法等深度学习技能;利用深度学习技能办理业务问题,例如百度舆图的精定时光预估,百度 Feed 的视频完备自动分类,中国科学院遥感与数字地球研究所的基于遥感影像的目标地物检测,领邦智能的快速完身分歧零件质检的业务落地,北京林业大学的 AI 识虫达到专业人士识别准确率且检测周期从两周缩短至一个小时等等;学习提升。利用指南:
http://paddlepaddle.org/documentation/docs/zh/1.4/user_guides/index_cn.html?from=paddlenav
API 文档:
http://paddlepaddle.org/documentation/docs/zh/1.4/api_cn/index_cn.html?from=paddlenav
开源地址:
https://github.com/PaddlePaddle
四、基于 json 天生 MIS 页面的前端工具 amis
amis 是百度 2019 年 4 月开源的一款基于 json 天生 MIS 页面的前端工具,目前已用于内部 amis 平台,结合可视化工具及后端做事,大大缩减了各种管理系统的开拓本钱,目前平台内部已累计创建了 1.4w+ 页面,每天有 2700 人在利用。
利用场景:
可快速天生各种增编削查页面,直接配置接口和须要展示的字段信息即可;要做繁芜的表单验证?直接配置规则就可以;当然还集成图表功能,用来做带管理功能的报表系统也很适宜。利用教程:
https://baidu.github.io/amis/docs/getting-started
开源地址:
https://github.com/baidu/amis
五、MVVM 的组件框架 San
San 是一个 MVVM 的组件框架,它体积小巧(15K)、兼容性好(IE6)、性能卓越、利用灵巧。组件是 San 的基本单位,是独立的数据、逻辑、视图的封装单元。从页面角度看,组件是 HTML 元素的扩展;从功能模式角度看,组件是一个 ViewModel。San 组件供应了完全的生命周期,与 WebComponent 的生命周期相符合。组件间是可嵌套的树形关系,完全的支持了组件层级、组件间的通信,方便组件间的数据流转。San 的组件机制,可以有效支撑业务开拓上的组件化需求,对各种类型的 Web 运用处景都有较强的适应性。
利用场景:
传统 Web 页面,部分区域须要在当前页面中响运用户操作;单页 Web 运用;基于 Node.js 的做事端渲染;同构 Web 运用。利用教程:
https://baidu.github.io/san/tutorial/start/
开源地址:
https://github.com/baidu/san
六、Python 措辞根本库——Cup
CUP 根本库是百度开源的 Python 措辞根本库,致力将业务开拓从涉及底层操作、Util 操作类解放出来,进而更关注构建上层业务逻辑。目前 CUP 已涵盖从零构建一个做事底层支持的各个方面。
利用场景:
利用 CUP 赞助从 0 到 1 构建一个 Service,特殊是底层构造;利用 CUP 作为 Utils 底层库帮忙业务代码开拓。利用教程:
http://cup.iobusy.com/
开源地址:
https://github.com/baidu/CUP
七、一站式 DevOps 办理方案百度效率云
百度效率云是由百度工程效能部自主研发的一站式 DevOps 办理方案,在百度内部每天做事 10000+ 工程师、产品经理的研发协作;每天实行 70000+ 次的构建、30000+ 次的持续集成;每周清扫 3000+ 的代码高危漏洞。
百度效率云包括四大平台: 专注产品和项目管理的 icafe 平台,专注代码托管和协同开拓的 icode 平台,专注 CI/CD 的 ipipe 平台以及构建产物管理平台 iRepo。
利用场景:
企业内部的软件研发管理,企业间项目协同;高校实验室,传授教化场景;云原生运用开拓;AI 做事运用开拓;代码安全扫描、漏斗扫描。利用教程:
文档:https://cloud.baidu.com/doc/XLY/index.html
视频:http://abcxueyuan.cloud.baidu.com/#/course_detail?id=14927&courseId=14927
工具地址:
https://cloud.baidu.com/product/xly.html
结语
程序员的天下里,措辞多,框架更多,想要从弗成偻指算的开拓工具中找到好用的轮子并不随意马虎。通过本文,我们盘点了 BAT 大厂程序员们常用的开拓工具,这个中不少工具也已开源,你可以很方便地在 GitHub 上找到这些工具并下载利用。
在你的 coding 日常里,有利用过以上哪款开拓工具?你还以为哪些开拓工具对付程序员来说堪称神器?欢迎留言见告我们。
来源网络,侵权联系删除
私信我或关注微旗子暗记:狮范课,回答:学习,获取免费学习资源包。