chameleon 【已完成】字节跳动小程序共建计划

ssm49v7z  于 2022-12-31  发布在  其他
关注(0)|答案(8)|浏览(196)

该项目已经圆满结束,已支持字节小程序

CML的跨端标准协议

Chameleon 规范了一套跨端标准,称之为MVVM+协议;开发者只需要按照 标准扩展流程 ,即可快速扩展任意MVVM架构模式的新端。并让已有项目无缝运行新端。

目标

按照 新端扩展标准 支持字节跳动小程序

参与方

不懂小彬(滴滴CML团队)、荣景超(滴滴CML团队)、 怀虚 (阿里影业)、 Jeany (芒果TV)

具体工作拆分和排期

开发仓库,基本头条框架已经搭好: https://github.com/chameleon-team/cml-tt-sets

  • cml-tt-api的工作是独立的 不依赖其他npm包的开发
  • cml-tt-runtime 运行时的工作也是独立的 不依赖其他npm包
  • cml-tt-plugin中的模板编译 在事件绑定的代理函数中依赖runtime 其他的工作不依赖
  • cml-tt-ui-builtin和 cml-tt-ui依赖cml-tt-runtime和cml-tt-plugin的完成 才能正确执行。
  • cml-tt-store的工作也是独立的,基本上小程序端实现是相同的。

| 工作 | 总体工作量 | 排期 | 负责人 | 进度 | 需要单测 | 备注 |
| cml-tt-api | 7天 | | | | 是 | 31个方法 小程序的api基本一致,每天完成5个。 |
| cml-tt-runtime | 7天 | 2019-05-17 | | | 是 | 小程序的VM对象也基本一致,熟悉chameleon-runtime代码 然后进行当前端的改动。 |
| cml-tt-plugin | 7天 | 05-29 | | | 是 | 数据ast的增删改操作,事件处理复杂一些,参考chameleon-template-parse和chameleon-mixins |
| cml-tt-store | 3天 | 05-22 | | | 是 | 小程序的store基本一致,参考chameleon-store |
| cml-tt-ui-builtin | 7天 | 2019-05-27 | | | 否 | 11个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试 |
| cml-tt-ui | 3天 | 05-16 | | | 否 | 3个多态组件,其他的组件不是多态可以直接测试 需要依赖编译和运行时完成 但也可以提前写好后测试 |
| 联调测试 | 6天 | 5月30--6月6日 | | | | 编译插件5月29日完成后,进行编译和运行时的联调和测试,两个组件库的测试,store的测试,api的测试。 |

具体排期见如下各负责人评论

juzqafwq

juzqafwq1#

cml-tt-api

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| alert方法实现与测试demo | | 05-06 | Jeany | 已完成 | |
| canIUse方法实现与测试demo | | | | 完成 | 无 |
| cancelAnimationFrame方法实现与测试demo | | 05-07 | Jeany | 已完成 | |
| chooseImage方法实现与测试demo | | 05-07 | Jeany | 已完成 | |
| close方法实现与测试demo | | 05-07 | Jeany | 已完成 | |
| confirm方法实现与测试demo | | 05-06 | Jeany | 已完成 | |
| cpx2px方法实现与测试demo | | | | 完成 | |
| createAnimation方法实现与测试demo | | 05-16 | Jeany | 完成 | |
| get方法实现与测试demo | | 05-16 | | 完成 | |
| getClipBoardData方法实现与测试demo | | 05-08 | | 完成 | |
| getLaunchOptionsSync方法实现与测试demo | | 05-16 | | 完成 | |
| getLocationInfo方法实现与测试demo | | 05-16 | | 完成 | |
| getRect方法实现与测试demo | | 05-16 | | 完成 | |
| getStorage方法实现与测试demo | | 05-08 | | 完成 | |
| getSystemInfo方法实现与测试demo | | 05-16 | | 完成 | |
| inSDK方法实现与测试demo | | 05-06 | Jeany | 已完成 | |
| initSocket方法实现与测试demo | | 05-16 | | 完成 | |
| navigateBack方法实现与测试demo | | 05-16 | | 完成 | |
| navigateTo方法实现与测试demo | | 05-16 | | 完成 | |
| open方法实现与测试demo | | 05-08 | | 完成 | 无 |
| post方法实现与测试demo | | 05-16 | 完成 | 完成 | |
| px2cpx方法实现与测试demo | | 05-16 | | 完成 | |
| redirectTo方法实现与测试demo | | 05-16 | | 完成 | |
| reload方法实现与测试demo | | 05-16 | | 完成 | 无 |
| removeStorage方法实现与测试demo | | 05-08 | | 完成 | |
| request方法实现与测试demo | | 05-16 | | 完成 | |
| requestAnimationFrame方法实现与测试demo | | 05-07 | Jeany | 已完成 | |
| setClipBoardData方法实现与测试demo | | 05-08 | | 完成 | |
| setStorage方法实现与测试demo | | 05-08 | | 完成 | |
| setTitle方法实现与测试demo | | 05-07 | Jeany | 已完成 | |
| showToast方法实现与测试demo | | 05-06 | Jeany | 已完成 | |

bnl4lu3b

bnl4lu3b3#

cml-tt-plugin

工作工作量排期负责人进度备注
c-if c-else c-else-if c-show c-for c-text c-key  05-29荣景超 已完成  
component is 动态组件 05-29 荣景超  已完成  
c-model  05-29 荣景超 已完成  
c-bind 事件绑定 配合运行时mixins代理事件与处理事件对象 05-29  荣景超 已完成  
c-animation  05-29 荣景超 已完成  
style与class处理 05-29  荣景超 已完成  
基本标签替换  05-29荣景超已完成 如果需要的话,比如cell 替换成view slider-item替换成swiper-item
8fq7wneg

8fq7wneg4#

cml-tt-ui

工作工作量排期负责人进度备注
c-picker-item 组件实现与测试demo 05-16 不懂小彬   
c-refresh 组件实现与测试demo 05-16  不懂小彬  
c-actionsheet, c-checkbox-group, c-dialog, c-loading, c-picker, c-picker-panel, c-popup, c-radio-group, c-tab, c-tab-item, c-tab-pane, c-tab-pane-item, c-tabbar, c-tip, c-toast 组件实现与测试demo 05-16 不懂小彬   
olmpazwi

olmpazwi5#

cml-tt-store

工作工作量排期负责人进度备注
createStore 05-22 不懂小彬    
commit 05-22 不懂小彬    
dispatch  05-22 不懂小彬   
mapState 05-22 不懂小彬   
mapGetters  05-22不懂小彬    
mapMutations 05-22 不懂小彬   
mapActions  05-22不懂小彬    
registerModule 05-22不懂小彬    
xtupzzrd

xtupzzrd7#

CML扩展字节跳动小程序测试工作

目标

对扩展字节跳动小程序进行完整测试

参与方

滴滴CML团队、阿里影业、芒果TV

具体测试工作

1 各npm包功能的测试

负责人: 各npm包开发者

| 工作 | 排期 |
| api库 测试demo要覆盖到每一个方法的调用参数。 | |
| ui组件库 测试demo要覆盖到每一个组件的属性和事件。 | |
| ui-builtin组件库 测试demo要覆盖到每一个组件的属性和事件。 | |
| plugin 测试每一个指令,模板编译的每一个处理。 | |
| runtime 测试每一个options选项的处理。 | |
| store 测试store的完整功能。 | |

2 实例项目测试

把原来没有头条小程序的项目改成支持头条小程序进行测试。
负责人:

附:
各npm包需要测试的主要功能。

cml-tt-api

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| alert方法实现与测试demo | | | | | |
| canIUse方法实现与测试demo | | | | | |
| cancelAnimationFrame方法实现与测试demo | | | | | |
| chooseImage方法实现与测试demo | | | | | |
| close方法实现与测试demo | | | | | |
| confirm方法实现与测试demo | | | | | |
| cpx2px方法实现与测试demo | | | | | |
| createAnimation方法实现与测试demo | | | | | |
| get方法实现与测试demo | | | | | |
| getClipBoardData方法实现与测试demo | | | | | |
| getLaunchOptionsSync方法实现与测试demo | | | | | |
| getLocationInfo方法实现与测试demo | | | | | |
| getRect方法实现与测试demo | | | | | |
| getStorage方法实现与测试demo | | | | | |
| getSystemInfo方法实现与测试demo | | | | | |
| inSDK方法实现与测试demo | | | | | |
| initSocket方法实现与测试demo | | | | | |
| navigateBack方法实现与测试demo | | | | | |
| navigateTo方法实现与测试demo | | | | | |
| open方法实现与测试demo | | | | | |
| post方法实现与测试demo | | | | | |
| px2cpx方法实现与测试demo | | | | | |
| redirectTo方法实现与测试demo | | | | | |
| reload方法实现与测试demo | | | | | |
| removeStorage方法实现与测试demo | | | | | |
| request方法实现与测试demo | | | | | |
| requestAnimationFrame方法实现与测试demo | | | | | |
| setClipBoardData方法实现与测试demo | | | | | |
| setStorage方法实现与测试demo | | | | | |
| setTitle方法实现与测试demo | | | | | |
| showToast方法实现与测试demo | | | | | |

cml-tt-runtime

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| 适配options |
| 处理props | | | | | |
| 处理data | | | | | |
| 生命周期映射 | | | | | |
| 处理mixins | | | | | |
| 处理钩子hooks | | | | | |
| 处理methods | | | | | |
| 能力注入(在最早生命周期hook,对执行上下文 this 改造) |
| 处理 data【使具备响应式数据处理能力】 | | | | | |
| 处理 computed【使具备计算属性能力】 | | | | | |
| 处理 watch【使具备数据监听能力】 | | | | | |

cml-tt-plugin

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| c-if c-else c-else-if c-show c-for c-text c-key | | | | | |
| component is 动态组件 | | | | | |
| c-model | | | | | |
| c-bind 事件绑定 配合运行时mixins代理事件与处理事件对象 | | | | | |
| c-animation | | | | | |
| style与class处理 | | | | | |
| 基本标签替换 | | | | | 如果需要的话,比如cell 替换成view slider-item替换成swiper-item |

cml-tt-ui-builtin

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| checkbox/radio/layout文件夹下的7个布局 组件实现与测试demo | | | | | |
| button 组件实现与测试demo | | | | | |
| carousel 组件实现与测试demo | | | | | |
| carousel-item 组件实现与测试demo | | | | | |
| input 组件实现与测试demo | | | | | |
| list 组件实现与测试demo | | | | | |
| page 组件实现与测试demo | | | | | |
| richtext 组件实现与测试demo | | | | | |
| scroller 组件实现与测试demo | | | | | |
| switch 组件实现与测试demo | | | | | |
| textarea 组件实现与测试demo | | | | | |
| video 组件实现与测试demo | | | | | |

cml-tt-ui

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| c-picker-item 组件实现与测试demo | | | | | |
| c-refresh 组件实现与测试demo | | | | | |
| c-actionsheet, c-checkbox-group, c-dialog, c-loading, c-picker, c-picker-panel, c-popup, c-radio-group, c-tab, c-tab-item, c-tab-pane, c-tab-pane-item, c-tabbar, c-tip, c-toast 组件实现与测试demo | | | | | |

cml-tt-store

| 工作 | 工作量 | 排期 | 负责人 | 进度 | 备注 |
| createStore | | | | | |
| commit | | | | | |
| dispatch | | | | | |
| mapState | | | | | |
| mapGetters | | | | | |
| mapMutations | | | | | |
| mapActions | | | | | |
| registerModule | | | | | |

相关问题