11 2011 档案
摘要:由于家中老爷机仍在逾期服役,鉴于老人家年老力衰,在这台机器上,我不得不使用Notepad++这样的文本编辑器来进行代码的开发工作,原因很简单,np++占用资源比较小,而且用起来顺手。 下面贴一些Np++的快捷键,仅为备忘之用。Ctrl-CCopyCtrl-XCutCtrl-VPasteCtrl-ZUndoCtrl-YRedoCtrl-ASelect AllCtrl-FLaunch Find DialogCtrl-HLaunch Find / Replace Dialog 查找替换Ctrl-DDuplicate Current Line 复制当前行Ctrl-LDelete Current Lin
阅读全文
摘要:前几天在《戏说设计模式》这篇文章中看到了一段关于组合模式的描述:COMPOSITE—Mary今天过生日。“我过生日,你要送我一件礼物。”“嗯,好吧,去商店,你自己挑。”“这件T恤挺漂亮,买,这条裙子好看,买,这个包也不错,买。”“喂,买了三件了呀,我只答应送一件礼物的哦。”“什么呀,T恤加裙子加包包,正好配成一套呀,小姐,麻烦你包起来。” “……”,MM都会用Composite模式了,你会了没有?这个例子还是比较通俗的解释了合成模式的。所谓合成模式就是指将对象组织到树结构中,可以用来描述整体与部分的关系。合成模式就是一个处理对象的树结构的模式。合成模式把部分与整体的关系用树结构表示出来。合成模
阅读全文
摘要:一般来说,观察者模式的定义应该是这样的:building a clean interface between the source of news that some object has changed and the consumers of that news。观察者模式在消息的生产者和消费者之间建立了clean interface,这样就使得消息的生产者和消费者之间的耦合是抽象的。被观察者可以不认识任何一个的观察者,它只知道他们都实现了一个共同的接口。由于观察者和被观察者没有紧密的耦合在一起,所以他们可以属于不同的抽象层次。观察者模式支持广播通信,被观察者会向每个注册了的观察者发送广播
阅读全文
摘要:下面代码演示了如何在waitr中获取dom属性。在进行自动化测试时,我们经常要获取这样的一些信息:某dom元素的class值,用以判断该dom元素是否具有正确的样式;某dom元素的style属性,用以判断该dom元素是否具有正确的样式;通过dom元素的事件属性,例如onclick onfocus等来定位识别特定元素;以上三种情况我们分别讨论。获取dom元素的class值:考虑如下的html代码<a class = "classA" href = "www.17test.info">乙醇的blog</a>获取class属性的ruby
阅读全文
摘要:今天在读rspec源代码的时候发现rspec会自动去load一些以_spec结尾的文件作为example 和 example group。在这里顺便说一下ruby里load和require的区别。load: 加载文件,比如load 'example.rb',不放重复加载require: 加载文件,比如load 'example',只加载1次代码说明: 新建2个文件。test.rb, file_to_be_load.rbfile_to_be_load.rbputs 'It is in ' + __FILE__test.rbrequire '
阅读全文
摘要:在使用watir-webdriver进行测试的时候我们会发现启动1个Firebox浏览器需要很长的一段时间。那么这个时间到底有多长呢?下面的代码可以测试一下。# encoding: utf-8 t_start_require = Time.newrequire 'rubygems'require 'watir-webdriver't_end_require = Time.new require_time = t_end_require - t_start_requireputs 'require_time ' +require_time.to_s
阅读全文
摘要:观察者模式应该是最容易理解的设计模式了。考虑这个例子。作为雇员的你当工资发生改变的时候你会想到什么?请朋友吃饭?给女朋友买衣服?给自己买台Iphone4?很可惜,你所增加的那点可怜的工资恐怕难以支持你做以上这些事情吧。当你工资增加之后,你的个人所得税理所当然的增加了;你的住房公积金提高了;你的社保不出意外也要多交了。剩下来的那点应该也不够塞牙了。这个理应是喜剧的杯具中实际上包含了观察者模式的基本概念。在这个例子中,社保局、税务局实际上是你的观察者。当你的工资发生变化时,你(一般来说是你的雇主)会通知有关部门,以便有关部门能够根据你的收入调整税收或社保政策。下面的代码(使用ruby1.9实现,1
阅读全文
摘要:好像网上一直没有比较详细的中文资料来讲述如何使用cakephp来实现i18n。正好昨天被逼无奈的将代码中的提示中文化了一把,略有心得,简而志之。中文化cakephp有如下几步:1,在代码中使用__()函数。在需要进行中文化的地方使用__()函数,如下所示:__('This is the string i need to translate', true);将第2个参数置为ture,这样如果有相对应的翻译词条的话那么翻译过的词条将输出,否则会输出未翻译的词条。2,执行i18n task如果你的代码中存在__()函数的话,你就可以执行i18n task来进行代码扫描了。i18n t
阅读全文