• 生命短暂,生活残酷
  • 那我也分享一个Windows下调整字体效果的软件MacType吧。我用它调整了字体,使之更粗更圆润,比较耐看。

  • 人帅文章更靓,是整理成PDF的好素材啊

  • Perfect

  • 这位就是《Specification by Example》(实例化需求)的作者。除了您提到的这本,还有《Impact Mapping》和另一本讲测试的(书名记不清了)都是最近两年出的,所以PDF非常难找。

  • #1楼 @hkliya 哈哈,谢谢。我是整理自己的学习笔记,理一理自己的思路。

  • 我一直活在Microsoft的世界里,从以前的MS-DOS到现在的CMD、PowerShell。但多数时间仍旧是花费在VS这样的IDE里,命令行的使用是越来越少。最近我开始学习Scala,于是Maven等一些工具也开始纳入学习的范畴。但我在网上找到的教程、资料,多数是在Linux下的命令行完成的。我尽管有一点点Linux的使用经验,但要在Windows下完成同样的工作,总感觉格格不入。所以希望,如果可以的话,给我一点Windows下使用Shell的方向性指引,比如有哪些比较著名的网站或者文档,诸如此类的。谢谢!

  • 我正在学习Spock,这种用groovy实现的given-when-then格式的测试,能比较好地与BDD方法融合。

  • 散步的时候认真看了几遍视频,晚上动手照着来了一遍,很有意思的重构。尽管是Java写的,但对从OO向FP进行这种观念上的转换,很有借鉴意义,最后抽取Matcher和Action是关键。

  • 关于DSL,我是在学习DDD过程中,从各种渠道接触到的零碎信息开始的,并且目前为止我只读过Martin Fowler所著的《领域特定语言》。由于该书比较晦涩,所以我对DSL的理解仍停留在『一套以DDD中的统一语言为其实现基础的”类编程语言“』上。所以在具体的实践中,我把DSL理解为配置信息或者业务规则的一种文本表达,然后再辅以一个语法解释器,在运行时由这个解释器去解析DSL文本,实现运行时的动态配置或者规则判断等等。

    比如我曾在一个工资管理软件中尝试着这样去表达『当年满60周岁,或者工龄届满30年时,应退休。』的意思:retire = (Age >= 60) || (ServiceLength >= 30)。然后在运行的时候,加载这段文本,由一个内置的解释器把这些转化为领域里的Specification,再交给Aggregate去使用。期间,编写这个解释器的过程非常磨人。为了尽可能减少DSL的语法漏洞,我几乎把《编译原理》从头又来了一遍。

    以上就是我的个人理解,也不知道这样是不是正确。另一方面,作为一个C#程序员,我感觉这方面的资料也比较少。我知道有一个Java的《DSL in Action》,但还没有读过,不知道有没有价值。最后,花费如此的代价去实现一套DSL,相比 一个简单的XML(当然,XML其实也是一种简单的DSL),会不会有得不尝失的疑虑?

    谢谢!

  • 如果缺少预先的分析与设计,纯粹地从TDD入手构建新系统,则很容易迷失在测试的汪洋大海里。BDD区别于传统TDD的地方,就在于BDD至少有一根线把这些测试串起来,能更完整地、更有业务意义地表达出系统行为。