- 1、本文档共33页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
打造客户端平台容器之路
淘宝--无邪
大纲
• 背景介绍
• 例子演示
• 思路和方案
• 设计与编码
• QA
背景介绍
• 淘宝发展路线的多样化,各种垂直市场的诞
生。
服装
3C
旅游
• 淘宝自身的平台化路线,也同样要求自身产品
的平台化。
我们的现状
• 淘宝助理的功能
– 管理商品
– 交易管理
• 面对的境况
– 8亿在售商品
– 2万多商品类目
– 未来成百的垂直市
场
未来的路
• 当前的矛盾在于
– 有限的资源面对无限的需求
• 解决方法
– 拓宽大路,大家一起走
例子演示-1
• 通过一个Html来显示和编辑商品信息。
– 显示商品的各种信息
– 可以保存数据
– 支持检查数据是否被改变
例子演示-1
例子演示-1
例子演示-2
• 通过一个Html来显示商品列表
– 无缝替代现有的商品列表
– 能够支持分页
– 支持数据选中
例子演示-2
整体思路
• 一个功能的元素一定可以分解为:
• 一个功能需要的环境:
思路--插件Html化
• 使用Html做业务插件
– 开发简单,上手快,调试容易。
– UI界面是Html长项。
– 大部分业务逻辑都可以使用JS实现。
有奖问答
• 一个长度为200的字符串,复制1百万次,
所需要的时间?
• 硬件配置:
– CPU Intel i5 2.4GHZ
– 内存4G
整体设计理念Kiss
• 好的设计能够让90%的事情变得简单。
• 让10%复杂的事情没有变得更复杂。
整体架构图
思路--技术选型
• 对插件技术有比较好的支持(支持用C++或
者JavaScript动态提供多种服务)。
• 能够方便地与浏览器进行交互。
技术选型的理由
• Qt 自己有着很好的插件技术。
• Qt的内存管理机制对于C++程序来讲是个绝
佳的福音。
• Qt的Signal/Slot能够很好地实现Observor模
式,从而提供更好的MVC架构。
• QtWebkit将Qt与Webkit很好地接合起来。
设计关键点
• 使用了ServiceLoader模式来构建以服务为
导向的微内核。
• 为了便于内存管理,借助Qt的特性,结合
使用Factory和Clone模式。
• 代码交互时,使用Adapter解决上下文传递
问题。
• 提供一整套UI框架,使应用程序流程化和
规范化。
• 提供类似于Eclipse的扩展点机制。
服务化内核架构图
有效地内存管理
• Qt 自身的内存树管理机制。
• 通过Factory和Clone方式创建对象时,指定
父亲。
有效地内存管理
• 标准C++ 内存管理的一些麻烦:
– 实现Listener/Observor/Prox
文档评论(0)