GMTC2018 <<多终端应用下的架构设计 >> 赵泽彬
2020-03-01 196浏览
- 1.多终端应⽤用下的架构设计 赵泽彬 - 国双科技
- 2.
- 3.
- 4.⽬目录 01 应⽤用特点及关键问题 02 解决思路路及实现⽅方案 03 实践效果及未来⽅方向
- 5.01 特点与问题 Gridsum
- 6.数据可视化应⽤用 ୌ *93 ݎ ݎ ݎ :HE 0RELOH ŏ
- 7.统⼀一构建,多端发布 发 布
- 8.问题和挑战 知识复杂度⾼高 • 如何灵活表达知识信息 • 如何在频繁的迭代中保持良好 的扩展性 研发效率低 • 复⽤用度低 • 沟通协作成本⾼高 • 各终端技术栈差异 客户满意度下降 • 各端交付速度不不⼀一致 • 交付质量量低
- 9.02 思路路与⽅方案 Gridsum
- 10.如何使研发效率提升 终端类型数*100%
- 11.01 扩展新终端类型可快速实现 02 降低不不同终端开发维护上的差异
- 12.如何⽤用统⼀一的⽅方式描述业务知识?
- 13.配置化实现 Web 构建 App
- 14.配置 - 设计要点 实体信息 通过项⽬目、仪表盘、组 件等实体描述知识。 层次结构 不不同实体之间具有层次结 构,实体属性上有“继承” 关系。 终端差异 不不同终端由于应⽤用关注点 的差异,⽐比如布局、样式。
- 15.配置 - 终端应⽤用
- 16.如何有效降低不不同终端技术实现差异?
- 17.多终端 - MVC View :HE $33 … ٖᗝᕟկପ XWLOV ᯈᗝ๐ۓ Controller &RPPRQ4XHU\%XLOGHU 0RGHO ӱۓཛྷࣳ ᶼ॒ቘ 公共层
- 18.多终端 - View 规范实现 1. MVVM框架 2. 统⼀一状态管理理为Mobx 3. 内置组件模板渲染 公共层 1. Model和ViewModel在公共层获取 2. 终端中可定义⾃自⼰己特有ViewModel 3. 依赖内置组件库实现逻辑处理理
- 19.多终端 - Model 规范实现 1. 提供各终端所需Model 2. 各终端公共ViewModel 2. Model范式化 3. 持久化数据处理理 依赖Controller 1. 预处理理逻辑 2. 配置服务
- 20.多终端 - Controller 内容 1. 内置组件库 2. 配置解析服务 3. Common query builder 3. 其他
- 21.内置组件库 • ,0.+50 • (3.120*0-/4')-4160 #&$ #&! "$ %! %
- 22.代码如何管理理 多仓库 优点 • 相互隔离 • 包依赖独⽴立 缺点 • Code Share NPM 优点 • 可将公共层提取独⽴立模块共享 •多个功能并⾏行行开发,依赖公 共模块,造成冲突 •开发状态和发布状态版本区分 缺点 • 跨模块开发体验差 • 增加除关注应⽤用版本外,还需关注公共模块版本
- 23. 基于Lerna ⽬目录结构 RepoRoot/ package.json lerna.json common-lib/ package.json web/ package.json app/ package.json rigger/ package.json 依赖 在rigger/app/web的package.json的 dependencies添加对common-lib依赖
- 24.03 效果与未来 Gridsum
- 25.技术架构 ଫአ੶ ᕟկ੶ ੶ول ૡᑕ੶ 6HUYHU ୌ :HE L26 $QGURLG ZHE Vue Jquery Vue Router Jquery UI GS-UI gridstack mobx/mobx-vue …… PRELOH React Native mobx/mobx-react React Native Component හ mobx Normalizr ๐ ഝ ۓ ੶ Immuatable ੶ դ Gitlab Ꮁ Commitizen Git Flow Lerna ૡ webpack ᑕ ۸ Karma D[LRV &4%XLOGHU 8WLOV ᯈᗝᥴຉ ٖᗝ ᕟկପ &KDUWV 7DEOHV ਧګᕟկ (GLWRU Yarn Jasmine Babel PostCSS Sass vue loader ESLint StyleLint ፊ WD Web ၥ WD APP puppeteer 1RGH pdfkit Code push Express GraphQL C# Java Python
- 26.开发流程 " ;25:83 /!&0 9347365 ,' ; ; )' # ; ( ,' ; ;+* %# ;$ ;.-
- 27.团队协作 ⾯面向Feature 新Feature的开发,如果 需要在各个终端都实现 则统⼀一开发,同步交付 ⾯面向终端 依赖终端原⽣生能⼒力力, 如:iOS、Android等 定期Review • 沉淀复⽤用 • 规范实现 • 扩展完善
- 28.60% 代码复⽤用率 现状 150% 交付速度 40% 成本降低
- 29.未来⽅方向 01 数据层进⼀一步下沉(GraphQL) 02 内置组件库视图统⼀一维护
- 30.“如果事情有变坏的可能,不不管这种可能性有多 ⼩小,它总会发⽣生。” –Edward A. Murphy(墨墨菲定律律)
- 31.
- 32.
- 33.