童话说说技术创业美文职业
快好知
职业母婴
职场个人
历史治疗
笔记技能
美文纠纷
幽默家庭
范文作文
乐趣解密
创业案例
社会工作
新闻家居
心理安全
技术八卦
仲裁思考
生活时事
运势奇闻
说说企业
魅力社交
安好健康
传统笑话
童话初中
男女饮食
周易阅读
爱好两性

移动端原型设计利器UIDesigner3。0架构设计总结

2月26日 蚀肉堂投稿
  UIDesigner是腾讯用户研究与体验设计部(CDC)设计研发的一款设计类软件,打造一款可以让设计师统一平台和团队协作的平台型设计工具,经过1。0和2。0版本的经验沉淀,我们决定对3。0版本进行全新的架构设计。
  开发一个软件系统,前期的架构设计承载着整个软件的设计思想和关键决策,可以说是重中之重。
  根据软件架构设计思想,关注分割和交互,好的架构必须使每个关注点相互分离。我们进行了最基本的需求分析,得出两个关注点:一是工具,二是设计绘图,关系如图1所示。
  得到最基本的两个关注点后,接着将提取关键需求(包括:关键功能需求、关键质量需求和关键商业需求),根据两个关注点进行架构的细化设计。
  一、关注点工具
  这里我们结合UIDesigner的实际需求,提取出属于“工具”范畴的关键功能需求、关键质量需求和关键商业需求。
  首先,“工具”的关键功能需求,必须包括:磁盘文件读写、异常捕捉、日志记录、安全性管理;非工具所必须,但是UIDesigner本身所要求的,包括:配置管理、缓存管理、线程服务、服务器和客户端通讯管理、国际化服务。
  其次,“工具”的关键质量需求,质量需求包括开发期质量需求和运行期质量需求两部分,经过分析和权衡,UIDesigner的性能主要取决于设计绘图,而稳定性、可扩展性和可维护性才是决定“工具”本身发展的质量需求,因此,对“工具”的质量需求设计将以稳定性、可扩展性和可维护性为主。
  最后,“工具”的关键商业需求,因为UIDesigner本身并没有很复杂的业务需求,因此关键商业需求是在设计流程的优化和规范上得到体现,这方面的设计已经属于高层模块和使用流程的设计,对架构的影响非常小,可以暂时性的忽略。
  经过关键需求的提取,我们得到了“工具”的设计目标可以提供通用功能(关键功能需求)的高稳定性、扩展性和维护性的客户端应用。根据此目标,我们采取了DI(DependencyInjection)和MVP(ModelViewPresenter)结合的架构,概念架构设计如图2所示。
  1、将上层功能进行模块划分,每个模块内部都依赖于MVP架构,通过Model(继承至BaseModel)定义和注册模块,通过观察者模式,每个模块的View都可以通过Presenter(继承至BasePresenter)进行消息的发布和订阅,进行模块间的通信和交互。
  2、定义集成了关键功能需求的PlatformService,并在BasePresenter中提供PlatformService的服务调用,这样每个功能模块都可以使用通用的关键功能。
  3、为PlatformService的服务定义接口,根据关键功能需求,得到多个服务的接口,将定义和实现相分离,实现部分作为一个特殊的功能模块(核心模块,必须存在),集成到系统本身,方便前期的验证和后期的扩展和维护。属于“工具”这个关注点的架构就已经设计好了,具体的上层功能模块将在后续的开发中,根据需求一个一个模块的来完成,每个模块之间不会有任何依赖关系(开发时),缺少某个或多个功能模块的时候,软件依然可以稳定的运行起来。
  二、关注点设计绘图
  UIDesigner是为设计师打造的设计工具,其最核心的功能需求当然就是设计绘图了,这一块也是变化最多的。根据隔离变化点的原则,我们将这一块设计为绘制引擎框架,通过框架,为“工具”部分提供绘制相关的支持。
  我们对绘制引擎框架进行细化分割,分离出三个关注点:图元、画板、辅助组件。
  首先,图元是可以通过定义进而展示出自身的基础元件,由基础属性和基础绘制接口两部分组成,其中基础绘制接口的定义和实现分离,这样可以方便后期的扩展,特别是在性能改进方面发挥重要作用。概念设计如图3所示。
  其次,画板作为各种图元集合的容器,支持对各种图元的操控和定位,被分为三层:点击测试层、图元设计器管理层和图元绘制层。概念设计如图4所示。
  最后,辅助组件分为标尺、辅助线、全局缩略图、遮罩装饰器和自动对齐线等,这些辅助组件都依赖于画板而存在。
  三、架构验证和后续开发
  在概念架构设计出来后,我们对核心进行了进一步的细化设计,然后对设计的架构进行验证。为了达到敏捷开发和节省时间成本,结合设计的架构,我们最终选择了垂直演进型原型进行架构的验证和后续开发。
  因为架构本身是基于DI(DependencyInjection),是非常符合垂直架构设计的一种架构模式,因此我们搭建了简单的基础核心(只有核心模块,没有其他业务流程功能模块)和简易的绘制引擎框架实现了原型。
  通过对原型的测试和验证,确定此架构满足我们的预期。在此原型的基础上,继续完善核心和绘制引擎框架,并且规划后续的业务功能,根据业务功能插件,可以合理的安排项目进度,最终按照计划顺利完成开发和测试。
  四、后期仍待改进的一些地方
投诉 评论 转载

情感化设计对互联网产品的启发“产品具有好的功能是重要的;产品让人易学会用也是重要的;但更重要的是,这个产品要能使人感到愉悦。”美国认知心理学家Don……《设计一个美梦》有关百度锁屏的故事故事从锁屏设计说起接到这个锁屏设计项目的时候,我们开始考虑着如何把一款锁屏应用做得更有趣更不一样。目前已有的锁屏应用大多数是围绕于变换各种滑屏解锁的视觉表现形式而展开设计……新手引导设计之游戏篇(第一部分)在游戏市场中,游戏产品琳琅满目,特色玩法五花八门,但新手引导却千篇一律。枯燥的引导大幅的降低了用户体验,导致用户留存率的下降,因此如何把填鸭式的教学变得新颖有……NIICE!设计师必备的灵感搜索引擎正如Niice对自己的定位一样:“我们是一款有品味的上流搜索引擎。”呃,说来话长,互联网充满了灵感,但我们却只能来回穿梭在一些设计博客和画廊网站里,不停的采集收集采集收集。。。……UC浏览器新LOGO设计经验分享UC优视是全球领先的移动互联网开放服务平台提供商。自2004年创立以来,以技术为本,公司致力于帮助手机用户快捷上网,构建开放的一站式移动互联网用户服务平台。公司始终以卓越的市场……小设计细思考消息详情导航条设计作为设计师我们试图做一个符合用户操作习惯的页面,然而不深入挖掘用户的习惯,很容易让人陷入到自己的操作流中,找不到用户真正的操作流。先浏览还是先操作?充值中心的用户阅……评价系统中采用打分评价或二维评价的影响因素分析在社交、应用下载和电商类网站中,经常能见到各种评价系统。它们评价的对象各不相同,如豆瓣的评价是针对音乐、书籍和电影的,淘宝的评价是针对顾客所购买的商品的,豌豆荚的评价是针对用户……手把手教你设计最佳的移动支付流程译者注:在电子商务中,我们发现用户在支付环节的流失率非常高,支付流程的用户体验是至关重要的环节。本文介绍了一些移动端支付流程的方法,怎样让我们的支付流程更加易用。业余时间翻译了……about。me设计的简约之道〔核心提示〕通过设计体现功能,用户无需额外的学习就能理解产品的特点,这才是最好的产品。刚结束不久的米粉节,雷军不谈硬件开始谈MIUI的体验,老罗的锤子ROM更是给这个让人……移动端原型设计利器UIDesigner3。0架构设计总结UIDesigner是腾讯用户研究与体验设计部(CDC)设计研发的一款设计类软件,打造一款可以让设计师统一平台和团队协作的平台型设计工具,经过1。0和2。0版本的经验沉淀,我们……扁平化界面风格的设计对于传统的网页设计乃至现在针对越来越多移动设备所做的设计,复杂炫目的效果对产品而言未必是一个好的选择。什么是扁平化设计?简单的说就是抛弃那些已经流行多年的渐变、阴影……GoogleGlass界面设计指南分析Google前几天公开了SXSW大会上演示GoogleGlassMirrorAPI的视频,同时还公开了一些界面设计指南。看完视频之后发现,Glass确实是一个全新的平台,在这个……
社交APP只有独特才能在市场上寻求出路有人向我提了一个Bug,说5分钟就可以搞定产品经理如何学习才能更有效率学会制定周计划和日计划产品经理必须要了解关于需求的11个真相将用户体验作为一种方法论来指导产品的开发产品经理被技术总监反咬一口?我教你个办法改需求之路:设计师的一小步,程序员的一大步干货流出腾讯内部几近满分的项目管理课程PPT手机QQ产品经理总结:产品规划的那些事儿谈谈做产品经理一年来的经历和收获如何用产品思维写“爆款”文章成为优秀的产品经理,你必须爬过这3座大山
华为P60Pro启用16G1TB大存储,骁龙8Gen2鸿蒙3 1、万美之中秋为最。秋,只有金色的秋,才是最繁荣、最喜悦的时段。皇帝的新装读后感热文聚热点网 梦想的地方清华为什么用意志力培养新习惯不是个好主意?幼儿园小班安全工作总结滑雪小回转技巧可爱的熊猫小学生作文今日嘉善猪价最新价(嘉善政府官网)狂野英超!一夜3大奇景90横扫,4球大逆转,保级队一度登顶股票分红多少(二十万股票能分红多少)吃饺子蘸醋!不仅好吃,竟还有这种功效!

友情链接:中准网聚热点快百科快传网快生活快软网快好知文好找作文动态热点娱乐育儿情感教程科技体育养生教案探索美文旅游财经日志励志范文论文时尚保健游戏护肤业界