zoukankan      html  css  js  c++  java
  • [ZZ]风险评估和最佳实践

     

    风险评估和最佳实践

    计算机世界报 20071203日第46 B24

    由于每当出现新版本的浏览器时,情况都会发生变化,所以JavaScript/CSS/DHTML/XHR范例具有不稳定性,因此我们需要在应用部署前后采用持续的风险管理流程。

     译自《Computerworld

    在评估AJAX在项目中的作用时面临众多可变因素。重要的是记住这点: 凡是软件项目都有风险,AJAX在这方面也一样。我们已经讨论了其中部分风险,下面是降低总体风险的几个办法。

    使用专门的AJAX框架或者组件

    节省时间的办法是,把浏览器兼容性与优化问题交给最熟悉这方面的人去处理。市面上有一些经过全面优化的第三方AJAX框架和组件可以解决许多跨浏览器问题。其中许多得到了积极维护,更新版会定期发布。这是节省成本及时间的方法,即便带来新风险也完全值得。判断一种框架或者工具的标准应是不断开发的时间长度以及可获得支持的质量,然后与你对它的依赖程度权衡一下。典型的AJAX框架和组件套件如下: Dojo(开源)、Prototype(开源)、DWR(开源)、Nitobi(商用)Telerik(商用)。

    渐进增强和非干扰性的JavaScript

    渐进增强(Progressive EnhancementPE)也许是一种好方法,可以构建性能良好的AJAX应用,哪怕客户端浏览器无法执行JavaScript以及执行XHR代码。渐进增强有别于优雅降级(Graceful Degradation),因为在后者中,我们先构建丰富功能,然后构建降级页面的某种机制,以便看起来在不兼容的浏览器上至少可以运行。渐进增强有时又叫Hijax

    PE中,我们首先采用传统的回发(post-back)架构编写应用,然后逐步改进应用,加入与XHR调用连接的非干扰性事件处理器(不用嵌入式HTML事件,而用外部引用的JavaScript),以此作为检索信息的一种手段。然后,服务器返回一部分页面,而不是整个页面。这部分页面可以插入到当前装入的页面,不需要刷新页面。

    用户使用不支持JavaScript的浏览器访问页面时,XHR代码被忽略,传统模型继续顺畅工作。这与优雅降级的范例恰好相反。如果把服务器端应用编程接口(API)抽取出来,不用花多大力气,就有可能构建两种版本,但还是需要一番规划。

    这不但有助于搜索引擎优化(因为支持指向所有内容的可添加到书签的链接),还有助于提高可访问性(因为支持非JavaScript浏览器)。

    视觉线索和提示

    易用性专家试图实现的功能之一就是,构建用户不用接受培训就会使用的界面。这种界面应当使用表明其中特性和功能的模式。也就是说,可以拖动的对象应当有一个明显的抓取点来表明“拖动”,或者表明在页面上方浮动的下落阴影(drop-shadow)。要利用线索从视觉上补充屏幕上的控制手段,从而想方设法帮助用户。以下是几条快速指导原则:

    确保控制可视化、直观。使用一套高对比度、给人深刻印象的图像来表明功能,譬如使用垃圾箱表示删除。

    使用图像来补充链接和动作。使用图像链接与用户顺利进行目标驱动的导航有着积极意义。

    充分利用熟悉的环境。使用熟悉的图像和界面模式,立足于用户之前熟悉的流行桌面软件,譬如微软OfficePhotoshopMedia PlayerWindows Explorer等。

    提供积极主动的帮助。使用工具提示(alt标签)和翻滚图像(onmouseoveronmouseout)等HTML特性,提供控制方面的主动信息,告诉用户其功能。

    采用减法设计。减少屏幕上乱糟糟的感觉,重点放在要紧的视觉线索上。为此,可以去除并不直接促成用户交互的任何视觉元素。

    使用视觉线索。单单为对象赋予样式,以便用户一眼就能确定其功能。好的视觉线索类似实际对象。譬如说,需要拖动的对象应加上表明易于抓取的纹理(譬如凸起的纹理)。而可以点击的对象应当类似三维触按式按钮。

    保持一致性。不管在什么地方,都要保持整个应用使用一致的视觉模式。

    避免画蛇添足 为维护作好规划

    画蛇添足是指为系统添加规定以外的更多需求。画蛇添足也可能因添加了不必要的需求而出现在项目的设计阶段。添加软件项目需求之外的特性可能充满乐趣,但会给将来增添成本和维护工作。添加的每项特性都需要测试、会破坏软件的其他部分,别人还可能通过逆向工程,有一天弄明白你的代码。

    任何软件开发项目都需要进行测试,但就AJAX而言,开发人员必须定期进行测试及维护,确保随着浏览器不断发展,仍能够获得长远成功。定期检查一系列目标浏览器版本有多新、有无补丁,以便顾及流行浏览器的新版本(包括β测试版)。进行可重复的测试,一旦浏览器出现了变化,就反复测试。

    采用可行的赢利模式

    前文讨论了AJAX如何给传统的每千次印象费用(CPM)赢利模式带来问题。它会导致网站的流量(按照原始印象数量)被低估,因而使得网站价值被低估。

    我们希望利用广告驱动的货币化把网站的真正价值与在上面投放广告的费用联系起来。问题在于,什么使得广告空间很宝贵?这有许多因素,譬如不重复流量、在网站上停留很长时间的访客、在网站上购物的顾客、拥有被某些广告商吸引的一小批目标群,等等。公正地说,赢利模式要简单、可以评估; 提供广告空间的商家要根据客户对其特定财产的需求来制定自己的费率。

    每千次印象费用(CPM)模式指导

    CPM赢利模式方面要注意的地方是,如果网页上足够多的内容发生了变化,应当计为一次新的印象,就要更新广告内容。

    每次点击费用(CPC)模式指导

    点击率受广告适合该网站程度的影响。在内容驱动、面向消费者的网站上,广告服务器必须显示基于内容的上下文广告。页面内容装入AJAX后,它可能无法被Adsense或者其他广告服务器所读取。这时可能需要更新广告上下文。

    每个访客费用模式指导

    如果访客的定义是每天来访的不重复的人,那么每个访客费用模式不用管装入了多少页面或者广告多好还是多坏,只要查看IP地址和浏览器中的“用户代理”以及设置cookie,完全能合理评估不重复的访客。

    添加培训

    我们已经知道了影响用户可培训性的方面,现在看一看哪些因素在影响用户培训的成功。如果我们想提供应用软件方面的培训以提高用户的接受程度,该怎么办呢?

    针对用户目标而不是产品特性来安排培训。譬如说,比较好的办法是根据制作发票的目标、而不是如何使用发票工具来安排课程。这样一来,用户就知道为什么应当积极关注。这还指明了他们需要学习内容的要点。

    弄清楚用户使用这个工具能派上什么用场,并为此提供相应培训。信息过多是培训成功的大敌。试图面面俱到只会让用户不知所措、失去兴趣,从而停止汲取信息。

    利用培训找出产品设计中的缺陷。如果现场提供培训,可以趁机找出应用中哪些部分使用起来太难。虽然没有什么取代得了早期的易用性测试,但这也许是发现问题的最后机会。

    支持及鼓励用户社区,支持让用户可以教对方的联系工具,论坛和邮寄列表在这方面也很有用。我们一说起培训,可能误以为是指亲自上课的课程,甚至实时网上研究班,这些是有作用,绝不能排除在外,但也要考虑成本较低的其他办法。

    使用针对特定上下文的培训材料。要做到可以从应用内部及在有用的交互点获得材料。譬如说,提供如何从发票管理屏幕制作一张新发票的信息。

    展示,而不是讲述。使用Adobe CaptivateCamtasia或者面向MaciShowU这些屏幕捕获工具,提供成本低廉的屏播培训材料,这些材料可通过网页来分发。许多用户更喜欢通过这种方式来学习,没有比它更好的方法来实际演示产品特性了,因为它从头到尾对整个操作都进行了演示。

    OscarXie.net

    关注质量与体验——电子商务与自动化测试
    http://www.cnblogs.com/oscarxie/

  • 相关阅读:
    Linux下Zookeeper安装使用
    Dubbo的@Reference和@Service说明
    java.lang.ClassNotFoundException: org.I0Itec.zkclient.IZkStateListener异常解决
    Java 开发常用工具
    Vue自动化路由(基于Vue-Router)开篇
    HTML5 开发APP( 支付宝支付)
    关于微信网页缓存的问题
    小程序(仿微信发布说说功能)
    移动端九宫格抽奖源码
    H5 + 开发App(分享功能)
  • 原文地址:https://www.cnblogs.com/oscarxie/p/1012579.html
Copyright © 2011-2022 走看看