别扭的折中处理。
这的确是一本经过别扭的折中处理而成的书。
其一,这本书还有一本姊妹篇《面向对象开发实践之路Delphi版本》,出版社和作者都考虑到Delphi日薄西山的势态,所以出一本C#版本也势在必行。正如作者在导读中所言:“其中有几位好友在看完Delphi版后,立刻问我为什么不再写一本面向对象开发实践之路C#语言版?随着阅读Delphi电子档案的朋友逐渐增加,提出这个问题的朋友也愈来愈多,因此也让我开心认真思考这个可能性”。所以,毫无疑问,这本书的初衷就是一种折中处理的形态开始了。所以,遍观代码,像Delphi语言的命名方式的地方处处皆是,对于从未接触过Delphi的人来说,难免一开始就头大。另外,书中源代码错误较多,不知是不是草草成书之过。
其二,作者当时还是Borland的一员,为微软(C#)写书立作自然不大体面。所以书中对VS.Net开发环境的态度是:“如非必要,缄口不言”。另外,宣传Borland的产品本来也是李先生的分内之事:譬如Borland的用户需求软件CaliberRM(付费),Borland的版本控制软件StarTeam(付费),Borland的程序代码审查和度量工具Together for VS.net(付费)。另外在本书中还用到了第三方的NUnit进行单元测试(免费)、Xceed的Zip.Net组件进行压缩解压缩(付费)、Developer Express的第三方WinForm控件(付费)开发界面。其中,需要付费使用的第三方软件的使用多少给读者带来很多困扰。
就现在来看,搭建一套容易的平台,可以使用GDoc的表格(需求管理)、Subversion(版本控制)、VS.net Express版本(开发环境)、NUnit(单元测试)、Microsoft FxCop(源代码审查)。
其三,在采用开发方法上的折中。虽然这本书在内容介绍上有:“OOD(面向对象开发)、OOP(面向对象编程)、TDD(测试驱动开发)、UT(单元测试)”。但是,实际上也是以上种种的一种折中,所谓的TDD也只是使用NUnit工具进行事后验证和重构之后回归测试的一种手段。所以,如果对于没有完整OOD/P开发经验,或者没有完整XP/TDD开发经验的读者来说,可能是越看越头大。
一些看点:
虽然这本书有很多不足,但是作者也提供了面向对象开发实践的一种观点,这种面向对象开发实践是否能够经受住真实项目的考验是个未知数。但是对于程序员个人来说,更多的使用NUnit进行单元测试、对代码进行不断重构、从重构中实现设计模式这一点确实能够不断地改善设计和代码质量。
其一,这本书还有一本姊妹篇《面向对象开发实践之路Delphi版本》,出版社和作者都考虑到Delphi日薄西山的势态,所以出一本C#版本也势在必行。正如作者在导读中所言:“其中有几位好友在看完Delphi版后,立刻问我为什么不再写一本面向对象开发实践之路C#语言版?随着阅读Delphi电子档案的朋友逐渐增加,提出这个问题的朋友也愈来愈多,因此也让我开心认真思考这个可能性”。所以,毫无疑问,这本书的初衷就是一种折中处理的形态开始了。所以,遍观代码,像Delphi语言的命名方式的地方处处皆是,对于从未接触过Delphi的人来说,难免一开始就头大。另外,书中源代码错误较多,不知是不是草草成书之过。
其二,作者当时还是Borland的一员,为微软(C#)写书立作自然不大体面。所以书中对VS.Net开发环境的态度是:“如非必要,缄口不言”。另外,宣传Borland的产品本来也是李先生的分内之事:譬如Borland的用户需求软件CaliberRM(付费),Borland的版本控制软件StarTeam(付费),Borland的程序代码审查和度量工具Together for VS.net(付费)。另外在本书中还用到了第三方的NUnit进行单元测试(免费)、Xceed的Zip.Net组件进行压缩解压缩(付费)、Developer Express的第三方WinForm控件(付费)开发界面。其中,需要付费使用的第三方软件的使用多少给读者带来很多困扰。
就现在来看,搭建一套容易的平台,可以使用GDoc的表格(需求管理)、Subversion(版本控制)、VS.net Express版本(开发环境)、NUnit(单元测试)、Microsoft FxCop(源代码审查)。
其三,在采用开发方法上的折中。虽然这本书在内容介绍上有:“OOD(面向对象开发)、OOP(面向对象编程)、TDD(测试驱动开发)、UT(单元测试)”。但是,实际上也是以上种种的一种折中,所谓的TDD也只是使用NUnit工具进行事后验证和重构之后回归测试的一种手段。所以,如果对于没有完整OOD/P开发经验,或者没有完整XP/TDD开发经验的读者来说,可能是越看越头大。
一些看点:
虽然这本书有很多不足,但是作者也提供了面向对象开发实践的一种观点,这种面向对象开发实践是否能够经受住真实项目的考验是个未知数。但是对于程序员个人来说,更多的使用NUnit进行单元测试、对代码进行不断重构、从重构中实现设计模式这一点确实能够不断地改善设计和代码质量。
有关键情节透露