《Java极限编程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:(美)Richard Hightower,(美)Nicholas Lesiecki著;唐一丁,蔡永航译
  • 出 版 社:北京:机械工业出版社
  • 出版年份:2004
  • ISBN:7111131045
  • 页数:410 页
图书介绍:本书通过一系列开放源代码的Java工具和生动的实例介绍了如何将极限编程理论转化为具体的开发行为,重点介绍了测试、整合、部署和工具的应用。

第一部分 关键概念介绍 2

第1章 Extreme Programming介绍 2

1.1 极限编程概览 2

1.1.1 极限编程开发方法的四大价值 2

1.1.2 极限编程的五个原则 3

1.2 极限编程的12个实践原则 5

1.2.1 计划的制定 5

1.2.2 小版本 5

1.2.3 简单设计 6

1.2.4 测试 6

1.2.5 持续整合 6

1.2.6 重构 7

1.2.7 配对编程 7

1.2.8 代码共享 8

1.2.9 每周只工作40小时 9

1.2.10 现场客户 9

1.2.11 隐喻 9

1.2.12 编码标准 9

1.3 采用极限编程吗 9

1.4 小结 10

第2章 J2EE部署 12

2.1 概述 12

2.2 JAR文件 14

2.2.1 JAR文件和applet 14

2.2.2 可执行的JAR文件 15

2.3 Web应用程序和WAR文件 16

2.4 EJB和EJB JAR文件 18

2.5 企业级应用程序和EAR文件 21

2.6 小结 21

第3章 应用程序范例 23

3.1 概述 23

3.2 简单范例:基于Model2的HelloWorld 23

3.3 范例:宠物商店 24

3.4 宠物商店的最初版本 25

3.4.1 model类(公共的接口) 25

3.4.2 dbmodel类(实现) 26

3.4.3 数据库模型 27

3.4.4 Web接口 28

3.4.5 构建系统 31

3.5 用测试数据设置数据库:Ant小试牛刀 34

3.6 完整的代码清单 39

3.6.1 model包的完整代码清单 39

3.6.2 dbmodel包的完整代码清单 43

3.6.3 test包的完整代码清单 49

3.6.4 JSP和Web.xml的完整代码清单 55

3.7 小结 60

第二部分 掌握工具 62

第4章 使用Ant进行持续整合 62

4.1 概述 62

4.2 Ant使用基础 63

4.3 标准目标 65

4.3.1 简单的范例 65

4.3.2 使用特性一起运作 67

4.3.3 路径设置和fileset设置 68

4.3.4 条件性目标 70

4.3.5 使用过滤器 72

4.3.6 嵌套构建 73

4.4 小结 73

第5章 使用Ant建立Java应用程序 75

5.1 概述 75

5.2 Hello World Model项目 75

5.2.1 model类概览 76

5.2.2 为Model建立项目目录结构 77

5.2.3 为共享类库建立构建文件 77

5.2.4 model项目构建文件的分析 78

5.2.5 运行Ant构建文件 81

5.3 Hello World应用程序项目 82

5.3.1 应用程序的Java类概览 82

5.3.2 为应用程序建立项目目录结构 83

5.3.3 为独立应用程序建立清单文件 83

5.3.4 为独立应用程序建立Ant构建文件 83

5.4 Hello World主项目 86

5.4.1 建立主构建文件 86

5.4.2 关于主构建文件的分析 87

5.5 applet项目 88

5.5.1 applet类概览 88

5.5.2 为applet程序建立构建文件 91

5.5.3 使用Ant构建applet程序 92

5.6 Hello World功能翻新 93

5.7 小结 93

第6章 使用Ant建立J2EE应用程序 94

6.1 概述 94

6.2 Hello World 94

6.3 Web应用程序项目 95

6.3.1 Web应用程序项目的目录结构 95

6.3.2 HelloWorldServlet.java 96

6.3.3 HelloWorldServlet分析 97

6.3.4 HelloWorld.jsp 98

6.3.5 HelloWorld Web应用程序的部署描述符 98

6.3.6 HelloWorld Web应用程序的构建文件 99

6.3.7 构建和部署Web应用程序 105

6.3.8 运行Web应用程序 107

6.3.9 HelloWorld.jsp applet传递 108

6.3.10 在WAR文件中包含applet 109

6.4 企业级JavaBean 110

6.4.1 企业级Bean项目的目录结构 110

6.4.2 HelloWorld实体Bean 111

6.4.3 会话Bean 113

6.4.4 Shadow代理Bean 116

6.4.5 企业级JavaBean部署描述符 118

6.4.6 企业级Bean的构建文件 120

6.4.7 企业级Bean构建文件的分析 123

6.4.8 在Web应用程序构建文件中定义ejb特性 125

6.4.9 运行构建文件 126

6.5 EAR企业级应用程序 127

6.5.1 HelloWorld主项目构建文件 127

6.5.2 企业级应用程序构建文件的分析 129

6.5.3 企业应用程序部署描述符 131

6.6 宠物商店案例学习 132

6.7 小结 134

第7章 使用JUnit进行单元测试 136

7.1 JUnit概述 137

7.1.1 编写一个测试案例 138

7.1.2 使用Ant整合JUnit 143

7.2 案例研究:在宠物商店案例中加入实体Bean 149

7.2.1 现有的JUnit测试概述 149

7.2.2 在宠物商店案例中加入EJB 157

7.2.3 建立一个Ant构建文件用以部署我们的实体Bean 169

7.2.4 修改Test构建文件用以测试我们的实体Bean 175

7.2.5 学习案例的小结 177

7.3 小结 177

第8章 使用Cactus测试容器服务 178

8.1 概述 178

8.2 为什么要做容器内测试 178

8.2.1 隔离测试:模拟对象 178

8.2.2 上下文测试:整合测试 179

8.2.3 一个混合手法 180

8.3 为什么使用Cactus 180

8.4 安装Cactus 181

8.4.1 服务器端安装 182

8.4.2 客户端安装 183

8.4.3 一个简单的范例 184

8.5 Cactus系统架构 185

8.5.1 开始执行 185

8.5.2 beginXXX()方法 186

8.5.3 调用转向器Servlet 186

8.5.4 服务器端安装 186

8.5.5 服务器端执行 187

8.5.6 结果集合和后处理 187

8.6 编写Cactus测试 188

8.6.1 被测试的代码 188

8.6.2 继承适当的类 190

8.6.3 beginXXXQ方法 190

8.6.4 隐含对象 191

8.6.5 setUp()和tearDown() 192

8.6.6 testXXX() 193

8.6.7 endXXX() 193

8.7 Cactus与Ant的使用 195

8.8 Filter测试 196

8.9 JSPTestCase和自定义标记 198

8.10 案例学习:使用自定义标记的宠物商店程序 213

8.10.1 业务需求 213

8.10.2 寻找一个开始点 213

8.10.3 测试案例 214

8.11 小结 219

第9章 使用HttpUnit进行功能测试 220

9.1 为什么要做功能测试 220

9.2 为什么要使用HttpUnit 221

9.3 HttpUnit基础 222

9.3.1 WebClient(客户端)功能介绍 222

9.3.2 响应检查和多页面处理 223

9.4 HttpUnit的高级话题 231

9.4.1 DOM检查 232

9.4.2 Header和Cookies 233

9.4.3 框架页面 233

9.4.4 SSL 234

9.4.5 HttpUnitOptions 234

9.4.6 技术局限性 234

9.5 蜘蛛范例程序 234

9.5.1 蜘蛛程序开发:第一个循环 235

9.5.2 蜘蛛程序开发:二次循环 236

9.5.3 蜘蛛工具将来的工作 240

9.6 小结 240

第10章 使用JMeter测试应用程序性能 241

10.1 概述 241

10.2 JMeter概述 242

10.3 JMeter概念 242

10.4 使用JMeter测试Web应用程序浏览程序 244

10.5 使用JMeter测试Web应用程序的表单条目 249

10.6 使用JMeter测试我们的RDBMS的性能 255

10.7 案例学习:宠物商店 257

10.7.1 业务需求 257

10.7.2 建立测试 259

10.7.3 分析 262

10.7.4 结论 263

10.8 小结 263

第11章 使用JUnitPerf进行负载测试 264

11.1 概述 264

11.2 JUnitPerf概念 264

11.3 TimedTest范例 265

11.4 LoadTest范例 272

11.5 案例学习 273

11.5.1 HTTPUnit测试 273

11.5.2 JMeter配置 275

11.5.3 将它们放在一块 275

11.5.4 结论 278

11.6 小结 279

第三部分 API和标记参考 282

第12章 Ant标记参考 282

12.1 Ant命令行选项 282

12.2 Ant的父元素 283

12.2.1 project标记 283

12.2.2 target标记 283

12.2.3 path标记 284

12.2.4 filter标记 285

12.2.5 tstamp标记 285

12.3 Ant关键任务 286

12.3.1 Ant任务 286

12.3.2 antcall任务 286

12.3.3 available任务 287

12.3.4 echo任务 288

12.3.5 fail任务 288

12.3.6 property任务 288

12.3.7 taskdef任务 289

12.4 目录和文件系统任务 289

12.4.1 chmod任务 289

12.4.2 copy任务 290

12.4.3 delete任务 290

12.4.4 mkdir任务 291

12.4.5 move任务 291

12.4.6 touch任务 292

12.5 外部执行任务 292

12.5.1 apply任务 292

12.5.2 exec任务 293

12.5.3 execon任务 294

12.5.4 java任务 295

12.5.5 javac任务 295

12.5.6 sql任务 296

12.6 文件库任务 298

12.6.1 jar任务 298

12.6.2 war任务 298

12.6.3 zip任务 299

12.6.4 unjar、unzip和unwar任务 300

12.7 文件读写和控制 300

12.7.1 replace任务 300

12.7.2 mail任务 301

12.8 源代码控制任务 301

12.8.1 cvs任务 301

12.8.2 get任务 302

12.9 一些关键的可选任务 302

12.9.1 junit任务 302

12.9.2 junitReport任务 303

12.10 常用的嵌套参数和元素 304

12.10.1 classpath元素 304

12.10.2 mapper元素 305

12.10.3 fileset元素 306

12.10.4 patternset元素 306

12.10.5 zipfileset元素 306

第13章 Ant API参考 308

13.1 概述 308

13.2 org.apache.tools.ant包 309

13.2.1 AntClassLoader类 309

13.2.2 BuildEvent类 310

13.2.3 BuildException类 310

13.2.4 BuildListener接口 311

13.2.5 BuildLogger接口 312

13.2.6 DefaultLogger类 313

13.2.7 DesirableFilter类 314

13.2.8 DirectoryScanner类 314

13.2.9 FileScanner接口 316

13.2.10 IntrospectionHelper类 317

13.2.11 Location类 318

13.2.12 Main类 319

13.2.13 PathTokenizer类 319

13.2.14 Project类 319

13.2.15 ProjectHelper类 323

13.2.16 RuntimeConfigurable类 324

13.2.17 Target类 324

13.2.18 Task类 326

13.2.19 TaskAdapter类 327

13.2.20 UnknownElement类 328

13.2.21 XmlLogger类 328

13.3 小结 329

第14章 JUnit API参考 331

14.1 junit.framework包 331

14.1.1 Assert类 331

14.1.2 Protectable接口 334

14.1.3 Test接口 335

14.1.4 TestCase类 335

14.1.5 TestListener接口 339

14.1.6 TestFailure类 339

14.1.7 TestResult类 340

14.1.8 TestSuite类 342

14.2 junit.extensions包 344

14.2.1 ActiveTestSuite类 344

14.2.2 ExceptionTestCase类 345

14.2.3 RepeatedTest类 346

14.2.4 TestDecorator类 347

14.2.5 TestSetup类 348

第15章 Cactus API参考 350

15.1 概述 350

15.2 org.apache.cactus包 350

15.2.1 AbstractTestCase类 350

15.2.2 Cookie类 353

15.2.3 FilterTestCase类 357

15.2.4 JspTestCase类 358

15.2.5 ServiceDefinition类 359

15.2.6 ServiceEnumeration类 359

15.2.7 ServletTestCase类 359

15.2.8 ServletTestRequest类 不推荐 362

15.2.9 ServletURL类 363

15.2.10 WebRequest类 365

15.2.11 WebResponse类 367

15.2.12 WebTestResult类 368

15.3 org.apache.cactus.util包 369

15.3.1 AssertUtils类 不推荐 369

15.3.2 ClientCookie类 不推荐 370

15.4 org.apache.cactus.server包 371

15.4.1 FilterConfigWrapper类 371

15.4.2 HttpServletRequestWrapper类 372

15.4.3 PageContextWrapper类 373

15.4.4 RequestDispatcherWrapper类 373

15.4.5 ServletConfigWrapper类 373

15.4.6 ServletContextWrapper类 374

第16章 HttpUnit API参考 375

16.1 概述 375

16.2 com.meterware.httpunit包 375

16.2.1 AuthorizationRequired-Exception类 375

16.2.2 GetMethodWebRequest类 376

16.2.3 HTMLSegment接口 376

16.2.4 HttpException类 379

16.2.5 HttpInternalErrorException类 379

16.2.6 HttpNotFoundException类 380

16.2.7 HttpUnitOptions类 380

16.2.8 HttpUnitUtils类 381

16.2.9 IllegalRequestParameterException类 382

16.2.10 MessageBodyWebRequest类 383

16.2.11 PostMethodWebRequest类 383

16.2.12 PutMethodWebRequest类 384

16.2.13 SubmitButton类 385

16.2.14 TableCell类 385

16.2.15 WebClient类 386

16.2.16 WebConversation类 389

16.2.17 WebForm类 390

16.2.18 WebLink类 392

16.2.19 WebRequest类 393

16.2.20 WebResponse类 397

16.2.21 WebTable类 400

第17章 JUnitPerf API参考 402

17.1 com.clarkware.junitperf包 402

17.1.1 ConstantTimer类 402

17.1.2 LoadTest类 402

17.1.3 RandomTimer类 406

17.1.4 ThreadBarrier类 406

17.1.5 ThreadedTest类 407

17.1.6 ThreadedTestGroup类 407

17.1.7 TimedTest类 408

17.1.8 Timer接口 410