java开发平台的推荐

转载:https://zhuanlan.zhihu.com/p/127119369   

1、常用开发工具

作为一名Java程序开发人员,可以的选择集成开发环境IDE(Integrated Development Environment)非常多,得益于Java是一门开源语言。有开源免费的;有商用收费的。如何选择一款适合自己的集成开发环境,亦或说选择一款符合自己项目开发需要的集成开发环境。如果选择得当,那么就能够使得开发工作事半功倍;否则事倍而功半。

免费开源Eclipse

Eclipse最初是由IBM公司开发的替代商业软件Visual Age for Java的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(Eclipse Foundation)管理。Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。

Eclipse是著名的跨平台的自由集成开发环境(IDE)。最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++、PHP、Python等语言的开发工具。Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。许多软件开发商以Eclipse为框架开发自己的IDE。

商用收费MyEclipse(中国,官网)

MyEclipse是Eclipse的插件,也是一款功能强大的J2EE集成开发环境,由Genuitec公司发布,它是商用收费的。

MyEclipse 是对Eclipse IDE的扩展,利用它可以在数据库和JavaEE的开发、发布以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML、Struts、JSP、CSS、Javascript、SQL,Hibernate,Spring。

Oracle公司免费的NetBeans

NetBeans是Sun公司(2009年被甲骨文收购)在2000年创立的开放源代码供开发人员和客户社区的家园,旨在构建世界级的Java IDE。

NetBeans当前可以在Solaris、Windows、Linux和Macintosh OS X平台上进行开发,并在SPL(Sun公用许可)范围内使用,是一个屡获殊荣的集成开发环境。NetBeans包括开源的开发环境和应用平台,NetBeans IDE可以使开发人员利用Java平台能够快速创建Web、企业、桌面以及移动的应用程序,NetBeans IDE目前支持PHP、Ruby、JavaScript、Ajax、Groovy、Grails和C /C + +等开发语言。

NetBeans项目由一个活跃的开发社区提供支持, NetBean开发环境提供了丰富的产品文档和培训资源以及大量的第三方插件。

IntelliJ IDEA

IntelliJ IDEA是一款综合的Java 编程环境,被许多开发人员和行业专家誉为市场上最好的IDE。它提供了一系列最实用的的工具组合:智能编码辅助和自动控制,支持J2EE,Ant,JUnit,SVN和Git集成,非平行的编码检查和创新的GUI设计器。IDEA把Java开发人员从一些耗时的常规工作中解放出来,显著地提高了开发效率。具有运行更快速,生成更好的代码;持续的重新设计和日常编码变得更加简易,与其它工具的完美集成;很高的性价比等特点。IntelliJ IDEA以前是收费软件,不过在2009年以后就开始推出了免费的社区开源版本。不过商用还是需要收费的

Eclipse、MyEclipse、NetBeans和IntelliJ IDEA的特点和适用场景:

Eclipse、MyEclipse、NetBeans和IntelliJ IDEA这四个IDE有着不同的特性和优点,根据开发的不同可能需要选择不同的IDE。在Java开发的每个方面,这四个IDE都能胜任工作,然而根据你所做的不同开发例如Swing开发,web开发或者企业开发,选择IDE就有所偏向。

Swing开发:

如果你专门从事Swing开发,NetBeans无疑是最好的选择,如果你没有选择NetBeans而是选择了Eclipse,建议使用MyEclipse 和它的Matisse4Eclipse构造器。IDEA由于对JGoodies Forms的支持,所以在开发Swing方面与前两者相比并不占有优势。

JSP/Struts开发:

开发JSP/Struts首选的是IDEA,接下来是MyEclipse,然后是NetBeans,由于缺少对内建Struts的支持,Eclipse的基本版本没有竞争优势。

JSF开发:

在开发JSF方面,这三个IDE可以说都是很好的选择,但是IDEA可能会更好一点,接下来是Eclipse/MyEclipse,最后是NetBeans。

企业开发:

由于NetBeans对JPA的支持和它产生代码的质量以及对持久化单元合适的设置,所以在企业开发方面,NetBeans是首选,接下来是IDEA,由于Eclipse的Dali项目的限制,Eclipse可能是最后选择的。如果放弃标准的JPA,从事Hibernate开发,MyEclipse是最好的选择。

除了上面提到的这四款由大公司开发的IDE外,JAVA开发的IDE还有很多,例如Spring基于eclipse推出的STS(Spring Tool Suite)、小而且快JCreator,但是以上最常用的eclipse和IntelliJ IDEA。国内Java开发人员使用的最多也是eclipse和IntelliJ IDEA。笔者用的最多是eclipse及Spring基于eclipse推出的STS。如果在使用中遇到什么可以无时无刻咨询。

2、常用接口测试工具

作为一名开发人员,完成开发工作后,单元测试及接口测试必不可少。单元测试不用说了,Java人员几乎都是使用JUnit及JUnit相关的测试框架。对于接口测试呢?有什么工具可以使用呢?在说工具之前先来了解两个问题。

什么是接口测试?

用来检查各个组件的接口的测试,接口测试主要检查外部系统与系统之间以及各个子系统之间的交互点,测试的重点在数据的传递上。

为什么要做接口测试?

如果项目全部推行单元测试,时间上不允许,而接口测试是一种特殊的单元测试,覆盖率没有做到所谓的单元测试的百分之百,不过覆盖了所有的面像用户的功能点,而且接口测试可以采用自动化+持续集成的方式,节约时间了成本,同时提高了效率。

java第三方包httpclient

如果使用httpclient进行接口测试,免不了开发人员还需要自己动手去编写代码,这个不是首选方案。笔者也不推荐这个方案,增加了程序人员的工作强度。

Postman

Postman是一款功能非常棒的Chrome扩展,提供功能强大的API&HTTP请求调试。它可以发送几乎所有类型的HTTP请求,并可以附带任何数量的参数和请求头(headers)。可以说Postman满足了HTTP接口测试的大部分功能,只有少部分的功能不被支持,比如:请求流程的控制;使得程序员可以在编写一些单元测试中解脱出来。

Postman特点:

支持用例管理

支持get、post、文件上传、响应验证、变量管理、环境参数管理等功能

支持批量运行

支持用例导出、导入

支持云端保存用例【付费用户】

JMeter

Apache JMeter是Apache组织开发的压力测试工具,也是目前应用最广泛的开源性能测试工具之一。它最初被设计用于Web应用测试,后来扩展到其他测试领域。像其他性能测试工具一样,JMeter可以用于对服务器、网络或对象模拟巨大的负载,来测试不同压力类别下应用系统的强度,分析应用系统的整体性能。JMeter由100% JAVA开发,开源,具备完全的可移植性;采用Swing界面和轻量组件支持包;支持插件扩展,可以通过扩展插件支持新的协议,监控系统资源,展示更丰富的性能图表等。企业能够在JMeter的基础上实现二次开发,扩展JMeter的功能为己所用。不过要记住Jmeter由JAVA开发,安装Jmeter之前需要先安装JDK。Jmeter功能非常强大是笔者最喜欢的接口测试工具,没有之一。


Postman和Jmeter特点:

(1)测试用例组织形式

Jmeter和Postman的测试用例组织形式都比较扁平,Jmeter通过测试计划(TestPlan)来组织测试用例;Postman主要通过集合(Collection)来组织测试用例。

(2)支持的接口类型与测试类型

从功能上Jmeter最为强大,可以测试各种类型的接口(包括Http、数据库、webservice、ftp等),不支持的也可以通过网上或自己编写的插件进行扩展;Postman是轻量级的,定位也不同,可用来测试http接口和Rest接口。

(3)流程控制

Jmeter支持Switch控制器、If控制器、随机控制器等一系列控制器实现流程控制,以及Beanshell脚本;Postman则需要通过JavaScript脚本控制

(4)断言

Jmeter中的TestPlan、Threads Group和Sampler均可添加断言;Postman的HTTP请求的Tests中可添加断言。

(5)脚本扩展能力

Jmeter支持用java语言编写的Bean shell;Postman支持使用JavaScript语言编写的脚本

(6)团队协作

Jmeter的一个TestPlan就是一个jmx(xml)文件,无法分割,但是Jmeter有一个合并的功能,允许将多个文件合并在一起。只能每个团队成员自己建立一个TestPlan,分功能块进行测试,最后整理合并;Postman虽然有团队协作的功能,但是需要付费。

Jmeter和Postman都还支持数据参数化、自定义变量、显示日志等功能。其中重点要说的是Jmeter还可以在无界面的Linux环境进行压力测试、性能测试;以便分析系统的瓶颈;Jmeter的功能覆盖了Postman的所有功能,所以强烈推荐使用Jmeter。

小编分类整理了许多java进阶学习材料和BAT面试题,需要资料的请加QQ群:731611386就能领取2019年java进阶学习资料和BAT面试题以及《EffectiveJava》(第3版)电子版书籍。

 

################################################################################################################################################

-----------------------------分隔线----------------------------------------------------

转自:https://blog.csdn.net/qq_37929553/article/details/96025774

BAT 程序员们常用的开发工具(建议收藏)

Java程序员路人 2019-07-15 21:48:40 1948 收藏 13
作者:小智,赵钰莹,张晓楠 链接:https://www.infoq.cn/article/yeQU4f_BujTYCMxaXNFc?utm_source=tuicool&utm_medium=referral

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

阿里篇

一、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 上找到这些工具并下载使用。

posted on   叶子在行动  阅读(287)  评论(0编辑  收藏  举报

编辑推荐:
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

导航

统计

点击右上角即可分享
微信分享提示