滴滴技術(shù)牛逼嗎?看它開源了哪些有意思的項(xiàng)目
點(diǎn)擊上方藍(lán)色“小哈學(xué)Java”,選擇“設(shè)為星標(biāo)”
回復(fù)“資源”獲取獨(dú)家整理的學(xué)習(xí)資料!


作為卓越的一站式移動出行和生活平臺,滴滴在亞洲、拉美和澳洲為超過5.5億用戶提供出租車、快車、專車、豪華車、公交、代駕、企業(yè)級、共享單車、共享電單車、汽車服務(wù)、外賣、支付等多元化的服務(wù)。滴滴平臺上,有數(shù)千萬車主及司機(jī)獲得靈活的工作和收入機(jī)會,年運(yùn)送乘客超過100億人次。
?
滴滴開源的三年時間里,在滴滴高級副總裁、開源委員會主席章文嵩博士的倡導(dǎo)下,秉持「擁抱開放、合作共贏、創(chuàng)造價值」的理念。滴滴積極參與業(yè)界的開源項(xiàng)目,并不斷對外輸出內(nèi)部的優(yōu)秀項(xiàng)目。自2017年6月30日,滴滴首個開源項(xiàng)目VirtualAPK發(fā)布起,滴滴已發(fā)布了40+個項(xiàng)目,獲得了 6.3W star,在社區(qū)獲得了良好反響。以下小編將帶大家速覽滴滴的40+開源項(xiàng)目。(按首字母先后排序)

項(xiàng)目地址:https://github.com/didi/delta
項(xiàng)目地址:https://github.com/didi/dlflow
項(xiàng)目地址:https://github.com/didi/hetsann
項(xiàng)目地址:https://github.com/didi/maskdetection
項(xiàng)目地址:https://github.com/sql-machine-learning/sqlflow

項(xiàng)目地址:https://github.com/didi/ALITA
項(xiàng)目地址:https://github.com/didi/mtmc-vt
項(xiàng)目地址:https://github.com/didi/TrafficIndex

項(xiàng)目地址:https://github.com/didi/booster
項(xiàng)目地址:https://github.com/didi/DDMQ
項(xiàng)目地址:https://github.com/didi/go-spring
4.?
大數(shù)據(jù)

▍ES-Fastloader
ES-Fastloader是一種能夠快速地為海量離線數(shù)據(jù)生成索引的方案,采用了一種Build & Push的機(jī)制,利用Hadoop強(qiáng)大的并行計算能力,可在1-2小時內(nèi)極快速構(gòu)建幾十TB級的數(shù)據(jù),解決海量數(shù)據(jù)構(gòu)建ES時,索引文件構(gòu)建時效低的問題。
項(xiàng)目地址:https://github.com/didi/ES-Fastloader
▍Levin
Levin是針對低頻更新、靜態(tài)使用、大規(guī)模數(shù)據(jù)的快速加載解決方案。Levin實(shí)現(xiàn)了一套使用在shm共享內(nèi)存片段上的STL-like容器,高效托管大規(guī)模靜態(tài)數(shù)據(jù),加速大內(nèi)存服務(wù)冷啟動和熱加載。具備簡單易用、效率高、性能好、內(nèi)存省的優(yōu)點(diǎn)。
項(xiàng)目地址:https://github.com/didi/levin
5.?
運(yùn)維監(jiān)控

▍Elastic-trib
Elastic-trib是一個Elasticsearch集群管理命令行工具,用于管理公司內(nèi)部30多個Elasticsearch集群,方便用于集成到shell腳本及通過命令行終端對集群進(jìn)行管控。
項(xiàng)目地址:https://github.com/ didi/elastic-trib
▍falcon-log-agent
falcon-log-agent是一個開源版的日志采集工具,旨在從流式的日志中抓取、統(tǒng)計日志中的特征信息。獲取的特征信息,與開源版Open-Falcon監(jiān)控系統(tǒng)打通。可用于業(yè)務(wù)指標(biāo)的衡量、也可用于穩(wěn)定性的建設(shè)。
項(xiàng)目地址:https://github.com/didi/falcon-log-agent
▍Kafka-Manager
一站式Apache Kafka集群指標(biāo)監(jiān)控與運(yùn)維管控平臺。
項(xiàng)目地址:https://github.com/didi/kafka-manager
▍Nightingale
夜鶯(Nightingale)是滴滴基礎(chǔ)平臺聯(lián)合滴滴云研發(fā)和開源的企業(yè)級監(jiān)控解決方案。旨在滿足云原生時代企業(yè)級的監(jiān)控需求。Nightingale 在產(chǎn)品完成度、系統(tǒng)高可用、以及用戶體驗(yàn)方面,達(dá)到了企業(yè)級的要求,可滿足不同規(guī)模用戶的場景,小到幾臺機(jī)器,大到數(shù)十萬都可以完美支撐。兼顧云原生和裸金屬,支持應(yīng)用監(jiān)控和系統(tǒng)監(jiān)控,插件機(jī)制靈活,插件豐富完善,具有高度的靈活性和可擴(kuò)展性。
項(xiàng)目地址:https://github.com/didi/nightingale
▍sqt
此進(jìn)程在滴滴云上用于管理機(jī)器上面的其他agent,比如監(jiān)控的agent、安全的agent,管理主要是:安裝、升級、卸載、查看啟動狀態(tài),不做其他事情。省去客戶手工安裝其他agent的工作。
項(xiàng)目地址:https://github.com/didi/sgt
6.?
小程序

▍Chameleon
cml作為真正讓一套代碼運(yùn)行多端的框架,提供標(biāo)準(zhǔn)的 MVVM 模式,統(tǒng)一開發(fā)各類終端。同時,擁有各端獨(dú)立的運(yùn)行時框架 (runtime)、數(shù)據(jù)管理 (store)、組件庫 (ui)、接口 (api)。此外,cml在跨端能力加強(qiáng)、能力統(tǒng)一、表現(xiàn)一致等方面做了許多工作。
項(xiàng)目地址:https://github.com/didi/chameleon
▍Mpx
Mpx是一款致力于提高小程序開發(fā)體驗(yàn)和開發(fā)效率的增強(qiáng)型小程序框架,通過Mpx,我們能夠高效優(yōu)雅地開發(fā)出具有極致性能的優(yōu)質(zhì)小程序應(yīng)用,并將其輸出到各大小程序平臺和web平臺中運(yùn)行。
項(xiàng)目地址:https://github.com/didi/mpx
7.?
移動開發(fā)

▍Echo
Echo是一款簡單易用、插件化易擴(kuò)展、大屏顯示和操作的調(diào)試工具,旨在提高移動端的研發(fā)調(diào)試效率。基于現(xiàn)有的一些問題和團(tuán)隊需求,我們開發(fā)了一款桌面端的調(diào)試工具Echo,它可以幫助我們實(shí)時查看App各類數(shù)據(jù)(網(wǎng)絡(luò)請求、日志、埋點(diǎn)等),也可以無須改動代碼快速修改調(diào)試App的UI效果,提高我們的開發(fā)調(diào)試效率。
項(xiàng)目地址:https://github.com/didi/echo
▍DoraemonKit
簡稱DoKit,中文名哆啦A夢,意味著能夠像哆啦A夢一樣提供給他的主人各種各樣的工具。是一款功能齊全的客戶端( iOS 、Android )研發(fā)助手。能夠讓每一個 App 快速接入一些常用的或者你沒有實(shí)現(xiàn)的一些輔助開發(fā)工具、測試效率工具、視覺輔助工具,而且能夠完美在 Doraemon 面板中接入你已經(jīng)實(shí)現(xiàn)的與業(yè)務(wù)緊密耦合的一些非通用的輔助工具,并搭配我們的dokit平臺,讓功能得到延伸,接入方便,便于擴(kuò)展。
項(xiàng)目地址:https://github.com/didi/DoraemonKit
▍DroidAssist
DroidAssist 是一個輕量級的 Android 字節(jié)碼編輯插件,通過在 xml 進(jìn)行簡單的配置即可實(shí)現(xiàn)對 class 文件進(jìn)行動態(tài)修改。
項(xiàng)目地址:https://github.com/didichuxing/DroidAssist
▍VirtualAPK
VirtualAPK是滴滴出行自研的一款優(yōu)秀的插件化框架,通過將業(yè)務(wù)模塊插件化,可隨時更新插件來發(fā)布新功能,具備版本隨時發(fā)布的能力。該款插件化框架可幫助企業(yè)隨時通過更新插件的方式來發(fā)布新功能,包括修復(fù)嚴(yán)重Crash或進(jìn)行業(yè)務(wù)“試錯”,擁有功能完備、基本無入侵、插件可輕松訪問宿主代碼和資源、高兼容性這四大核心優(yōu)勢。
項(xiàng)目地址:https://github.com/didi/VirtualAPK
8.?
系統(tǒng)工具

▍Collection
Collection包目標(biāo)是用于替換golang原生的Slice,使用場景是在大量不追求極致性能,追求業(yè)務(wù)開發(fā)效能的場景。Collection包目前支持的元素類型:int, int64, float32, float64, string, struct。
項(xiàng)目地址:https://github.com/didi/collection
▍GateKeeper
GateKeeper 是一個使用 Go (golang) 編寫的不依賴分布式數(shù)據(jù)庫的 API 網(wǎng)關(guān), 使用它可以高效進(jìn)行服務(wù)代理 以及 在線化服務(wù)配置并且你無需重啟服務(wù)器。
項(xiàng)目地址:https://github.com/didi/gatekeeper
▍Gendry
Gendry是一個用于輔助操作數(shù)據(jù)庫的Go包。基于go-sql-driver/mysql,它提供了一系列的方法來為你調(diào)用標(biāo)準(zhǔn)庫database/sql中的方法準(zhǔn)備參數(shù)。
項(xiàng)目地址:https://github.com/didi/gendry
▍JuShaTa
JuShaTa是一個Java容器,提供模塊隔離及模塊熱加載能力。我們提供了一個類似于Tomcat的Java容器JuShaTa,在JuShaTa容器中每個SpringBoot服務(wù)都是一個獨(dú)立的模塊。通過自定義ClassLoader,不同模塊使用不同的ClassLoader進(jìn)行加載,解決jar包沖突;使用Spring Context進(jìn)行上下文隔離,每個模塊對應(yīng)一個Context,解決bean沖突。
項(xiàng)目地址:https://github.com/didi/JuShaTa
▍Kemon
一個用于macOS內(nèi)核監(jiān)視的基于開源前后回調(diào)的框架。kemon是一個基于macOS的內(nèi)核監(jiān)控框架,在Windows上內(nèi)核監(jiān)控有很好的基礎(chǔ),但在Mac上還沒有一個較成熟的hook框架,去跟蹤更多的進(jìn)程內(nèi)核事件的產(chǎn)生。Kemon進(jìn)一步完善,為macOS的內(nèi)核安全性的提高作出應(yīng)有的貢獻(xiàn)。
項(xiàng)目地址:https://github.com/didi/kemon
▍SDS
SDS(即 Service Downgrade System)是一個輕量級、簡單、易用的限流、熔斷、降級系統(tǒng),能讓Java應(yīng)用做到自動限流、熔斷和快速恢復(fù),提升應(yīng)用整體的“彈性”。現(xiàn)在服務(wù)端通過采用流行的微服務(wù)架構(gòu)來應(yīng)對錯綜復(fù)雜的大流量場景,并能在業(yè)務(wù)高速發(fā)展時仍然能做到較強(qiáng)的快速迭代能力和可擴(kuò)展性。微服務(wù)架構(gòu)并不是將整個系統(tǒng)變得更簡單,相反,微服務(wù)架構(gòu)的管理難度高于普通的集中式架構(gòu),所以,如何保證系統(tǒng)的每個節(jié)點(diǎn)在錯綜復(fù)雜的環(huán)境下能穩(wěn)定提供服務(wù),需要借助工具來讓服務(wù)節(jié)點(diǎn)能抵擋流量沖擊、熔斷依賴壞點(diǎn)。
項(xiàng)目地址:https://github.com/didi/sds
▍Tinyid
Tinyid是用Java開發(fā)的一款分布式id生成系統(tǒng),基于數(shù)據(jù)庫號段算法實(shí)現(xiàn),關(guān)于這個算法可以參考美團(tuán)leaf或者tinyid原理介紹。Tinyid擴(kuò)展了leaf-segment算法,支持了多db(master),同時提供了java-client(sdk)使id生成本地化,獲得了更好的性能與可用性。Tinyid在滴滴客服部門使用,均通過tinyid-client方式接入,每天生成億級別的id。
項(xiàng)目地址:https://github.com/didi/tinyid
9.?
前端

▍cube-ui
應(yīng)用Vue構(gòu)建的的出色移動端ui庫工具。該技術(shù)擁有質(zhì)量可靠、體驗(yàn)極致、標(biāo)準(zhǔn)規(guī)范和強(qiáng)擴(kuò)展性這四大特點(diǎn),并擁有獨(dú)特的后編譯技術(shù)方案幫助大幅優(yōu)化性能。cube-ui 的目標(biāo)是讓移動端的開發(fā)更容易,讓開發(fā)人員更加專注于業(yè)務(wù)邏輯的開發(fā),提升研發(fā)效率。
項(xiàng)目地址:https://github.com/didi/cube-ui
▍di18n
di18n 是一個自動轉(zhuǎn)換、基于配置的前端國際化方案。它能自動掃描代碼中的中文文案,將其替換成國際化標(biāo)記;同時將語言抽取成配置,可以放到服務(wù)端保存及更新。
項(xiàng)目地址:https://github.com/didi/di18n
▍Epage
Epage是一款基于schema的可視化頁面配置工具。由工單系統(tǒng)流程表單場景抽象而來,升級成為支持跨框架、組件庫渲染、可定制的通用頁面配置工具。常用于流程表單、中后臺頁面配置。
項(xiàng)目地址:https://github.com/didi/epage
▍Mand Mobile
Mand Mobile提供了30+的實(shí)用組件,能夠滿足移動端頁面開發(fā)中的大部分需求。其中的業(yè)務(wù)類組件還針對金融領(lǐng)域,提取了包括圖表、數(shù)字鍵盤等,從而更好地滿足相關(guān)產(chǎn)品的開發(fā)需要。
項(xiàng)目地址:https://github.com/didi/mand-mobile
▍Mand Mobile-RN
Mand Mobile RN 是 Mand Mobile for React Native 的簡稱。作為 Mand Mobile 系列的React Native 組件庫,在聚焦金融場景的同時,還提供了一些在 RN 項(xiàng)目中特有的組件和解決方案,皆在提升跨端項(xiàng)目的開發(fā)效率和UI體驗(yàn)。
項(xiàng)目地址:https://github.com/didi/mand-mobile-rn
▍Pile.js
使用React構(gòu)建的輕量級移動組件庫。設(shè)計、前端高效協(xié)同,快速搭建移動端組件庫。
項(xiàng)目地址:https://github.com/didi/pile.js
▍Tips
Tips是一個靜態(tài)文案管理平臺。用于修改Web頁面的靜態(tài)文案,支持文案國際化,并提供提示信息的UI展示。它的目的是解決前端開發(fā)者頻繁的靜態(tài)文案修改問題,避免因?yàn)楹唵蔚奈陌感薷亩l(fā)起復(fù)雜的上線流程。
項(xiàng)目地址:https://github.com/didi/Tips
10.?
研發(fā)測試

▍benchmark-thrift
benchmark-thrift是一款測試Thrift應(yīng)用程序性能的工具,開箱即用,高效簡單。
項(xiàng)目地址:https://github.com/didi/benchmark-thrift
▍Rdebug
Rdebug 是滴滴開源的一款用于 RD 研發(fā)、自測、調(diào)試的實(shí)用工具,可以被用來提升 RD 研發(fā)效率、保障代碼質(zhì)量進(jìn)而減少線上事故。
項(xiàng)目地址:https://github.com/didi/rdebug
▍Sharingan
Sharingan是一個基于golang的流量錄制回放工具,錄制線上真實(shí)請求流量進(jìn)行回放測試,適合項(xiàng)目重構(gòu)、回歸測試等。隨著微服務(wù)架構(gòu)的興起,服務(wù)之間的依賴關(guān)系變的越來越復(fù)雜,系統(tǒng)升級頻繁導(dǎo)致維護(hù)測試用例成本高,依賴下游眾多也很難提供穩(wěn)定的測試環(huán)境,為此,我們開發(fā)這套工具來緩解上述問題。
項(xiàng)目地址:https://github.com/didi/sharingan
▍thrift-mock
thrift-mock是一款輕量級的Java測試工具,用來模擬thrift服務(wù)。通過它可以輕松的將依賴的thrift服務(wù)接口進(jìn)行mock,獲得指定的接口返回,從而極大的提升了聯(lián)調(diào)、測試階段的開發(fā)效率。
項(xiàng)目地址:https://github.com/didi/thrift-mock
END
有熱門推薦?
2.?面試:如何決定使用 HashMap 還是 TreeMap?
4.?開發(fā)提升十倍生產(chǎn)力: IDEA 遠(yuǎn)程一鍵部署 Spring Boot 到 Docker
最近面試BAT,整理一份面試資料《Java面試BATJ通關(guān)手冊》,覆蓋了Java核心技術(shù)、JVM、Java并發(fā)、SSM、微服務(wù)、數(shù)據(jù)庫、數(shù)據(jù)結(jié)構(gòu)等等。
獲取方式:點(diǎn)“在看”,關(guān)注公眾號并回復(fù)?Java?領(lǐng)取,更多內(nèi)容陸續(xù)奉上。
文章有幫助的話,在看,轉(zhuǎn)發(fā)吧。
謝謝支持喲 (*^__^*)

