Web Analytics

行为驱动开发导引

本文翻译自Dan North的文章"Introducing BDD"。 我遇到了一个问题。当我在不同环境的多个项目中使用和教授类似测试驱动开发(test-driven development, TDD)这样的敏捷实践时,我总是能遇到来自程序员们相同的困惑和误解。他们想知道从哪里开始、测什么不测什么、一次测试多少、谁来调用他们的测试以及如何理解为什么一个测试失败了。 越是深入TDD,我越能感觉到我对TDD认知过程是时断时续、逐步掌握的,还远未进入到死胡同。我记得多数时间我想到的都是"这只是别人告诉我这样做的",而不是"哇,我明白为何要这样做了"。我断定一定可以通过某种方法将TDD直截了当地呈现给那些优秀的程序员们,并且可以避免所有陷阱。 ...

August 10, 2011 · 12 min · Tony Bai

“找回”自己的密码

继续昨天的情况道来。话说昨天因瞬时“失忆”,导致将公司办公账户的密码忘记了。这给工作带来的不便是我没有想到的。今天一上班就询问秘书密码重置的进度,得到的回复是已经发给公司HR并催促多次了。但是直到近中午也未曾收到密码重置的通知,耐不住性子的我终于决定亲自跟踪这件事,电话直接打到HR部门负责此事的专员那,结果无人接听,一连多次,估计是那个同事不在Office。遂直接拨打公司IT服务部门的电话,说明了情况,这个部门的态度倒是很好,帮我查了一下,并告知我昨天没有收到HR那边的邮件,并答应我,一旦收到邮件就会马上处理的。 放下电话又想了想,觉得我不能就这么等下去,应该尝试一下找回自己的密码。虽然昨天瞬时“失忆”,但是自己的密码组成规则还是记得的。公司的密码起码的要求包括长度、大小写字母和特殊符号。记得当时我只是想换一下大写字母的位置,只是事后忘记了调整了哪两个字母。午饭过后,决定花一定时间尝试去“找回”自己的密码,工具吗,用Ruby+Watir。用Watir来操作IE,用穷举的方法来尝试各种密码组合,直到能正确登录的密码就是我想要的。Watir好久没有用了,而且也没有现成的包,还得重新安装,Ubuntu上安装Watir总是提示已存在的文件的gem格式不符,无奈回到Windows上安装。先用C代码生成了所有可能的密码组合,写到一个文件中,每行一个密码。然后在网上找到了Watir使用的例子,参考之完成了自己的脚本:打开公司内外首页,用文件中的密码逐一尝试,如果登录成功,则脚本执行结束。 ...

September 23, 2009 · 2 min · Tony Bai

领导意志

昨天是周五,按照工作计划,上午和组内同事做个人阶段性目标沟通。在与一位曾经在国外公司里做过项目的同事沟通时,他给我讲了这么一个故事:某一年的圣诞节前夕(圣诞节在西方人眼里是地位最高的节日了吧)他所在的那家公司的经理预感到圣诞节那天他们公司的网站的访问量激增的可能性会很大,为了保证网站在那圣诞节那天能"挺住",他要求手下的人对网站进行一次压力测试,并决定让手下用jmeter来做这件事情。手下人没有异议,由于没有用过jmeter,遂大家都忙碌起来,预研的、准备测试环境的等等。一切就绪后,正准备开始测试了,这时那位经理突然召集手下人说jmeter不能满足他们的压力测试要求,大家都惊愕之,并马上提出了反驳,因为jmeter工具是这位领导提出要使用的,现在又不用了,圣诞节已经迫在眉睫,更换压力测试工具肯定不能完成这个任务了。这位经理无奈妥协,结果是:通过jmeter压力测试后优化的网站顺利了通过了”圣诞节的考验“,不过大家都觉得这个过程很别扭。 ...

October 11, 2008 · 4 min · Tony Bai

Mingle初体验

本周一已经投奔ThoughtWorks的Dreamhead因公事回到沈阳,来到我们公司看望以前的同事。他谈到业界的一种说法:ThoughtWorks在"怎么做"上达到了很高的高度,但是在"做什么"上与Google这样的公司相比还有差距。既然ThoughtWorks在"怎么做"方面树立了榜样,那么这个公司推出的产品估计在"怎么做"上对其他公司也会有所指导^_^。Mingle就应该是其中之一。 公司走的是CMMI的体系文件,即所谓的"重过程"管理,这样的过程对项目负责人的要求甚是严格,常常发生与QA之间的"你来我往",甚至为一个无关轻重的文档"严词讨论"一番;再加上部门在过程工具上的选择比较"保守",自己感觉部门的管理成本还是很高的,有些时候甚至感觉有些浪费。普通编程人员对各种文档也是有着"抵触"情绪的,特别是在"补"一些"写完即过时"的文档时更是无奈。 ...

April 9, 2008 · 5 min · Tony Bai

推进项目改进,难!

自从去年年初搬到新办公室后,各个项目组都分到了各个独立的空间了,平时’抬头不见低头见’的情形减少了,随意拉把椅子坐下来谈技术的情形也减少了,随之而来的是项目组’各自为战’,经过近一年的发展,各个项目组在局部的发展上已经出现差异了。 ...

January 22, 2008 · 4 min · Tony Bai

'寓教于乐'学Ruby

在2005年初曾经写过一篇文章叫’结识Ruby’,当时的确是刚刚结识Ruby这种语言,好奇心使然,遗憾的是之后没有坚持学习下去,也就是在这一年Ruby获得了很大的发展,特别是Ruby On Rails的出现让Ruby一下成为新兴语言的代表,甚至有人预言Ruby将会成为Java的替代者成为下一代主流语言。无论如何,Ruby的日益被广大开发人员所接受是个不争的现实,就连Martin Fowler到中国讲’敏捷’时都向中国的开发人员推荐Ruby。大师都开始学习和使用Ruby了,我们还等什么呢?有空儿的时候就多学学吧。 ...

June 28, 2006 · 6 min · Tony Bai

Mix-in in Ruby

在Matz的一篇PPT“Object-Oriented scripting in Ruby”中,Matz提到Ruby提供一种语言机制Mix-in,在其PPT中如是描述的“No Multiple Inheritance,but Mix-in”、“Mix-in is as strong as multiple inheritance,but simple”。 ...

January 12, 2005 · 3 min · Tony Bai

结识Ruby

Ruby是一个很好听的名字,给我的感觉就是“可爱的”。但它不是什么宠物之类的东西,它是一门语言,一门面向对象的脚本语言。虽然它的作者是日本人,但是摒弃民族偏见,我们还是应该以欣赏的和科学的眼光来看待它。 一、Install Ruby 我们以最新发布的ruby-1.8.2为例: * unix platform 到http://www.ruby-lang.org/en/ 下载文件ruby-1.8.2.tar.gz,上传到Unix上,执行以下命令序列: gzip –d ruby-1.8.2.tar.gz tar xvf ruby-1.8.2.tar.gz 然后进入ruby-1.8.2目录,顺序执行下面操作: ./configure make make test make install 由于没有root权限,所以我的make install失败了。 ...

January 5, 2005 · 3 min · Tony Bai