让我再次仔细地分析一下这行以前分析过的代码:
$this->assertThat($form->hasSelect(withName('statusConfirm'))->hasValues(),
array('Yes','No'));
我的主要观点是它非常接近于简单的英语。不是所有的人都认为这是一个好事情,但是我认为人类更易于理解自然语言(事实上这是基因遗传决定的),而不是程序代码。因此,当代码接近于自然语言和表达式时,就能够方便人们的理解。我们正致力于创造或仿真出一种领域语言(DSL),它可以确切的表达出领域的需求,而不是技术实现的要求。
因此,我们做一个类似的试验,把这行代码翻译为一个简单的英语句子:
断言这个Form包含一个名为statusConfirm的选择菜单,它包含两个值:yes和no。
把这句英语句子重新翻译会代码,它可能像下面这样子:
$this->assertThat($form)->hasSelect()->withName('statusConfirm')->andValues('yes','no');
对于我而言,这行代码比原先的更接近于自然语言。我认为我们刚才解决的是一些和实现细节有关的语法问题,并没有让这个API变得更加易于使用。
同时它也说明了代码的实现方法:这些函数应该全部位于一个断言对象,它们接收各自的参数进行处理,并且最后返回对象自身,从而可以实现链式调用。这也就是众所周知的流式接口。
培训新闻
- 绝对高端,开沅教育(大连)中心2009年首期P...
- 开沅教育(大连)中心--09年3月北京交通大学...
- .广州多迪php培训,年前最后一期优惠,大家快...
- 上海实战精英班二期开始报名了~~~~~
- 大连开沅教育09年LAMP首期“就业班”开始报名...
- 北京十一期实战精英班,正在热招中,速速报名...
- 大连开沅教育08年寒假lamp精品培训招生开始,...
- 北京PCTI-19期,正在热招中,年前报名有优惠...
热点专题
网站特别推荐
- 唐山培训中心“首期实战班”赠送联想双核笔记...
- LAMP兄弟连09年课程表
- 绝对高端,开沅教育(大连)中心2009年首期P...
- 2008.12.24李明老师"互联网时代的就业与...
- 上海实战精英班二期开始报名了~~~~~
- 开沅教育(大连)中心--09年3月北京交通大学...
- 北京十一期实战精英班,正在热招中,速速报名...
- 大连开沅教育09年LAMP首期“就业直通车”开始...
- 北京PCTI-19期,正在热招中,年前报名有优惠...
- 12月24日唐山培训中心特邀PHPChina技术总监 ...
社区精华
- linuxroot吐血推荐花了一天时间写的强壮捕获各...
- PHPChina伯乐PHP程序员(1年)
- PHPChina伯乐北京高级的PHP程序员
- PHPChina伯乐浙江 高薪职位!
- PHPChina伯乐网站技术






最新回复