论道WP(三):应用程序栏
作者通过具体翔实的例子介绍了Winodws Phone 7中应用程序栏的使用方式。
该内容已经被标记书签!
标记书签错误,请重试!

作者 Fernand Galiana 译者 张立 发布于 2007年8月16日
现今许多公司都趋向于声明他们对于敏捷过程的十二分忠诚。我们经常长时间地进行SCRUM会议,希望能尽快地交付产品,我们经常……可是我们如何真正衡量这些应用程序是成功了还是一堆垃圾呢?我们都知道页面点击量和图表在供货商以及一些博士眼中的重要性……我们应该如何评估应用程序中的“必要”特性是否被用户使用和如何被用户使用的呢?更重要的是,我们如何准确地评估我们是否位于一条通向成功产品和公司的康庄大道上呢,还是我们仅仅是在挖开另一个无底洞?
以上的问题激发了MOle的基本想法。最近我也曾处于应用即将交付的阶段。应用程序中的特性非常丰富,代码被完整地测试,而服务器不间断地运行着。我们被产品的需求奴役了很长时间。其中的一个特性是一个美妙的基于Ajax的滑动条,它可以允许用户根据一些排序算法设置自定义的内容显示。我们不禁要问,用户会使用这个功能吗?如果他们使用,将会如何使用呢?可以肯定,花费几千美元可以找到一些志愿者,进行一些实验,或许会对我们的问题给出一些帮助。可是谁可以忍受这样地时间和金钱上的耗费呢?因此,我们需要一些办法来记录这些数以千计的各种各样的操作,探测这些特性,记录这些事件,这样我们就可以建立基于这些特性的测量和报告。我们在应用程序中需要一个代理来做这些事情(探测这些特性和记录需要的事件)。MOle允许我们收集用户的输入。它给我们提供了必要的回馈用于对下次的迭代进行调整。同样,它也指出了一些在我们的需求文档中被列为“必须”的需求,而实际上完全没有被用到的情况。同样,MOle在评价我们的测试团队在测试环节的覆盖率和有效性方面也有一定的作用。
期望现在已经激起了你的欲望,下面是几个MOLe你的应用的必经步骤:
ruby script/plugin install svn://rubyforge.org/var/svn/liquidrail/plugins/mole/trunk在安装的过程中,插件将会在数据库中创建两个表,分别为mole_features和mole_logs
MOLE = File.new( "#{RAILS_ROOT}/config/mole.conf" )
MOLEABLE_APP = true
MOLE_PERF_MAX_TIME = 5
应用程序中所有被探测的动作都是由mole.conf文件设置的。一个mole.conf文件的样例在安装插件时已经被安装到config文件夹中。你可以通过MOLEABLE_APP来控制插件是否工作。MOle的一个内建的特性是用来记录一些较长的操作。我们将会在后面提到它。最后一个变量将会对创建的性能进行设置,这里是5秒。
loadMOLE.path ifFile.(MOLE.path) and MOLEABLE_APP
上面的代码将会加载一个用于说明如何探测你的rails应用程序的配置文件。只需一个文件即可,不需要在你所有的控制器代码中处处进行说明。在配置文件中仅仅需要简单的指明MOle应该在什么地方和捕获什么特殊的事件。
MyController.before( :feature => :show ) do |context, feature, args|
Mole::DbMole.mole_it( context, feature, context.session[:user_id],
:some_var => context.instance_variable_get('@myVar'))
上面的代码将会在show事件被调用之前探测MyController的show事件,并将控制器的myVar状态记录到数据库中。因此,我们不仅可以记录事件是否被调用,还可以记录与该调用相关联的状态。
或者……MyController.after( :feature => :show ) do |context, feature,ret_val, args|
Mole::DbMole.mole_it( context, feature, context.session[:user_id],
:some_var => context.instance_variable_get('@myVar'), :return => ret_val))
与上述代码基本相同,但是是在事件被调用之后进行记录。
.我们还捆绑了一对控制台用于即时查看MOle的情况:Snitch和Yahoo! Widget MOlet。

Snitch代码可以在以下地址下载:
svn://rubyforge.org/var/svn/liquidrail/plugins/mole/samples/consoles/snitch
下载完毕后,用如下的命令来完成安装:
ake setup
上述命令将告诉应用程序如何通过用户数据库表名来访问用户模型,以及通过数据库表的列来显示用户名。同样,可能需要编辑database.yml文件来指明数据库名称。不过不用担心应用程序会改动你的数据库。
为了运行另一个面板程序,需要安装Yahoo! Widget Engine,然后下载MOlet并将其保存到面板目录中。(MAC:Documents/widgets,Windows:Document And Setting/user/widgets)
svn://rubyforge.org/var/svn/liquidrail/plugins/mole/samples/consoles/widgets/molet
感谢您驻足观看关于MOle的一点介绍。无论你是否有着固定的需求,还是考虑如何能便捷地在WeightWatcher中寻找一块匹萨,我们希望你找到你的出发点。我们希望看到你关于MOle的感受,我们将会尽我们最大的努力来帮助你。欢迎您提出有关于帮助我们改善MOle的任何意见或建议。
Fernand Galiana是Imhotep Software LLC的拥有者,这是一家关于Rails应用的咨询与培训公司,位于科罗拉多的丹佛。他拥有15年的用户界面和中间层软件开发经验,同样他也是ZiYa(一个rails的绘图插件)的作者。他目前在丹佛Rails用户组中(aka DeRailed)。
查看英文原文:The MOle Plugin在多线程并发编程中Synchronized一直是元老级角色,很多人都会称呼它为重量级锁,但是随着Java SE1.6对Synchronized进行了各种优化之后,有些情况下它并不那么重了,本文详细介绍了Java SE1.6中对于锁的性能优化,以及锁的存储结构及升级过程。
本次分享将首先介绍现代富文本编辑器的组成和实现,然后结合UEditor的开发过程,与参会者分享UEditor在设计和实现的过程中,所涉及到的核心功能的细节实现。
本次演讲视频录制于百度技术沙龙。
我们所开发的应用程序大多都需要提供一个图形用户界面(GUI)。关于GUI应用的架构设计,已经有了Form & Control、MVC,、MVP、 Passive View等多种模式。模式可以帮助我们建立优雅的架构,但前提是弄清楚模式的应用场景。弄清楚GUI应用面临的设计上的问题,有助于我们正确的挑选设计方案。
MongoDB是一种非常易用的NoSQL方案,Brian C. Dilley在这篇文章里介绍了MongoDB的优劣势,并介绍了MJORM项目。MJORM用于MongoDB,是一个没有注解的Java ORM库。
随着网络基础设施的逐步成熟,从RPC进化到Web Service,并在业界开始普遍推行SOA,再到后来的RESTful平台以及云计算中的PaaS与SaaS概念的推广,分布式架构在企业应用中开始呈现出不同的风貌,然而殊途同归,这些分布式架构的目标仍然是希望回到建造巴别塔的时代,系统之间的交流不再为不同语言与平台的隔阂而产生障碍。
精益软件开发方法因其对市场和交付的重视和在各种场景下体现出的适应能力正在获得广泛的关注。特别是在精益创业(Lean Startup)渐渐兴起和技术日新月异的今天,其"极端"的思想也变得越来越必要和可行。 InfoQ就此主题对他做了深入的采访。
没有回复
关注此讨论 回复