工欲善其事,必先利其器。平時在項目開發(fā)的工程中,很少自己造輪子。自己人造的輪子難免會出很多“意想不到”的bug,還會引起其他同事的“不爽”?;旧享椖块_發(fā)都采用開源項目,相對靠譜。
關(guān)于“意想不到”的bug,這一點讓我感慨萬千......第一份工作時,做的的是一個xamarin的android客戶端,一個ListView列表的Adapter,居然沒有一個通用的BaseAdapter,一個人寫一套,到處都是,你用你的,我用我的。代碼冗余、bug不斷。后來......這個就成了歷史原因,變成了一座“屎山”
寫這篇文章,盤點一下BAT牛逼的開源項目,國產(chǎn)的也有很多干貨。開源項目的順序按照阿里巴巴、騰訊、百度(基于現(xiàn)實嘛)。
特性
https://github.com/ant-design/ant-designstar:54K
特點
https://github.com/alibaba/fastjsonstar:20.1k
Druid是一個 JDBC 組件,阿里巴巴數(shù)據(jù)庫事業(yè)部出品,為監(jiān)控而生的數(shù)據(jù)庫連接池。
特點
https://github.com/alibaba/druidstar:19.5k
特點當你遇到以下類似問題而束手無策時,Arthas可以幫助你解決:
https://alibaba.github.io/arthas/star:18.2k
特點
https://github.com/alibaba/icestart:14.2k
這是百度第一個進入國際頂級開源社區(qū)的項目。全球著名開源社區(qū)Apache基金會宣布“百度開源的ECharts項目全票通過進入Apache孵化器”。
ECharts開源來自百度商業(yè)前端數(shù)據(jù)可視化團隊,基于HTML5 Canvas,是一個純JavaScript圖表庫,提供直觀,生動,可交互,可個性化定制的數(shù)據(jù)可視化圖表。創(chuàng)新的拖拽重計算、數(shù)據(jù)視圖、值域漫游等特性大大增強了用戶體驗,賦予了用戶對數(shù)據(jù)進行挖掘、整合的能力。
特點ECharts是一個免費的,功能強大的圖表和可視化庫,它提供了一種簡單的方法來向您的商業(yè)產(chǎn)品中添加直觀,交互式和高度可定制的圖表。它使用純JavaScript編寫,并基于zrender,這是一個全新的輕量級畫布庫https://github.com/apache/incubator-echarts
star:38.1k
KityMinder 是百度 FEX 團隊的 f-cube 小組(原 UEditor 小組)的又一力作。作為一款在線的腦圖編輯工具,它有著不亞于 native 腦圖工具的交互體驗。同時,它充分發(fā)揮了 Web 云存儲的優(yōu)勢,可以直接將編輯中的腦圖同步到云端。此外,借由獨創(chuàng)的 “云盤分享”功能,用戶可以一鍵將當前編輯的腦圖直接生成在線鏈接共享給其他用戶,實現(xiàn)無縫溝通。產(chǎn)品地址:http://naotu.baidu.com
https://github.com/fex-team/kityminderstar:3.3k
UEditor是由百度web前端研發(fā)部開發(fā)所見即所得富文本web編輯器,具有輕量,可定制,注重用戶體驗等特點,開源基于MIT協(xié)議,允許自由使用和修改代碼。
githubhttps://github.com/fex-team/ueditorstar:4.9kWebUploader 是由Baidu WebFE(FEX)團隊開發(fā)的一個簡單的以HTML5為主,F(xiàn)LASH為輔的現(xiàn)代文件上傳組件。在現(xiàn)代的瀏覽器里面能充分發(fā)揮HTML5的優(yōu)勢,同時又不摒棄主流IE瀏覽器,延用原來的FLASH運行時,兼容IE6+,Andorid 4+,IOS 6+。兩套運行時,同樣的調(diào)用方式,可供用戶任意選用。采用大文件分片并發(fā)上傳,極大的提高了文件上傳效率。官網(wǎng)地址:http://fex.baidu.com/webuploader/
特點
1.分片、并發(fā)分片與并發(fā)結(jié)合,將一個大文件分割成多塊,并發(fā)上傳,極大地提高大文件的上傳速度。
當網(wǎng)絡(luò)問題導致傳輸錯誤時,只需要重傳出錯分片,而不是整個文件。另外分片傳輸能夠更加實時的跟蹤上傳進度。
2.預覽、壓縮支持常用圖片格式j(luò)pg,jpeg,gif,bmp,png預覽與壓縮,節(jié)省網(wǎng)絡(luò)數(shù)據(jù)傳輸。
解析jpeg中的meta信息,對于各種orientation做了正確的處理,同時壓縮后上傳保留圖片的所有原始meta數(shù)據(jù)。
3.多途徑添加文件支持文件多選,類型過濾,拖拽(文件&文件夾),圖片粘貼功能。
粘貼功能主要體現(xiàn)在當有圖片數(shù)據(jù)在剪切板中時(截屏工具如QQ(Ctrl + ALT + A), 網(wǎng)頁中右擊圖片點擊復制),Ctrl + V便可添加此圖片文件。
4.HTML5 & FLASH兼容主流瀏覽器,接口一致,實現(xiàn)了兩套運行時支持,用戶無需關(guān)心內(nèi)部用了什么內(nèi)核。
同時Flash部分沒有做任何UI相關(guān)的工作,方便不關(guān)心flash的用戶擴展和自定義業(yè)務(wù)需求。
5.MD5秒傳當文件體積大、量比較多時,支持上傳前做文件md5值驗證,一致則可直接跳過。
如果服務(wù)端與前端統(tǒng)一修改算法,取段md5,可大大提升驗證性能,耗時在20ms左右。
6.易擴展、可拆分采用可拆分機制, 將各個功能獨立成了小組件,可自由搭配。
采用AMD規(guī)范組織代碼,清晰明了,方便高級玩家擴展。
https://github.com/fex-team/webuploaderstar:7.1k
Distributed Configuration Management Platform(分布式配置管理平臺)專注于各種 分布式系統(tǒng)配置管理 的通用組件/通用平臺, 提供統(tǒng)一的配置管理服務(wù)。包括 百度、滴滴出行、銀聯(lián)、網(wǎng)易、拉勾網(wǎng)、蘇寧易購、順豐科技 等知名互聯(lián)網(wǎng)公司正在使用!
主要目標https://github.com/knightliao/disconfstar:5.1k
FrozenUI的CSS組件庫,基于騰訊手Q樣式規(guī)范。特點FrozenUI 是一套基于移動端的UI庫,輕量、精美、遵從手機 QQ 設(shè)計規(guī)范。
適用于使用手Q規(guī)范設(shè)計的Web頁面,而針對非手Q規(guī)范的頁面,可通過修改變量定制界面主題,并且可以按需選擇需要的組件。
使用iconfont展示圖標,包含了按鈕,列表,表單,提示,彈窗等常用組件,新增文本,布局,1px, rem,文字截斷,占位,兩端留白,兩端對齊等解決方案,同時解決了移動端屏幕適配問題。
https://github.com/frozenui/frozenuistar:2.9kncnn 從設(shè)計之初深刻考慮手機端的部署和使用。無第三方依賴,跨平臺,手機端 cpu 的速度快于目前所有已知的開源框架。基于 ncnn,開發(fā)者能夠?qū)⑸疃葘W習算法輕松移植到手機端高效執(zhí)行,開發(fā)出人工智能 APP,將 AI 帶到你的指尖。ncnn 目前已在騰訊多款應(yīng)用中使用,如 QQ,Qzone,微信,天天P圖等。
支持大部分常用的 CNN 網(wǎng)絡(luò)
https://github.com/Tencent/ncnnstart:7.8
騰訊開源的通用 Web 組件化框架 ,全面擁抱 Web Components。
Web Components 包含四項技術(shù)標準規(guī)范:CustomElement、Shadow DOM、Template 與 HTML Import,Omi 框架使用了其中最為重要的 Custom Element 和 Shadow DOM 能力,Template 使用語法噪音最小編程體驗最好的 JSX 來替代作為 UI 結(jié)構(gòu)的表達式,HTML Import 使用 Webpack 或者其他任意流行打包工具來替代
https://github.com/Tencent/omistar:10.4kTinker是騰訊出的一款熱修復框架,可以修復代碼,資源文件,so庫,但不能新增四大組件。什么是tinker?熱修復與增量更新的本質(zhì)區(qū)別:增量更新是根據(jù)new.apk和old.apk按照bsdiff算法,生成一個patch,然后將patch通過服務(wù)端推送,推送給客戶端,客戶端下載patch,再使用bsdiff算法,將patch和old.apk生成新的apk,完成升級。需要重新安裝。
熱修復,是不需要進行重新安裝,所以這就導致了熱修復是不能新增四大組件的。
https://github.com/Tencent/tinkerstar: 4.5k
WeUI是一套同微信原生視覺體驗一致的基礎(chǔ)樣式庫,為微信Web開發(fā)量身設(shè)計,可以令用戶的使用感知更加統(tǒng)一。包含button、cell、dialog、toast、article、icon等各式元素
https://github.com/weui/weuistar:23.7
結(jié)語:看得出BAT在開源生態(tài)上的差距嗎,BAT哪個更牛逼相信你在github能找到答案聯(lián)系客服