滴滴开源在2019:十大重点项目盘点,DoKit客户端研发助手首破1万Star
整理 | Jane
出品 | AI科技大本营(ID;rgznai100)
2018 年,科技企业纷纷布局开源战略后迎来的第一个“丰收年”。但对滴滴来说,2019 年才迎来其第一波开源小高潮。
自2017年滴滴零星开源数个项目后,滴滴开源项目的数量在2018年逐步线性爬升至 12 个。2019 年,滴滴在GitHub上目前已经对外开源 35 个项目,仅 2019 年一年开源 20 个,总 Stars 数超过 5 万,在 Github 全球组织排名进入前100名。其源项目从单一的前端项目,覆盖技术领域扩大至人工智能、小程序、智慧交通、中间件、前端框架、研发工具等。
其中,2019 年开源的小程序工具 Dokit 是滴滴所有开源项目中第一个破 1 W Stars 的项目,Fork 数 1.6k;2017 年--2018 年间在移动端和小程序领域里开源的三大项目目前均已超过 7 k。
整体来看,滴滴在移动端、小程序和 AI 技术领域具有一定优势,这三大领域的开源项目比较多。
重点开源项目盘点
人工智能领域
1、DELTA
DELTA 是一个基于深度学习的端到端自然语言处理和语音处理平台,使用 TensorFlow 和 Python 3 来实现。滴滴开源 DELTA 希望能给研究者与开发者提供更简单快捷的使用与部署体验,降低开发模型的难度。
DeLTA 架构与模型配置
目前已获得 1 k Stars,开源地址:
https://github.com/didi/delta
小程序
1、DoraemonKit
DoKit,希望这个项目能像哆啦A梦一样,给你任何你想要的工具。目前已经可以支持 Android、ios 和微信小程序等客户端。DoraemonKit 能够快速把业务测试代码统一管理,做统一收口;还内置了很多常用的工具,避免重复实现,一次接入将可拥有强大的工具集合。
目前已获得 12.4k Stars,开源地址:
https://github.com/didi/DoraemonKit
2、Chameleon
一个功能在不同端实现,你写了几套代码?3、5 还是全套?
正如 chameleon 的中文译名“变色龙‘一般,它是一个能让你的代码适应不同环境的跨端整体解决方案。一套代码可运行多端,可支持web、微信小程序、支付宝小程序、百度小程序、android(weex)、ios(weex)、qq 小程序、字节跳动小程序、快应用等。有了这个以一生五能力,你的开发效率就是别人的五分之一。
目前已获得 7k Stars,开源地址:
https://github.com/didi/chameleon
3、MPX
MPX 是一款可以提高小程序开发体验的增强型小程序框架。有了 Mpx,开发者能以最先进的 web 开发体验来开发生产性能深度优化的小程序。
它具有的诸多特性
目前已获得 1.9k,开源地址:
https://github.com/didi/mpx
移动端
1、VirtualAPK
VirtualAPK 是滴滴首个开源项目。这款功能强大又轻巧的插件框架,适用于 Android,可以帮助开发者 / 企业随时通过更新插件的方式来发布新功能,拥有功能完备、基本无入侵、插件可轻松访问宿主代码和资源、高兼容性这四大核心优势。
目前,已获得 7.7 k Stars,开源地址:
https://github.com/didi/VirtualAPK
2、cube-ui
滴滴开发的基于基于 Vue.js 实现的 Web 移动端组件库Cube-UI 是从滴滴内部业务中不断取其精华得来的,为后续集成保驾护航。cube-ui 组件主要包括 3 部分:基础组件、弹出层组件和滚动组件。目前共开源 14 个通用性强的组件。有了这款组件库,移动端开发者可以简化开发过程,专注业务逻辑从而提升开发效率。
目前已获得 7.5k,开源地址:
https://github.com/didi/cube-ui
3、mand-mobile
mand-mobile 是一款基于 Vue 的移动端 UI 组件库,丰富、灵活、实用,快速搭建优质的金融类产品,让复杂的金融场景变简单。
目前已获得 2.3k,开源地址:
https://github.com/didi/mand-mobile
4、Booster
对于 DAU 已达千万级的滴滴 App 来说,能承受的崩溃率是非常脆弱的,哪怕只有万分之一,都会有上千名用户受到影响,更何况整个平台上所有司机都是长时间在线,所以系统性能的稳定性更是首要保证的。
随着用户数量增多、场景与需求越来越复杂,App 必然面临着诸多性能与安全方面的挑战,而 Booster 就是为解决这一问题而设计研发的。它是针对移动应用设计的一款易用、轻量级且可扩展的质量优化框架,主要就是为了解决 APP 复杂度的提升而带来的性能、稳定性、包体积等问题。
Go 语言技术栈
1、Gendry
滴滴业务平台中,在”高可用“需求下,离不开 Go 技术栈在背后的支撑。无论是滴滴订单系统、派单引擎乃至存储中间件中都离不开 Golang 的应用。
而 Gendry 就是滴滴为 Go 开源社区贡献的项目,这是一个数据库操作辅助工具 gendry,提供了三个工具,分别帮助管理数据库链接,构建 SQL 语句,以及 完成数据关系映射。
目前已获得 917 Stars,开源地址:
https://github.com/didi/gendry
智慧交通
1、TrafficIndex
滴滴业务中场景很复杂,其中交通拥堵评价与计算是一个至关重要的问题。其中 TTI( Travel Time Index)是业内使用较多的城市拥堵程度的评价指标,是反应实际花费的行程时间与自由流花费行程时间的比值关系,值越大表示交通运行状态越差,一般与拥堵程度正相关,其它如异常天气(如雨、雪、雾等)或者异常道路情况也可能对TTI的数值产生影响。
滴滴是如何计算这个指标的?滴滴通过开源 TrafficIndex 项目将自家的方法与大家分享,为决策者提供决策支持。
基本思想为:
(1)速度计算:如果一条 link 有两个连续时间片,分别为 t1、t2, link 长度为S,那么 t1 到 t2 这段时间内,link 的平均速度 v 为 v = 2·S / (t1 + t2)。
(2)TTI 计算:在同一条link在一个时间片内,tti = 自由流速度 / 实际速度。
详细计算方法,可见开源地址:
https://github.com/didi/TrafficIndex
受益于开源,回馈于开源
除了围绕滴滴内部业务发布开源项目,滴滴也对许多外部开源软件做了积极的贡献,例如 ceph,flink,hadoop,kylin 等。
在 2019 年第十四届开源中国·开源世界高峰论坛上,滴滴出行高级副总裁章文嵩曾提到“滴滴目前年运送乘客达 100 亿人次,滴滴平台每天 ETA(预计到达时间)请求在 700 多亿次。滴滴 6000 名研发人员所搭建维护的十分庞大的技术框架中离不开开源软件的支持,滴滴受益于开源,也将回馈于开源”。
从 2017 年到 2019 年,滴滴花了很长的时间、精力与资源专注在开源上。一方面在内部进行上下合力合作;另外,对外协作可谋求共赢。2019 年 10 月,蚂蚁金服开源了 一款机器学习工具SQLFLow,将SQL程序翻译成Python程序,调用数据库和AI引擎,实现端到端的AI。随后,滴滴与蚂蚁金服达成合作,开启了共建SQLFlow之旅。
这两年,滴滴开源也非常积极与基金会合作,如 Linux 基金会及其子基金会 CNCF、LFAI、CEPH 的会员。2019 年,滴滴还被 CNCF 基金会授予最高最终用户奖,也是今年亚洲唯一获奖的企业;滴滴还是 LFAI 的初创会员;ceph 基金会的初创会员,对 ceph 基金会的贡献全球排名第17位。
滴滴也将打通内部上下、连接企业内外的好项目开源,进一步回馈社区,丰富开源生态。
滴滴开源项目的整体进展
https://didi.github.io/
(*本文为AI科技大本营整理文章,转载请微信联系 1092722531)
◆
精彩公开课
◆
推荐阅读
动漫美少女生成神器、猫的门禁...2019年十七大最佳机器学习项目 |年度盘点①
大四学生发明文言文编程语言,设计思路清奇
芬兰开放“线上AI速成班”课程,全球网民均可免费观看
腾讯 Angel 升级:加入图算法,支持十亿节点、千亿边规模!
时间可以是二维的?基于二维时间图的视频内容片段检测 | AAAI 2020
扎心了!互联网公司福利缩水指南
“对不起,我们只招有出色背景的技术人员!”
2019中国区块链开发者大会圆满落幕!10大烧脑核心技术演讲干货全送上!
你点的每个“在看”,我都认真当成了AI
相关文章:

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头2
之前的博文中介绍了IMAGE_FILE_HEADER结构,现在来讨论比较复杂的“可选文件头”结构体。(转载请指明来自breaksoftware的csdn博客)先看下其声明 typedef struct _IMAGE_OPTIONAL_HEADER {//// Standard fields.//WORD Magic;...DWORD BaseOfData; // not e…

9月第1周安全回顾 IM安全威胁严重 企业增加无线安全投入
本文同时发表在:[url]http://netsecurity.51cto.com/art/200709/55180.htm[/url]本周(0827至0902)安全方面值得关注的新闻集中在安全产品、即时通信安全、无线安全和安全市场。安全产品:Intel vPro技术逐渐升温,关注指…

centos下LAMP之源码编译安装httpd
1 最好先安装组件[rootlocalhost ~]# yum groupinstall additional development [rootlocalhost ~]# yum groupinstall development tool2 安装ap1.5.2r(Apache Portable Runtime),安装apr-util 1.5.4工具[rootlocalhost ~]wget http://mirrors.cnnic.cn/apache//apr/apr-1.5.2…

PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3
《PE2》中介绍了一些可选文件头中重要的属性,为了全面起见,本文将会讲解那些不是那么重要的属性。虽然不重要,但是还是可以发现很多好玩的情况。首先看一下32位的可选文件头详细定义。(转载请指明来源于breaksoftware的CSDN博客&a…

高效决策的三个关键
“领导者的责任,归纳起来,主要是出主意、用干部两件事。”***的这句话高度概括了领导者的关键任务,而这两件事都有一个共同的核心——决策。决策是管理者的天职,与其说这是他们的权力,不如说是一种责任。每一个经理人&…
开发者都想收藏的深度学习脑图,我们抢先曝光了!
可以看到,通过机器学习技术,软件或服务的功能和体验得到了质的提升。比如,我们甚至可以通过启发式引擎智能地预测并调节云计算分布式系统的节点压力,以此改善服务的弹性和稳定性,这是多么美妙。而对移动平台来说&#…

Cookie 位置_无需整理
为什么80%的码农都做不了架构师?>>> Cookie 位置 C:\Users\admin\AppData\Roaming\Microsoft\Windows\Cookies 转载于:https://my.oschina.net/Majw/blog/464018

PE文件和COFF文件格式分析——节信息
在《PE文件和COFF文件格式分析——签名、COFF文件头和可选文件头3》中,我们看到一些区块的信息都有偏移指向。而我们本文讨论的节信息是没有任何偏移指向的,所以它是紧跟在可选文件头后面的。(转载请注明来源于breaksoftware的csdn博客&#…

强悍!使用Flash和Silverlight制作控件
Silverlight已经发布了正式版本,我也到网站下载了一个并看看,突然发现了他的例子中包含了这个公司。NETiKA TECH。之所以说他强,是因为他尽然使用Flash和Silverlight制作了仿造WinForm的控件,包括:常见的控件ÿ…

《评人工智能如何走向新阶段》后记(再续8)
由AI科技大本营下载自视觉中国2019.12.13 81.近来一波人工智能热潮是在大数据的海量样本及超强计算能力两者支撑下形成的。所以说这一波人工智能是由大数据喂养出来的。这时的机器智能在感知智能和计算智能等一些具体问题上已经达到甚至超越人类水平,目前在语音识别…

Hadoop集群安全性:Hadoop中Namenode单点故障的解决方案及详介AvatarNode
2019独角兽企业重金招聘Python工程师标准>>> 正如大家所知,NameNode在Hadoop系统中存在单点故障问题,这个对于标榜高可用性的Hadoop来说一直是个软肋。本文讨论一下为了解决这个问题而存在的几个solution。 1. Secondary NameNode 原理&#…

PE文件和COFF文件格式分析——RVA和RA相互计算
之前几节一直是理论性质的东西非常多。本文将会讲到利用之前的知识得出一个一个非常有用的一个应用。(转载请指明来源于breaksoftware的csdn博客) 首先我们说下磁盘上A.exe文件和正在内存中运行的A.xe之间的关系。当我们双击A.exe后,A.exe会运…

《评人工智能如何走向新阶段》后记(再续9)
由AI科技大本营下载自视觉中国2019.12.16 96. 近日《Nature》杂志推荐2019年度10大科学进展的杰出论文,其中一篇是有关人工智能的,谈采用深度学习/强化学习算法来训练四足机器狗ANYmal,使它能快速爬起来。该文谈到,在反复训练下&…

RTX组织架构刷新出现了问题
今天发现RTX的组织架构刷新出现了问题。按照网络上的方法什么的把什么配置文件的IP地址改啊改啊。还是没有用。也TELNET了8010端口,也没有用。其实这样的方法之前把服务程序装在另一台机器上倒是可以的。有点麻烦的了。呵呵不知道各位博友有没有解决的好方法啊。呵呵…
一个最简单的通过WireShark破解SSL加密网络数据包的方法
原文地址: http://article.yeeyan.org/view/530101/444688 一般来说,我们用WireShark来抓取包进行分析是没有多大问题的。但这里有个问题是,如果你碰到的是用SSL/TLS等加密手段加密过的网络数据的时候,往往我们只能束手无策。在过…

PE文件和COFF文件格式分析——导出表
在之前的《PE可选文件头》相关博文中我们介绍了可选文件头中很多重要的属性,而其中一个非常重要的属性是(转载请指明来源于breaksoftware的CSDN博客) IMAGE_DATA_DIRECTORY DataDirectory[IMAGE_NUMBEROF_DIRECTORY_ENTRIES]; 该数组保存了…
将Quartz.NET集成到 Castle中
Castle是针对.NET平台的一个开源项目,从数据访问框架ORM到IOC容器,再到WEB层的MVC框架、AOP,基本包括了整个开发过程中的所有东西,为我们快速的构建企业级的应用程序提供了很好的服务.具体可参看TerryLee的Castle 开发系列文章。 …

《评人工智能如何走向新阶段》后记(再续10)
本文由AI科技大本营下载自视觉中国106.百度自研的飞桨(Paddle paddle)框架是中国自研的首个开源产业极人工智能深度学习框架,目前飞桨已累计服务150多万开发者,在定制化训练平台上企业用户超过6.5万,发布了16.9万模型&…

水管工游戏 (深搜)
水管工游戏 本题依然是采用搜索,深搜,广搜都可以,本代码采用深搜,此题在搜索时需要增加一些判断条件以及下一步要搜索的位置即可。 代码如下: #include<stdio.h> int a[51][51]; int book[51][51],n,m,flag0,top…

PE文件和COFF文件格式分析——导出表的应用——一种插件模型
可能在很多人想想中,只有DLL才有导出表,而Exe不应该有导出表。而在《PE文件和COFF文件格式分析——导出表》中,我却避开了这个话题。我就是想在本文中讨论下载Exe中存在导出表的场景。(转载请指明出于breaksoftware的csdn博客&…

IBatis.Net学习笔记九--动态选择Dao的设计分析
在IBatis.Net中可以通过配置文件动态选择数据库、动态选择Dao对象。Dao对象也就是操作数据库的类,通过配置文件我们可以选择DataMapper的方式、Ado的方式、NHibernet的方式以前其他第三方的方式来操作数据库。有利于系统的灵活性和可扩展性。通过分析动态选择Dao的设…
Pytorch和Tensorflow,谁会笑到最后?
作者 | 土豆变成泥来源 | 知秋路(ID:gh_4a538bd95663)【导读】作为谷歌tensorflow某项目的Contributor,已经迅速弃坑转向Pytorch。目前Tensorflow还没有被Pytorch比下去,但之后极大概率被比下去。01 在学术界Pytorch已经超越Tenso…

HTTP请求的过程
HTTP通信机制是在一次完整的HTTP通信过程中,Web浏览器与Web服务器之间将完成下列7个步骤: 1. 建立TCP连接在HTTP工作开始之前,Web浏览器首先要通过网络与Web服务器建立连接,该连接是通过TCP来完成的,该协议与IP协议共同…

JSTL+EL表达式方法获取Oracle的Clob字段内容
我们在页面获得数据的时候一般的类型还是很好获得的,但是一遇到Clob类型就比较麻烦,最常用的方法是用一个流将其读取出来.使用MVC框架的时候这些都是无所谓的事情,因为反正是写在java类中怎么写都行,可是不使用MVC框架,使用jsp页面JSTL的sql标签去读取数据库的数据这种方式就麻…
通向人工智能产业落地化的道路在哪?
整理 | 夕颜出品 | AI科技大本营(ID:rgznai100)世事浮云,白云苍狗,转眼间关于人工智能的研究已历经两个世纪。在研究者和践行者的不懈努力之下,如今人工智能应用已遍地可见,无论是繁华都市还是偏远小镇&…

PE文件和COFF文件格式分析——导出表的应用——通过导出表隐性加载DLL
通过导出表隐性加载DLL?导出表?加载DLL?还隐性?是的。如果觉得不可思议,可以先看《PE文件和COFF文件格式分析——导出表》中关于“导出地址表”的详细介绍。(转载请指明出于breaksoftware的csdn博客&#x…

系统启动时,spring配置文件解析失败,报”cvc-elt.1: 找不到元素 'beans' 的声明“异常...
现象:spring加载配置文件applicationContext.xml出错,抛出nested exception is og.xml.sax.SAXParseException; lineNumber: 12; columnNumber: 47; cvc-elt.1: 找不到元素 beans 的声明r的异常信息。 造成该异常原因有两种:第一,配置文件头部配置的xsd版…
DllMain中不当操作导致死锁问题的分析--死锁介绍
最近在网上看到一些关于在DllMain中不当操作导致死锁的问题,也没找到比较确切的解答,这极大吸引了我研究这个问题的兴趣。我花了一点时间研究了下,正好也趁机研究了下进程对DllMain的调用规律。因为整个研究篇幅比较长,我觉得还是…
XGBoost缺失值引发的问题及其深度分析 | CSDN博文精选
作者 | 兆军(美团配送事业部算法平台团队技术专家)来源 | 美团技术团队(*点击阅读原文,查看美团技术团队更多文章)背景XGBoost模型作为机器学习中的一大“杀器”,被广泛应用于数据科学竞赛和工业领域&#…

什么是CPI指数和GDP
即消费者物价指数(Consumer Price Index),英文缩写为CPI,是反映与居民生活有关的产品及劳务价格统计出来的物价变动指标,通常作为观察通货膨胀水平的重要指标。如果消费者物价指数升幅过大,表明通胀已经成为经济不稳定因素&#x…