《Agile Java》学习指南001

来源:互联网 发布:Linux aria2 下载出错 编辑:程序博客网 时间:2024/05/01 08:46

书籍详细信息如下:

Agile Java Crafting Code with Test-Driven DevelopmentBy Jeff Langr...............................................Publisher: Prentice Hall PTRPub Date: February 14, 2005ISBN: 0-13-148239-4Pages: 792 


简单书评:

       总体而言,《Agile Java》并不适合作为Java编程的入门书。但是,如果你曾经学习过Java基本语法,又因为许久未用而淡忘,这本书确实有助你重新捡起Java,并让你有所提高。之所以有此观点是因为,这本书的结构很新颖,不是传统的以“Hello World”起头的方式。对于曾经学过而又遗忘的人来说,重新学习时最大的痛苦就是,一方面觉得自己已经掌握了,一方面又生怕自己漏过了重要的知识点。反映在看书上,就会出现“节奏快了怕遗漏,节奏慢了又犯困”的现象。相信我,用这本书做功力恢复是再合适不过的了。

       《Agile Java》的一大特点就是,在一开头就引入了测试的概念。甚至可以说,它已经将“测试驱动开发(TDD)”这一理念渗透到骨髓里了,所以看这本书时,很长时间你都找不到main函数!你会发现,作者在写一个新类前会先写出一个测试类,测试类本身甚至就是新类的功能说明。这种思路上的转变将会成为你的收获之一。

       此外,此书的用例是基于Java 5.0写成的,作者充分注意到了5.0带来的新特性,并在书中有所体现。同时,对于之前版本,作者也用了“7. Legacy Element”一章,做了充分的说明。

       此书的中文版已发行,但卅三先生用的是上述的英文版。不得不说,作者的英文文字水平并不高,卅三先生甚至一度怀疑他是不是Native English Speaker(同时也怀疑,拿到的这个版本是不是从德文版转译过来的,笑!)。虽然觉得作者的表达很生硬,但是总体来说并不难理解。不过,还是感觉作者在有些细节上说明得不够充分,有些朋友在阅读和实践时可能会产生困扰。这也正是卅三先生决定写一些学习指南的动因。


学习指南

一、在使用这本书时,建议不要使用IDE,或者仅使用IDE的编辑功能,编译和运行还是用命令行的方式来执行。

       理由:上面也说了这本书的新颖之处就在于,它强调的是“通过测试推动开发进行”,它弱化了Project的概念,它甚至很长时间都不写main函数。所以IDE起不了作用。同时,卅三先生也认为,多用于命令行可以让你透过IDE绚丽的界面看到程序的本质,让你在理解Make、Ant等时更有优势。


二、本书的用例虽然没有通过Project来组织,但是还是需要一定的规则来架构的。卅三先生的建议是:建立classes, src, testversion 三个文件夹。最初以testversion为核心,在testversion下也建立class和src两个文件夹。如图所示:

在TestVersion/src下按照package规定的路径建立相应文件夹。所有的类的java文件以及对应测试类的java文件都放置于此。此外,在此src下还应放置junit.jar、compileAll、testRun这三个文件。junit.jar将在(三)中详述。compileAll和testRun都是卅三先生自编的批处理文件,供大家参考。

compileAll.bat

<span style="font-size:18px;">::用于编译src下所有子目录的java文件::实际使用时应根据实际文件夹情况作调整javac -d ..\classes .\sis\studentinfo\*.javajavac -d ..\classes .\sis\report\*.javajavac -d ..\classes .\sis\summer\*.java</span>

testRun.bat

<span style="font-size:18px;">:: 用于编译一个新类和其对应测试类,并运行测试程序::进一步优化建议,可以做一个输入输出界面,由用户填写具体类名javac -d ..\classes .\sis\studentinfo\Scorer.javajavac -d ..\classes -cp .;.\junit.jar .\sis\studentinfo\ScorerTest.javajava -cp ..\classes;.\junit.jar junit.awtui.TestRunner sis.studentinfo.ScorerTest</span>

三、本书的所有测试都依赖JUnit类,建议下载Junit3.8.1,因为awtui.TestRunner 到了4.x版本就没有了。下载之后,可以按照上面的建议,把junit.jar放到TestVersion/src,并使用testRun中那句java命令来运行。

junit3.8.1 可以再此处下载: http://download.csdn.net/download/sasanxiansheng/8202039



0 0