9月在北京参加AgileChina2009时,正好赶上《软件开发沉思录——ThoughtWorks文集》正式出版,或者说是这本书为了这次大会提前上架了,会场上TW的Michael Robinson还在自己的主题演讲结束后小小介绍了一下这本书,不过我并没有在展台上仔细翻阅。说实话,对TW的这本书还是有些期待的。
前阵子收到了图灵寄来的样书,仔细读了一下,还没有全部读完,怎么说呢,总觉得离我的预期还差了这么点,也许是我的期望值过高吧。。。
全书由13篇不同人撰写的文章组成,相对比较独立,但其实前后顺序还是有些讲究的,例如第7章讲了什么是迭代经理,马上第8章作者就是一名迭代经理,来讲项目生命体征。下面挑几个章节来讲讲我的感受吧。
Martin Fowler的文章当然不能错过,写的很实在,完整地讲解了如何用Ruby来实现DSL,代码很详实,原来DSL是这么炼成的。文中提到了很多实现DSL的方式和技巧,让我这个不太精通Ruby的人对Ruby又有了一些新的认识。
第4章给人的感觉就是在介绍各种各样的语言——语言的盛景,现在的开发者有很多语言上的选择,但事实是这样吗?对于大多数一线开发者来说,能够选择的也就那几种主流语言,导致我们对其他语言的关注度并不高,听说过Haskell、Erlang的应该不少,可知道Scheme、Prolog的估计就不多了,毕竟也不太有机会能用上,但学学Ruby、Groovy、Scala、Erlang应该还是有好处的,至少挑一种来了解下吧。文中分几个不同的视角来介绍了语言的特性,做了些总结,也许是作者Rebecca J. Parsons不太喜欢.Net吧,全文读下来基本就没怎么提到.Net。
第5章多语言开发是我比较想读的部分,当然我本人非常支持这个观点,而且也在积极推行和实践,更重要的是之前这章已经被人批评
过了,我想仔细看看究竟是为什么。比较同意Jeffrey Zhao
在自己博客里的观点
,主题是好的,是应该支持的,可是这例子举的实在是不怎么样,就说JRuby实现的isBlank吧,写Ruby时知道String有strip,难道写Java时就不知道String有trim吗?话又说回来,能动态地为类增加方法是个不错的功能,这也是动态语言的优点,的确该好好利用,我就算各打五十大板吧,也许这里换个例子会更好些。用JRuby来测试Java代码的范例中,我并没有感觉用Mocha和用JMock有太多的差别,反倒是在一个团队中,如果别人都不会Ruby,那作为团队的一员自己也不该使用JRuby进行测试,别人看不懂跑步起来啊。
第6章对象健身操,其中提出的几条规则之前我已经在gigix的博客中看到了,感觉应该当作推荐规则来看待,真的要落实到实际代码中,完全照做有不小的难度,而且还要根据不同的场景进行筛选,需要自己进行判断什么时候该用什么时候不该用。举例来说,拒绝使用else,文章给出的范例除了“提前返回”,其他还是在用else(三元运算符应该也算分支吧),依我看,为了实现代码,真的遇到需要else时,该用还得用;一行代码只有一个“.”运算符,那前面Martin Fowler提出的DSL的方法链怎么办,人家可是一排的“.”啊;不使用任何Getter/Setter/Property,IoC的Setter注入怎么办?统统换构造器注入?我要是不是JDK 1.5,也用不了基于注解的方式,那该怎么办?不过像不要使用缩写和保持实体对象简单清晰还是应该坚决落实的,这应该算是在任何场景下都适用的。
ThoughtWorks作为业内知名的咨询公司,我倒是比较期望看到有本书来介绍下TW的员工在客户现场是如何工作的,遇到问题如何解决的。就有点像DBA日记那样,一个个的故事和案例,虽然我不做DBA,可是看网站上连载的故事还是蛮有意思的,就算不懂那些深奥的知识,当小说看也不错,呵呵。如果以后能有这么一个文集,我一定会仔细阅读的。
分享到:
相关推荐
"ThoughtWorks文集II——敏捷实践的秘密"是该公司分享其在敏捷开发领域的深入理解和实践经验的集合,旨在帮助读者深入了解如何有效地实施敏捷方法并从中获益。 在敏捷开发的世界里,核心理念是迭代和增量式开发,...
Thoughtworks是一家全球知名的软件开发和咨询公司,以其对敏捷开发方法和持续改进的推崇而闻名。在Thoughtworks的招聘过程中,他们常常会设置一系列技术测试,以评估候选人的技能和思维方式,其中包括“火车题”这样...
首先,ThoughtWorks.QRCode库是由ThoughtWorks公司开发的一个开源项目,它支持.NET Framework和.NET Core,这意味着无论你是传统.NET开发者还是转向了跨平台的.NET Core,都可以在项目中轻松集成。这个库的核心功能...
ThoughtWorks.QRCode.dll 是一个专门用于在C#编程环境中生成二维码图像的库。这个库由ThoughtWorks公司开发,提供了一种高效且便捷的方式,帮助开发者在后台代码中轻松生成二维码的Bitmap对象。以下是关于Thought...
ThoughtWorks.QRCode.dll是ThoughtWorks公司开发的一个用于生成和解析二维码(QR Code)的库,主要用于.NET框架下的应用程序。这个库提供了简单易用的API,使得开发者能够方便地在C#、VB.NET等.NET语言中集成二维码...
包括公司创始人 roy singham在内的许多 thoughtworks员工参与到了这本文集的编写工作中,他们针对如何在软件开发生命周期中提高效率提出了多种可行性建议,内容涉及设计、架构、测试、领域特定语言的使用、构建和...
Thoughtworks是一家全球知名的软件开发公司,以其严格的招聘流程和对技术的高标准著称。在Thoughtworks的笔试过程中,应聘者可能会遇到各种技术挑战,其中包括设计模式的运用。本作业要求使用C++编程语言来实现,这...
ThoughtWorks.QRCode.dll是一个由ThoughtWorks公司开发的库,它为.NET开发者提供了方便的二维码生成功能,包括对中文字符的支持。下面我们将深入探讨如何在C#项目中引用这个库,以及如何利用它生成包含中文的二维码...
ThoughtWorks.QRCode 是一个由ThoughtWorks公司开发的二维码生成工具,主要功能是为开发者提供在应用程序中生成二维码的能力。这个工具通常以DLL(动态链接库)的形式被其他软件或项目引用,使得开发者无需深入了解...
ThoughtWorks是一家全球知名的软件开发公司,以其卓越的技术实践、敏捷开发方法和持续创新著称。在ThoughtWorks的笔试环节,应聘者通常会遇到编程题目,这些题目旨在测试候选人的技术能力、逻辑思维以及解决问题的...
ThoughtWorks 的现代企业架构白皮书,旨在阐述企业架构设计方法和现代企业架构框架的设计原则,以应对业务平台化带来的新问题。本文将详细介绍 ThoughtWorks 的现代企业架构框架(MEAF),包括企业架构设计方法、...
ThoughtWorks.QRCode是一个.NET平台上的开源库,专门用于生成二维码图像。这个库由ThoughtWorks公司开发,提供了在C#或VB.NET等.NET语言中方便地创建和定制二维码的功能。 首先,我们要理解二维码的基本原理。...
Thoughtworks现代企业架构白皮书-最新版
在压缩包中的ThoughtWorks.QRCode文件,很可能是包含了该库的源代码或者编译后的二进制文件,这对于开发者而言非常有价值。他们可以查看源代码学习如何使用这个库,或者根据自己的需求对其进行修改和扩展。 总的来...
ThoughtWorks.QRCode是一款在C#环境中用于生成和解析二维码的库,由知名软件开发公司ThoughtWorks开发。本文将深入探讨这款库的核心功能、应用场景、使用方法以及它在二维码技术中的重要性。 二维码(Quick ...
包括公司创始人 Roy Singham在内的许多 ThoughtWorks员工参与到了这本文集的编写工作中,他们针对如何在软件开发生命周期中提高效率提出了多种可行性建议,内容涉及设计、架构、测试、领域特定语言的使用、构建和...
ThoughtWorks.QRCode.dll是一个专门用于生成二维码的库,它为开发者提供了一种简单、高效的方式来创建二维码图像。下面将详细介绍如何使用这个库以及调用其方法。 首先,我们需要在ASP.NET项目中引入ThoughtWorks....