推薦一個滴滴開源的跨端整體解決方案!

2020-12-11 APP架構師

Chameleon/kmiln/,簡寫CML,中文名卡梅龍;中文意思變色龍,意味著就像變色龍一樣能適應不同環境的跨端整體解決方案。

CML 即 多端

支持平臺:web、微信小程序、支付寶小程序、百度小程序、android(weex)、ios(weex)、qq 小程序、字節跳動小程序、快應用、持續更新中

一端所見即多端所見——多端高度一致,無需關注各端文檔。

基於多態協議不影響各端差異化靈活性

背景

研發同學在端內既追求 h5 的靈活性,也要追求性能趨近於原生。面對入口擴張,App 客戶端、微信小程序、支付寶小程序、百度小程序、Android 廠商聯盟快應用、其他類小程序,單一功能在各平臺都要重複實現,開發和維護成本成倍增加。迫切需要維護一套代碼可以構建多入口的解決方案,滴滴跨端解決方案 Chameleon 終於發布。真正專注於讓一套代碼運行多端。

設計理念

軟體架構設計裡面最基礎的概念「拆分」和「合併」,拆分的意義是「分而治之」,將複雜問題拆分成單一問題解決,比如後端業務系統的」微服務化「設計;「合併」的意義是將同樣的業務需求抽象收斂到一塊,達成高效率高質量的目的,例如後端業務系統中的「中臺服務」設計。

而 Chameleon 屬於後者,通過定義統一的語言框架+統一多態協議,從多端(對應多個獨立服務)業務中抽離出自成體系、連續性強、可維護強的「前端中臺服務」。

跨端目標

雖然不同各端環境千變萬化,但萬變不離其宗的是 MVVM 架構思想,Chameleon 目標是讓 MVVM 跨端環境大統一

多端高度一致

深入到程式語言維度保障一致性,包括框架、生命周期、內置組件、事件通信、路由、界面布局、界面單位、組件作用域、組件通信等高度統一

豐富的組件

在用 CML 寫頁面時,chameleon 提供了豐富的組件供開發者使用,內置的有button switch radio checkbox等組件,擴展的有c-picker c-dialog c-loading等等,覆蓋了開發工作中常用的組件。

豐富的 API

為了方便開發者的高效開發,chameleon 提供了豐富的 API 庫,發布為 npm 包chameleon-api,裡面包括了網絡請求、數據存儲、地理位置、系統信息、動畫等方法。

自由定製 API 和組件

基於強大的多態協議,可自由擴展任意 API 和組件,不強依賴框架的更新。各端原始項目中已積累大量組件,也能直接引入到跨端項目中使用。

基於強大的多態協議,充分隔離各端差異化實現,輕鬆維護一套代碼實現跨多端

智能規範校驗

代碼規範校驗,當出現不符合規範要求的代碼時,編輯器會展示智能提示,不用挨個調試各端代碼,同時命令行啟動窗口也會提示代碼的錯誤位置。

漸進式跨端

既想一套代碼運行多端,又不用大刀闊斧的重構項目?不僅可以用 cml 開發頁面,也可以將多端重用組件用 cml 開發,直接在原有項目裡面調用。

先進前端開發體驗

Chameleon 不僅僅是跨端解決方案。基於優秀的前端打包工具 Webpack,吸收了業內多年來積累的最有用的工程化設計,提供了前端基礎開發腳手架命令工具,幫助端開發者從開發、聯調、測試、上線等全流程高效的完成業務開發。

項目地址

官方網站:https://cmljs.org/github地址:https://github.com/chameleon-team

相關焦點

  • 滴滴開源跨平臺統一 MVVM 框架 Chameleon
    近日,滴滴在 GitHub 上開源了跨端解決方案 Chameleon,簡寫 CML,中文名卡梅龍;中文意思變色龍,意味著就像變色龍一樣能適應不同環境的跨端整體解決方案,具有易用、開發快、高性能等特點。面對入口擴張,主端、獨立端、微信小程序、支付寶小程序、百度小程序、Android 廠商聯盟快應用,單一功能在各平臺都要重複實現,開發和維護成本成倍增加。迫切需要維護一套代碼可以構建多入口的解決方案,歷經近 20 個月打磨,滴滴跨端解決方案 Chameleon 終於發布,真正專注於讓一套代碼運行多端。
  • 滴滴國際化項目 Android 端架構演進與詳解
    國外可用地圖數據源主要有 OpenStreetMap、Here、Tomtom,OpenStreetMap 是個開源的地圖數據源,類似維基百科的模式,所以數據很全很新,甚至超過 Google Map,但不可避免會有些髒數據,前期的話主要是針對大城市,OpenStreetMap 的數據可以滿足需求。但因為涉及到異地跨時區溝通,所以希望技術支持力度夠大。
  • 浩鯨科技和京東加入 OpenMessaging 開源標準社區
    至此,已經加入 OpenMessaging 開源標準社區的企業有阿里巴巴、Datapipeline、滴滴出行、浩鯨科技、京東商城、青雲QingCloud、Streamlio、微眾銀行、Yahoo、中國移動蘇州研發中心(按首字母排序)等來自網際網路、軟體服務、金融和運營商行業的10家企業,覆蓋中美兩個國家。
  • 解讀NeurIPS-AutoDL 總決賽冠軍解決方案,代碼已開源
    本文介紹了來自冠軍團隊的解決方案。開原始碼連結:https://github.com/DeepWisdom/AutoDL註:開原始碼基於 Full-AutoML 系統自動設計出的共性解並加以改造圖 1:AutoDL2019-2020 挑戰賽官方通告背景
  • 最火移動端跨平臺方案盤點:React Native、weex、Flutter
    目前移動端跨平臺開發中,備受關注的方案大致歸納為以下幾種情況:1)react native、weex均使用JavaScript作為程式語言,目前JavaScript在跨平臺開發中,可謂佔據半壁江山,大有「一統天下」的趨勢;2)kotlin-native開始支持 iOS 和 Web
  • 阿里正式開源輕量級深度學習端側推理引擎「MNN」
    AI科學家賈揚清如此評價道: 「與 Tensorflow、Caffe2 等同時覆蓋訓練和推理的通用框架相比,MNN 更注重在推理時的加速和優化,解決在模型部署的階段的效率問題,從而在移動端更高效地實現模型背後的業務。這和伺服器端 TensorRT 等推理引擎的想法不謀而合。
  • 「阿波羅計劃」線上首講:基於深度學習的端到端自動駕駛解決方案
    兩種方案:Rule based 和 End-to-end整個阿波羅項目其實是百度面向自動駕駛的一個很宏大的系統,而端到端(end-to-end)的方案是其中的一個子方向。今天主要進行這個子方向的實踐和經驗分享。
  • 伯克利開源端到端深度強化學習方案,無需獎勵工程即可高效學習
    目前,我們已經對自己的實現方案進行了開源。我們的方法使我們能夠以端到端方式從圖像像素當中解決諸多基於現實世界的機器人問題,且無需任何以手動方式設計的獎勵函數。基於分類器的獎勵機制雖然大多數以往工作傾向於利用專用系統來建立獎勵機制,從而解決各類實際任務,但我們也從原有體系當中探索出一種更為簡單的替代性方案。
  • JFrog傑蛙亮相全球軟體開發者大會,帶來世界最前沿DevOps解決方案
    作為世界領先的DevOps解決方案提供商,JFrog傑蛙受邀出席本次大會,並為上千名團隊負責人、架構師、開發工程師分享了JFrog傑蛙核心產品—JFrog Artifactory和JFrog Xray。JFrog高級架構師高欣博士在現場SESSION中談到:「如果開發人員想要使用開源組件上開發的軟體,需要花費大量時間手動掃描漏洞、智慧財產權侵權或性能等問題。
  • 金固股份籤約滴滴小桔車服 實現C端、B端兩手抓
    金固股份籤約滴滴小桔車服 實現C端、B端兩手抓 2020-03-03 09:54:14 據了解,此前汽車超人與小桔車服在業務層面已經展開多項深入合作,不少汽車超人門店已經是小桔車服定點服務門店,同時,汽車超人也為小桔車服在發展線下服務門店過程中提供方案支持。雙方在股權投資、車隊數位化運營管理、充電樁建設等方面都有不同程度的探討。  據公開信息顯示,2019年在滴滴平臺獲得收入的網約車司機達到了1166萬人,小桔車服旗下租車業務2019年在租車輛超過50萬輛。
  • 移動端開發一些常見問題的解決方案
    在頁面建立一個剛好鋪滿全屏的 div 元素,然後獲取它的寬高,這個寬高就是該設備的邏輯解析度。而且現在手機與手機之間的差異也很大,需要寫很多 @media 來解決適配的問題。一個可行的解決方案我覺得有一個比較可行的解決方案,對於適配多種行動裝置有一定的幫助。那就是整體布局使用 vw、百分比 % 作為計量單位,內容樣式上使用 px 作為計量單位。
  • 2015年最值得推薦的10個開源新秀項目
    【IT168 資訊】每年大家都能看到成千上萬個新的開源項目啟動,然而只有少數能夠真正實施成功。其中一些項目在現有核心技術基礎上有了新的推進,另一些在新的領域也有了很大突破。對於多數開源項目來說,其目的都在於處理並解決簡單的開發問題,部分開源項目意在與世界各地誌同道合的開發者共享信息和資源。
  • 萬朋教育陳崢:精準教學整體解決方案打造高效課堂
    萬朋教育精準教學事業部陳崢在大會上帶來了萬朋精準教學整體解決方案,深度剖析了萬朋如何能做到準確挖掘用戶需求,從而提供精準教學產品實現個性化教育提升教學質量。學校、教師也都非常渴望有一個精準教學產品,助力他們實現個性化的教學,進而提高學習成績。陳崢表示,個性化教學和因材施教其實就是精準教學,萬朋的精準教學整體解決方案就是為個性化教學而生,最終每一個學校最終都會實現精準教學。 陳崢談到,目前精準教學現狀表現不一。
  • 斯坦福開源Weld:高效實現數據分析的端到端優化
    導讀:Weld 是史丹福大學 DAWN 實驗室的一個開源項目,在 CIDR 2017 論文中描述了它的初始原型。Weld 用於對結合了數據科學庫和函數的現有工作負載進行優化,而無需用戶修改代碼。
  • Datakin推出OpenLineage開源項目,定義資料處理歷程開放標準
    開源元資料項目Marquez發起公司Datakin,宣布推出定義資料處理歷程(Data Lineage)開放標準項目OpenLineage,目的是要制定一套統一的資料處理歷程標準,以提升企業中資料操作的效率與可信度。
  • 2020社會化用工整體解決方案升級發布
    本次峰會上,用友薪福社正式發布了全新升級的社會化用工整體解決方案。近年來,企業經營正面臨著經濟、行業、人才等方面的壓力。在經濟方面,我國GDP增速緩慢,經濟增長缺乏新動能;行業方面,同行業企業之間競爭激烈,生存壓力極大,且部分企業業務規模化發展遭遇瓶頸;人才方面,部分企業出現人才招聘率低、人才留存率低等問題,企業對相關崗位的專業性需求無法得到很好滿足。
  • 阿里雲實時大數據解決方案,助力企業實時分析與決策
    數據集成的實時同步技術自帶髒數據收集機制,在整個ETL的鏈路中,無論是讀取端還是寫入端不支持的數據,都可以通過插件中心的能力收集並輸出到用戶配置的目標端,包括本地日誌、Loghub、MaxCompute等,為數據的再處理提供支持。
  • 平民化跨屏互聯解決方案——DLNA簡介
    多屏共存,必然會帶來數據共享的問題,比如當你正在書房電腦上看電影,卻突然想去洗手間的時候;當你正在客廳看電視,卻突然想去洗手間的時候;當你....想去洗手間的時候,手紙可以帶在身上,但是視頻卻帶不走,這時候,你就需要多屏互聯的技術幫你解決「洗手間問題」。
  • 【吐血整理】強烈推薦 GitHub 上值得學習的開源實戰項目(持續更新中,萬字長文建議收藏)
    AlloyTeam/Mars       推薦指數:★Star8.5K推薦語:騰訊AlloyTeam出品的面向億萬用戶級的移動端Web解決方案,你值得擁有!Vue.jsvue-element-admin       推薦指數:★Star46.6K推薦語:vue-element-admin 是一個後臺前端解決方案,它基於vue和 element-ui 實現。
  • 惠普推出端到端解決方案 助零售商打造豐富零售環境
    「惠普零售行業解決方案有望在2010年為零售行業帶來革命性的改變」,中國惠普副總裁,信息產品集團臺式機關係型業務部總經理周信宏先生說道,「作為一整套廣泛而靈活的端到端解決方案。惠普的最新解決方案,融合了數字標牌解決方案、互動展示以及POS管理系統等方案和應用。該系列解決方案可幫助不同類型及規模的零售商實現全生命周期解決方案的一站式部署以及簡單快捷安裝,實現效率的最大化提升。」