Go to file
beatles-chameleon d3215065b9
Update README.md
2019-03-11 20:49:51 +08:00
.github/ISSUE_TEMPLATE Update issue templates 2019-02-12 11:35:50 +08:00
packages 0.0.16 2019-02-21 15:04:36 +08:00
test init 2019-01-18 22:34:32 +08:00
.gitattributes Update .gitattributes 2019-01-24 19:53:22 +08:00
.gitignore 添加单元测试中的node_modules 2019-01-25 19:04:33 +08:00
.travis.yml init 2019-01-18 22:34:32 +08:00
CHANGELOG.md changelog v0.0.16 2019-02-21 15:13:05 +08:00
lerna.json 0.0.16-alpha 2019-02-20 20:54:36 +08:00
package.json init 2019-01-18 22:34:32 +08:00
README.md Update README.md 2019-03-11 20:49:51 +08:00

Chameleon Build Status license version

Chameleon/kəˈmiːlɪən/,简写CML,中文名卡梅龙;中文意思变色龙,意味着就像变色龙一样能适应不同环境的跨端整体解决方案。

English Introduction | 中文介绍

文档

主站: CMLJS.org

CML 即 多端

一端所见即多端所见——多端高度一致,无需关注各端文档。

基于多态协议不影响各端差异化灵活性

本地预览

web 微信小程序 native-weex 百度小程序 支付宝小程序

背景

研发同学在端内既追求h5的灵活性也要追求性能趋近于原生。 面对入口扩张主端、独立端、微信小程序、支付宝小程序、百度小程序、Android厂商联盟快应用单一功能在各平台都要重复实现开发和维护成本成倍增加。迫切需要维护一套代码可以构建多入口的解决方案历经近20个月打磨滴滴跨端解决方案Chameleon终于发布。真正专注于让一套代码运行多端。

设计理念

软件架构设计里面最基础的概念“拆分”和“合并”,拆分的意义是“分而治之”,将复杂问题拆分成单一问题解决,比如后端业务系统的”微服务化“设计;“合并”的意义是将同样的业务需求抽象收敛到一块,达成高效率高质量的目的,例如后端业务系统中的“中台服务”设计。

而 Chameleon 属于后者,通过定义统一的语言框架+统一多态协议,从多端(对应多个独立服务)业务中抽离出自成体系、连续性强、可维护强的“前端中台服务”。

跨端目标

虽然不同各端环境千变万化,但万变不离其宗的是 MVVM 架构思想,Chameleon 目标是让MVVM跨端环境大统一

Alt text

学习全景图

Alt text

开发语言

从事过网页编程的人知道网页编程采用的是HTML + CSS + JS这样的组合同样道理chameleon中采用的是 CML + CMSS + JS。

JS语法用于处理页面的逻辑层与普通网页编程相比本项目目标定义标准MVVM框架拥有完整的生命周期watchcomputed数据双向绑定等优秀的特性能够快速提高开发速度、降低维护成本。

CMLChameleon Markup Language用于描述页面的结构我们知道HTML是有一套标准的语义化标签例如文本是<span> 按钮是<button>。CML同样具有一套标准的标签我们将标签定义为组件CML为用户提供了一系列组件。同时CML中还支持模板语法例如条件渲染、列表渲染数据绑定等等。同时CML支持使用类VUE语法,让你更快入手。

CMSS(Chameleon Style Sheets)用于描述CML页面结构的样式语言其具有大部分CSS的特性并且还可以支持各种css的预处语言less stylus

通过以上对于开发语言的介绍相信你看到只要是有过网页编程知识的人都可以快速的上手chameleon的开发

多端高度一致

深入到编程语言维度保障一致性,包括框架、生命周期、内置组件、事件通信、路由、界面布局、界面单位、组件作用域、组件通信等高度统一

丰富的组件

在用CML写页面时chameleon提供了丰富的组件供开发者使用,内置的有button switch radio checkbox等组件,扩展的有c-picker c-dialog c-loading等等,覆盖了开发工作中常用的组件。

丰富的API

为了方便开发者的高效开发chameleon提供了丰富的API库,发布为npm包chameleon-api,里面包括了网络请求、数据存储、地理位置、系统信息、动画等方法。

自由定制API和组件

基于强大的多态协议可自由扩展任意API和组件不强依赖框架的更新。各端原始项目中已积累大量组件也能直接引入到跨端项目中使用。

基于强大的多态协议,充分隔离各端差异化实现,轻松维护一套代码实现跨多端

智能规范校验

代码规范校验,当出现不符合规范要求的代码时,编辑器会展示智能提示,不用挨个调试各端代码,同时命令行启动窗口也会提示代码的错误位置。

渐进式跨端

既想一套代码运行多端又不用大刀阔斧的重构项目不仅可以用cml开发页面也可以将多端重用组件用cml开发直接在原有项目里面调用。

先进前端开发体验

Chameleon 不仅仅是跨端解决方案。基于优秀的前端打包工具Webpack吸收了业内多年来积累的最有用的工程化设计提供了前端基础开发脚手架命令工具帮助端开发者从开发、联调、测试、上线等全流程高效的完成业务开发。

联系我们

ChameleonCore@didiglobal.com

微信 & QQ交流群

微信


QQ