[关闭]
@qinyun 2018-03-08T09:14:10.000000Z 字数 3849 阅读 793

阿里巴巴开源盘点

未分类


阿里巴巴是从2011年开始进行技术开源的,经过7年的发展,到目前为止,阿里旗下的开源项目已超过150个,在GitHub上也取得了不错的反响,其中ant-design、dubbo、weex、fastjson等项目的star数均已破万,开源的项目在各领域全面开花。

虽然这样,阿里开源的项目还是一直被质疑是KPI项目,而且经常被诟病项目开源后不重视维护而半途而废。对此,阿里否定了前一个说法,他们表示他们的团队都是真心实意地将过去的经验分享给开发者们,希望与业界的同仁们一起成长,在去年的云栖大会,阿里发布了全球化开源项目OpenMessaging、ApsaraCache,并将已经弃用的dubbo重新列入重点维护开源项目,而且宣布了与GitHub、Hashicorp两家公司达成技术合作伙伴,这说明阿里对开源是抱着积极、开放、友好的态度进行的。接下来,就让我们来盘点一下阿里巴巴的那些star数超过3000热门开源项目吧。

1.Ant Design

star数:24918

GitHub:https://github.com/ant-design/ant-design

Ant Design是蚂蚁金服开发的一个面向企业级产品的UI设计语言和基于React的实现,它为企业提供了一套完整的组件化设计规范。目前Ant Design在BAT、美团和滴滴等企业都有应用,同类的项目如element、iview,在使用Vue框架的情况下可选用。

2. dubbo

star数:16803

GitHub:https://github.com/alibaba/dubbo

Dubbo是一个基于Java的高性能开源RPC框架,它是阿里巴巴第一代RPC框架,也是国内第一款成熟的商用极RPC框架,于2011年在GitHub上开源,目前已成为国内开源项目中的佼佼者。

虽然与阿里的第三代RPC框架HSF相比,Dubbo具有更轻量、扩展性更好、对开源外围系统和协议有良好的适配等特点,但是随着阿里业务规模和属性的变化,现在阿里内部弃用Dubbo,而是启用HSF,是因为HSF2 在服务治理、超大规模集群、多机房几个方面比 Dubbo2 更有优势,并且在使用层面保持了对Dubbo2的兼容性。

如今Dubbo只是以开源的形式服务于社会,并通过反馈提升自身的产品和技术能力,与Google开源的gRPC的目的相似。

3.Weex

star数:16040

GitHub:https://github.com/alibaba/weex

Weex是用于构建移动跨平台UI的框架,它具有轻量、高性能、可扩展的特点,通过单一代码库构建Android、iOS和Web应用程序,开源于2016年6月。

Weex和Facebook开源的React Native相比,两者都基于JS开发框架、都可以直接在Chrome中调试JS代码、都需要Node.js基础环境、都支持跨平台开发等。但Weex是基于Vue.js,RN基于React.js,而且Weex是实现代码共用,一次开发能多平台运行,而RN的平台仍然是独立的,即代码需针对iOS和Android平台编写,代码不能完全共用。由于Weex开源较晚,网上的学习资源较少,案例也少,所以社区的活跃度较低,主要在阿里内部使用,在这方面,RN比Weex更成熟,社区活跃度更高。

4.Fastjson

star数:12662

GitHub:https://github.com/alibaba/fastjson

Fastjson是阿里开源的JSON解析库,它可以解析JSON格式的字符串,支持将Java Bean序列化为JSON字符串,也可以从JSON字符串反序列化到JavaBean。它具有速度快、使用广泛、易上手等特点。

与FastJSON相似用Java处理JSON数据的还有Jackson和Google的Gson,在三者中,Jackson的性能最好,序列化和反序列化的速度相对较快,具有灵活的API,容易扩展和定制,但它在将复杂类型转换成Json时,会容易出错,而Gson的功能最为齐全,但是性能较低,FastJSON的速度最快,但是定制化文档较为简陋,代码质量较差,英文文档缺乏,所以没能在国外流行起来。

5.Druid

star数:10075

GitHub:https://github.com/alibaba/druid

Druid是一个JDBC组件库,包括数据库连接池DruidDataSource、SQL Parser、基于Filter-Chain模式的插件体系,它具有可监控数据访问性能、充当数据库连接池、获得SQL执行日志等特点。

Druid、C3P0、DBCP三种数据库连接池中,Druid的功能最强大,综合性能最好,尤其是在扩展功能上,它可以扩展很多插件和连接池,并且能够替换DBCP和C3P0。

6.RAP

star数:7554

GitHub:https://github.com/thx/RAP

RAP是阿里前端团队开发的Web接口管理工具,通过分析接口,动态生成模拟数据,校验真实接口正确性,通过一系列自动化工具提升协作效率。

7.egg

star数:7044

GitHub:https://github.com/eggjs/egg/

egg是阿里开源的企业级Node.js 框架,它是阿里Node.js应用的核心基础设施,非KPI产物,它通过GUI工具帮助Web工程师更高效地管理街扩文档,分析接口结构自动生成模拟数据,校验真实接口的准确性,使接口文档成为开发流程中的强依赖。

由于egg是底层框架,还需要插件封装形成上层框架提供相应功能,如egg-blueprint、egg-waterline等,然后才能与Sail相比。

8.Tengine

star数:6549

GitHub:https://github.com/alibaba/tengine

Tengine是淘宝网发起的Web服务器项目,在Nginx的基础上,针对大访问网站的需求,添加了很多高级功能和特性,它支持动态模块加载、HTTP/2协议和异步OpenSSL等,其性能和稳定性已经在大型网站如天猫、淘宝上得到检验,它也是全球9大流行Web服务器项目之一。

在去年8月,国外的开发者曾指责阿里没有积极维护Tengine,更新过慢,修复不及时,怀疑其为KPI项目,当时,该项目团队回应称他们重组了Tengine的开源开发人员,并打算在此项目中投入更多的资源,也否定了Tengine是KPI项目的说法。

9.Mock.js

star数:6538

GitHub:https://github.com/nuysoft/Mock

Mock.js是一个模拟数据生成器,旨在前端工程师独立于后端进行开发,帮助编写单元测试。它通过随机数据,模拟各种场景,不需要修改既有代码就可以拦截Ajax请求,而且数据类型丰富,方便扩展。

10.AndFix

star数:5941

GitHub:https://github.com/alibaba/AndFix

AndFix是一个为Android应用提供热修复的框架,它可以在线修复bug,而不需要重新分发Android应用。

与QQ空间团队开发的热修复框架Nuwa相比,AndFix的安全性更高,但是Nuwa可以添加新增类和字段,AndFix却没有此项功能。

11.Atlas

star数:5796

GitHub:https://github.com/alibaba/atlas

Atlas是手淘团队开发的Android容器化框架,也称为动态组件化框架,它主要提供了解耦化、组件化、动态性的支持,它也是阿里移动三驾马车之一,覆盖了工程师的工程编码期、Apk运行期以及后续运维期的各种问题,2017年阿里在云栖大会上宣布Atlas开源。

12. Hilo

star数:4404

GitHub:https://github.com/hiloteam/Hilo

Hilo是阿里自主研发的HTML5跨终端的互动游戏解决方案,它支持多种模块范式的版本,具有极精简的模块设计、多种渲染方式等特点。

13.freeline

star数:4387

GitHub:https://github.com/alibaba/freeline

Freeline是蚂蚁金服开发的用于Android平台的基于动态替换的编译方案,是Instan Run的替代品,它能显著提高Android工程的编译速度。

14.canal

star数:4174

GitHub:https://github.com/alibaba/canal

Canal是阿里基于数据库日志增量订阅&消费的框架,目前支持MySQL和mariaDB。

15. Anyproxy

star数:3922

GitHub:https://github.com/alibaba/anyproxy

AnyProxy是一个可供插件配置的开放式的HTTP/HTTPS代理服务器,它基于Node.js,开放二次开发能力,允许自定义请求处理逻辑,支持Https的解析,提供GUI界面,用以观察请求。

16.React-web

Star数:3196

GitHub:https://github.com/taobaofed/react-web

React-Web淘宝前端开发的一个使用React构建Web应用程序的框架,它可以将react-native转换成web,从而实现iOS、Android、移动Web三个平台的代码共用。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注