大摩娱乐注册 大摩娱乐登录 大摩娱乐招商QQ

Navigation menu

来源:未知 责任编辑:admin

BAT 程序员们常用的开发工具

  工欲善其事必先利其器,一个优秀的程序员除了代码写得好,善于利用各种开发工具同样可以事半功倍。以 BAT 为代表的各大厂程序员们在平时的工作中都用什么开发工具呢?InfoQ 编辑部盘点了大厂内部常用的开发工具,以供读者参考。本文涉及工具大部分为开源项目,大家可以按需选用。

  今天是周末,给大家推荐一批 BAT 公司常用的开发工具,文章内容主要来自我们的编辑同学的策划和 BAT 工程师的约稿,真实可信,童叟无欺。

  这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?

  线上遇到某个用户的数据处理有问题,但线上同样无法 debug,线下无法重现!

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

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

  采用 SCP 工具上传?使用 XShell 或 SecureCRT 登陆服务器?替换部署包?重启?

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

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

  Kruise 的核心是自动化,从不同维度解决 Kubernetes 之上应用的自动化问题,包括部署,升级,弹性扩缩容,Qos 调节,健康检查,迁移修复等。此次,Kruise 开源的内容主要在应用部署,升级方面,即一套增强版 controller 组件用于应用的部署和级和运维。后续,Kruise 会依次开源智能化的弹性扩缩容组件,以及应用 Qos 自调节能力的组件等。

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

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

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

  服务化改造过程中,想精确的了解资源实例的构成和交互情况,实现架构的可视化?

  WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一。包含 button、cell、dialog、 progress、 toast、article、actionsheet、icon 等各式元素。

  腾讯工蜂是腾讯研发管理部自主研发的 Git 托管代码平台,服务腾讯内部数万名研发工程师,是腾讯内部使用范围最为广泛的工程效率工具;在满足基本开发协作能力的基础上,工蜂也提供了可定制化的 CodeReview、开源协作和研发度量能力。

  TAPD 平台是腾讯敏捷研发体系十余年的发展成果,为产品研发全生命周期提供解决方案,支持敏捷需求规划、迭代计划跟踪、测试与质量保证、持续构建交付等全过程研发实践。TAPD 于 2017 年对外服务,目前已帮助超过 10 万家企业提升研发效能,实现数字化转型升级。

  蓝盾(bk-ci)是一个开源的持续集成和持续交付系统,从业务安全出发,贯穿产品研发、测试和运营的全生命周期;助力业务平滑过渡到敏捷研发模式,打造一站式研发运营体系,持续快速交付高质量的产品。目前服务于腾讯 10000+ 开发人员,现已成为腾讯公司指定的 CI 平台。另外,也是获得行业至今为止唯一一个 4 级认证的 DevOps 标准。蓝盾提供了流水线、代码库、凭证管理、环境管理、研发商店 5 大核心服务,多重组合,满足企业不同场景的需求。

  Tars 是腾讯将其内部使用的微服务框架 TAF(Total Application Framework)多年的实践成果总结而成的开源项目,在腾讯内部有上百个产品使用,服务内部数千名 C++、Java、Golang、Node.Js 与 PHP 开发者。其包含一整套开发框架与管理平台,兼顾多语言、易用性、高性能与服务治理,理念是让开发更聚焦业务逻辑,让运营更高效。目前腾讯有 160 多个业务(如 QQ 浏览器、手机 QQ、手机游戏、应用宝、微视、天天快报等)在 10 万台服务器上使用 TARS。2017 年,Tars 在 GitHub 开源,目前 TarsCloud 拥有将近一万 star。2018 年,Tars 项目被捐献给 Linux 开源基金会。

  提供一站式服务治理,包括服务注册发现、服务配置、负载均衡、过载保护、容灾容错等功能;

  提供立体化监控平台,轻松获取流量、耗时、超时、异常、自定义等监控数据和历史曲线。同时可进行消息染色,从而做有针对性的监控。

  TSeer 是一套服务注册发现容错方案,是对 TARS 名字服务功能的轻量化,对业务侵入性低,并且提供 Web 管理平台。在腾讯内部众多业务中广泛采用,目前日均承载百亿级的请求量。

  DCache 是一个基于 TARS 框架开发的分布式 NoSQL 存储系统,数据采用内存存储,支持连接后端 DB 实现数据持久化。DCache 采用集群模式,具有高扩展、高可用的特点。DCache 在腾讯内部有大量业务使用,日访问总量超万亿次。

  WePY 项目启动于 2017 年 11 月份, 是小程序最早的框架之一,是一款让小程序支持组件化开发的框架,通过预编译的手段让开发者可以选择自己喜欢的开发风格去开发小程序。框架的细节优化,Promise,Async Functions 的引入都是为了能让开发小程序项目变得更加简单,高效。

  QTA 是面向多种平台(包括 Android、iOS、Windows、MacOS、Web、小程序、后台服务和云原生应用等)的自动化测试服务平台,致力于帮助业务研发团队开展和落地自动化测试,提供包括自动化测试用例管理和数据分析、分布式测试执行、线上测试报告和数据可视化、测试执行度量分析、测试资源管理等功能。

  Mars 是微信官方的终端基础组件, 是一个业务性无关, 平台性无关,使用 C++ 编写的基础组件。目前已接入微信 Android、iOS、Mac、Windows、WP、UWP 等客户端。Mars 是一个结合移动 App 所设计的基于 socket 层的解决方案,在网络调优方面有更好的可控性,Mars 在微信用的应用场景主要是:普通 CGI 请求类似收发消息收发语音,业务 CGI 支付请求等。

  baidu-rpc (简称 brpc) 是一款主打 C++ 平台下的高性能 RPC 框架,它上手简单,扩展性上限又很高,同时还具备完善的运维和调试接口。目的是构建一套百度内统一的 RPC 框架,那么灵活的扩展性就是最基础的需求。Baidu-rpc 在实现过程中非常注重机制与策略分离,支持了百度内使用的大部分 RPC 协议,方便无缝迁移业务到 baidu-rpc。除了协议之外,将名字服务、负载均衡和认证也采用了具体 policy 实现,比如 bns 名字服务、rr 负载均衡。

  ECharts 是一个纯 Javascript 的图表库,兼容当前绝大部分浏览器(IE6/7/8/9/10/11,chrome,firefox,Safari 等),底层依赖轻量级的 Canvas 类库 ZRender ,提供直观生动、可交互、可高度个性化定制的数据可视化图表。从而增强用户对数据进行挖掘和整合的能力,揭示出隐藏在数据背后的价值。

  飞桨(PaddlePaddle)是百度自主研发、集深度学习训练和预测框架、模型库、工具组件、服务平台等为一体的开源深度学习平台。目前 PaddlePaddle 开源了 60 多个经过真实业务场景验证的官方模型,涵盖视觉、NLP、语音和推荐等 AI 核心技术领域。

  利用深度学习技术解决业务问题,例如百度地图的精准时间预估,百度 Feed 的视频完全自动分类,中国科学院遥感与数字地球研究所的基于遥感影像的目标地物检测,领邦智能的快速完成不同零件质检的业务落地,北京林业大学的 AI 识虫达到专业人士识别准确率且检测周期从两周缩短至一个小时等等;

  amis 是百度 2019 年 4 月开源的一款基于 json 生成 MIS 页面的前端工具,目前已用于内部 amis 平台,结合可视化工具及后端服务,大大缩减了各类管理系统的开发成本,目前平台内部已累计创建了 1.4w+ 页面,每天有 2700 人在使用。

  San 是一个 MVVM 的组件框架,它体积小巧(15K)、兼容性好(IE6)、性能卓越、使用灵活。组件是 San 的基本单位,是独立的数据、逻辑、视图的封装单元。从页面角度看,组件是 HTML 元素的扩展;从功能模式角度看,组件是一个 ViewModel。San 组件提供了完整的生命周期,与 WebComponent 的生命周期相符合。组件间是可嵌套的树形关系,完整的支持了组件层级、组件间的通信,方便组件间的数据流转。San 的组件机制,可以有效支撑业务开发上的组件化需求,对各种类型的 Web 应用场景都有较强的适应性。

  CUP 基础库是百度开源的 Python 语言基础库,致力将业务开发从涉及底层操作、Util 操作类解放出来,进而更关注构建上层业务逻辑。目前 CUP 已涵盖从零构建一个服务底层支持的各个方面。

  百度效率云是由百度工程效能部自主研发的一站式 DevOps 解决方案,在百度内部每天服务 10000+ 工程师、产品经理的研发协作;每天执行 70000+ 次的构建、30000+ 次的持续集成;每周清扫 3000+ 的代码高危漏洞。

  百度效率云包括四大平台: 专注产品和项目管理的 icafe 平台,专注代码托管和协同开发的 icode 平台,专注 CI/CD 的 ipipe 平台以及构建产物管理平台 iRepo。

  程序员的世界里,语言多,框架更多,想要从多如牛毛的开发工具中找到好用的轮子并不容易。通过本文,我们盘点了 BAT 大厂程序员们常用的开发工具,这其中不少工具也已开源,你可以很方便地在 GitHub 上找到这些工具并下载使用。

  在你的 coding 日常里,有使用过以上哪款开发工具?你还觉得哪些开发工具对于程序员来说堪称神器?欢迎留言告诉我们。