您现在的位置:首页 > 知识库 > 计算机与软件 >软件工程技术丛书 前沿论题系列 Java极限编程
软件工程技术丛书 前沿论题系列 Java极限编程

软件工程技术丛书 前沿论题系列 Java极限编程

资料大小: 23.96 MB
文档格式: PDF文档
资料语言: 简体中文
资料类别: 计算机与软件
更新日期: 2020-04-24
下载说明:
推荐信息: 编程   极限   Java

本地下载(30点)  备用下载(30点)

内容简介
Java极限编程
出版时间:2004
丛编项: 软件工程技术丛书 前沿论题系列
内容简介
  本书通过介绍一系列开源Java开发工具和生动的实例,描述如何用极限编程(eXtremeProgramming)理论指导具体的开发行为,从而使Java开发更加灵活、高效、低成本。本书主要讲述J2EE和极限编程的基础,重点介绍如何掌握极限编程过程中最难的部分:测试、整合和部署。全书以基础开篇,接着辅以范例并对著名的宠物商店范例进行功能性剖析。在了解了各个工具的概念后,作者介绍了测试的实践,一步一步指导读者掌握极限编程开发的技术要点。本书内容丰富、详实、生动,适合作为Java软件开发人员的参考书。考虑到富有经验的Java程序员的需要,本书首先简短介绍极限编程方法及技术,随后探究本书始终沿用的一个应用程序范例来体验工具的作用和开发活动中的实践。作者在介绍每一个工具时都提供关键概念的描述以及代码范例,并一步一步带领读者掌握极限编程开发方面的技术。本书覆盖了以下极限编程的主题:自动单元测试和功能测试通过自动构建和自动部署进行持续整合重构和持续整合的价值如何用Ant、JUnitPerf、Cactus,HTTPUnit和JMeter来实现极限编程中的目标相关的网站包含以下内容:本书中涉及的范例代码极限编程软件工具的升级版本实用的极限编程站点链接软件界信奉的哲学是“不变则亡”。极限编程为敏捷地应对软件开发中的各种变化提供了全新思路,本书是RichardHightower和NicholasLesiecki关于极限编程(ExtremeProgramming)的创新之作,讲述了这种能使开发人员快速、有效、低成本地创建灵活高效软件的方法论、本书将为您演示如何使用开源(OpenSource)Java开发工具实现Java开发中的极限编程方法,并使大家掌握极限编程中最复杂的开发过程:测试、整合及部署。
目录
译者序<br>致谢<br>作者简介<br>前言<br>第一部分 关键概念介绍<br>第1章 Extreme Programming介绍 2<br>1.1 极限编程概览 2<br>1.1.1 极限编程开发方法的四大价值 2<br>1.1.2 极限编程的五个原则 3<br>1.2 极限编程的12个实践原则 5<br>1.2.1 计划的制定 5<br>1.2.2 小版本 5<br>1.2.3 简单设计 6<br>1.2.4 测试 6<br>1.2.5 持续整合 6<br>1.2.6 重构 7<br>1.2.7 配对编程 7<br>1.2.8 代码共享 8<br>1.2.9 每周只工作40小时 9<br>1.2.10 现场客户 9<br>1.2.11 隐喻 9<br>1.2.12 编码标准 9<br>1.3 采用极限编程吗 9<br>1.4 小结 10<br>第2章 J2EE 部署 12<br>2.1 概述 12<br>2.2 JAR文件 14<br>2.2.1 JAR文件和applet 14<br>2.2.2 可执行的JAR文件 15<br>2.3 Web应用程序和WAR文件 16<br>2.4 EJB和EJB JAR文件 18<br>2.5 企业级应用程序和EAR文件 21<br>2.6 小结 21<br>第3章 应用程序范例 23<br>3.1 概述 23<br>3.2 简单范例:基于Model2的HelloWorld 23<br>3.3 范例:宠物商店 24<br>3.4 宠物商店的最初版本 25<br>3.4.1 model类(公共的接口) 25<br>3.4.2 dbmodel类(实现) 26<br>3.4.3 数据库模型 27<br>3.4.4 Web接口 28<br>3.4.5 构建系统 31<br>3.5 用测试数据设置数据库:Ant小试牛刀 34<br>3.6 完整的代码清单 39<br>3.6.1 model包的完整代码清单 39<br>3.6.2 dbmodel包的完整代码清单 43<br>3.6.3 test包的完整代码清单 49<br>3.6.4 JSP和Web.xml的完整代码清单 55<br>3.7 小结 60<br>第二部分 掌握工具<br>第4章 使用Ant进行持续整合 62<br>4.1 概述 62<br>4.2 Ant使用基础 63<br>4.3 标准目标 65<br>4.3.1 简单的范例 65<br>4.3.2 使用特性一起运作 67<br>4.3.3 路径设置和fileset设置 68<br>4.3.4 条件性目标 70<br>4.3.5 使用过滤器 72<br>4.3.6 嵌套构建 73<br>4.4 小结 73<br>第5章 使用Ant建立Java应用程序 75<br>5.1 概述 75<br>5.2 Hello World Model项目 75<br>5.2.1 model类概览 76<br>5.2.2 为Model建立项目目录结构 77<br>5.2.3 为共享类库建立构建文件 77<br>5.2.4 model项目构建文件的分析 78<br>5.2.5 运行Ant构建文件 81<br>5.3 Hello World应用程序项目 82<br>5.3.1 应用程序的Java类概览 82<br>5.3.2 为应用程序建立项目目录结构 83<br>5.3.3 为独立应用程序建立清单文件 83<br>5.3.4 为独立应用程序建立Ant构建文件 83<br>5.4 Hello World主项目 86<br>5.4.1 建立主构建文件 86<br>5.4.2 关于主构建文件的分析 87<br>5.5 applet项目 88<br>5.5.1 applet类概览 88<br>5.5.2 为applet程序建立构建文件 91<br>5.5.3 使用Ant构建applet程序 92<br>5.6 Hello World 功能翻新 93<br>5.7 小结 93<br>第6章 使用Ant建立J2EE应用程序 94<br>6.1 概述 94<br>6.2 Hello World 94<br>6.3 Web应用程序项目 95<br>6.3.1 Web应用程序项目的目录结构 95<br>6.3.2 HelloWorldServlet.java 96<br>6.3.3 HelloWorldServlet分析 97<br>6.3.4 HelloWorld.jsp 98<br>6.3.5 HelloWorld Web应用程序的部署<br>描述符 98<br>6.3.6 HelloWorld Web应用程序的构建文件 99<br>6.3.7 构建和部署Web应用程序 105<br>6.3.8 运行Web应用程序 107<br>6.3.9 HelloWorld.jsp applet 传递 108<br>6.3.10 在WAR文件中包含applet 109<br>6.4 企业级JavaBean 110<br>6.4.1 企业级Bean项目的目录结构 110<br>6.4.2 HelloWorld实体Bean 111<br>6.4.3 会话Bean 113<br>6.4.4 Shadow代理Bean 116<br>6.4.5 企业级JavaBean部署描述符 118<br>6.4.6 企业级Bean的构建文件 120<br>6.4.7 企业级Bean构建文件的分析 123<br>6.4.8 在Web应用程序构建文件中定义<br>ejb特性 125<br>6.4.9 运行构建文件 126<br>6.5 EAR 企业级应用程序 127<br>6.5.1 HelloWorld主项目构建文件 127<br>6.5.2 企业级应用程序构建文件的分析 129<br>6.5.3 企业应用程序部署描述符 131<br>6.6 宠物商店案例学习 132<br>6.7 小结 134<br>第7章 使用JUnit进行单元测试 136<br>7.1 JUnit概述 137<br>7.1.1 编写一个测试案例 138<br>7.1.2 使用Ant整合JUnit 143<br>7.2 案例研究:在宠物商店案例中<br>加入实体Bean 149<br>7.2.1 现有的JUnit测试概述 149<br>7.2.2 在宠物商店案例中加入EJB 157<br>7.2.3 建立一个Ant构建文件用以部署<br>我们的实体Bean 169<br>7.2.4 修改Test构建文件用以测试<br>我们的实体Bean 175<br>7.2.5 学习案例的小结 177<br>7.3 小结 177<br>第8章 使用Cactus测试容器服务 178<br>8.1 概述 178<br>8.2 为什么要做容器内测试 178<br>8.2.1 隔离测试:模拟对象 178<br>8.2.2 上下文测试:整合测试 179<br>8.2.3 一个混合手法 180<br>8.3 为什么使用Cactus 180<br>8.4 安装Cactus 181<br>8.4.1 服务器端安装 182<br>8.4.2 客户端安装 183<br>8.4.3 一个简单的范例 184<br>8.5 Cactus系统架构 185<br>8.5.1 开始执行 185<br>8.5.2 beginXXX()方法 186<br>8.5.3 调用转向器Servlet 186<br>8.5.4 服务器端安装 186<br>8.5.5 服务器端执行 187<br>8.5.6 结果集合和后处理 187<br>8.6 编写Cactus测试 188<br>8.6.1 被测试的代码 188<br>8.6.2 继承适当的类 190<br>8.6.3 beginXXX()方法 190<br>8.6.4 隐含对象 191<br>8.6.5 setUp()和tearDown() 192<br>8.6.6 testXXX() 193<br>8.6.7 endXXX() 193<br>8.7 Cactus与Ant的使用 195<br>8.8 Filter测试 196<br>8.9 JSPTestCase和自定义标记 198<br>8.10 案例学习:使用自定义标记的<br>宠物商店程序 213<br>8.10.1 业务需求 213<br>8.10.2 寻找一个开始点 213<br>8.10.3 测试案例 214<br>8.11 小结 219<br>第9章 使用HttpUnit进行功能测试 220<br>9.1 为什么要做功能测试 220<br>9.2 为什么要使用HttpUnit 221<br>9.3 HttpUnit基础 222<br>9.3.1 WebClient(客户端)功能介绍 222<br>9.3.2 响应检查和多页面处理 223<br>9.4 HttpUnit的高级话题 231<br>9.4.1 DOM检查 232<br>9.4.2 Header和Cookies 233<br>9.4.3 框架页面 233<br>9.4.4 SSL 234<br>9.4.5 HttpUnitOptions 234<br>9.4.6 技术局限性 234<br>9.5 蜘蛛范例程序 234<br>9.5.1 蜘蛛程序开发:第一个循环 235<br>9.5.2 蜘蛛程序开发:二次循环 236<br>9.5.3 蜘蛛工具将来的工作 240<br>9.6 小结 240<br>第10章 使用JMeter测试应用程序性能 241<br>10.1 概述 241<br>10.2 JMeter概述 242<br>10.3 JMeter概念 242<br>10.4 使用JMeter测试Web应用程序<br>浏览程序 244<br>10.5 使用JMeter测试Web应用程序<br>的表单条目 249<br>10.6 使用JMeter测试我们的RDBMS<br>的性能 255<br>10.7 案例学习:宠物商店 257<br>10.7.1 业务需求 257<br>10.7.2 建立测试 259<br>10.7.3 分析 262<br>10.7.4 结论 263<br>10.8 小结 263<br>第11章 使用JUnitPerf进行负载测试 264<br>11.1 概述 264<br>11.2 JUnitPerf概念 264<br>11.3 TimedTest范例 265<br>11.4 LoadTest范例 272<br>11.5 案例学习 273<br>11.5.1 HTTPUnit测试 273<br>11.5.2 JMeter配置 275<br>11.5.3 将它们放在一块 275<br>11.5.4 结论 278<br>11.6 小结 279<br>第三部分 API和标记参考<br>第12章 Ant标记参考 282<br>12.1 Ant命令行选项 282<br>12.2 Ant的父元素 283<br>12.2.1 project标记 283<br>12.2.2 target标记 283<br>12.2.3 path标记 284<br>12.2.4 filter标记 285<br>12.2.5 tstamp标记 285<br>12.3 Ant关键任务 286<br>12.3.1 Ant任务 286<br>12.3.2 antcall任务 286<br>12.3.3 available任务 287<br>12.3.4 echo任务 288<br>12.3.5 fail任务 288<br>12.3.6 property任务 288<br>12.3.7 taskdef任务 289<br>12.4 目录和文件系统任务 289<br>12.4.1 chmod任务 289<br>12.4.2 copy任务 290<br>12.4.3 delete任务 290<br>12.4.4 mkdir任务 291<br>12.4.5 move任务 291<br>12.4.6 touch任务 292<br>12.5 外部执行任务 292<br>12.5.1 apply任务 292<br>12.5.2 exec任务 293<br>12.5.3 execon任务 294<br>12.5.4 java 任务 295<br>12.5.5 javac任务 295<br>12.5.6 sql任务 296<br>12.6 文件库任务 298<br>12.6.1 jar任务 298<br>12.6.2 war任务 298<br>12.6.3 zip任务 299<br>12.6.4 unjar. unzip和unwar任务 300<br>12.7 文件读写和控制 300<br>12.7.1 replace任务 300<br>12.7.2 mail任务 301<br>12.8 源代码控制任务 301<br>12.8.1 cvs任务 301<br>12.8.2 get任务 302<br>12.9 一些关键的可选任务 302<br>12.9.1 junit任务 302<br>12.9.2 junitReport任务 303<br>12.10 常用的嵌套参数和元素 304<br>12.10.1 classpath元素 304<br>12.10.2 mapper元素 305<br>12.10.3 fileset元素 306<br>12.10.4 patternset元素 306<br>12.10.5 zipfileset元素 306<br>第13章 Ant API 参考 308<br>13.1 概述 308<br>13.2 org.apache.tools.ant包 309<br>13.2.1 AntClassLoader类 309<br>13.2.2 BuildEvent类 310<br>13.2.3 BuildException类 310<br>13.2.4 BuildListener接口 311<br>13.2.5 BuildLogger接口 312<br>13.2.6 DefaultLogger类 313<br>13.2.7 DesirableFilter类 314<br>13.2.8 DirectoryScanner类 314<br>13.2.9 FileScanner接口 316<br>13.2.10 IntrospectionHelper类 317<br>13.2.11 Location类 318<br>13.2.12 Main类 319<br>13.2.13 PathTokenizer类 319<br>13.2.14 Project类 319<br>13.2.15 ProjectHelper类 323<br>13.2.16 RuntimeConfigurable类 324<br>13.2.17 Target类 324<br>13.2.18 Task类 326<br>13.2.19 TaskAdapter类 327<br>13.2.20 UnknownElement类 328<br>13.2.21 XmlLogger类 328<br>13.3 小结 329<br>第14章 JUnit API参考 331<br>14.1 junit.framework包 331<br>14.1.1 Assert类 331<br>14.1.2 Protectable接口 334<br>14.1.3 Test接口 335<br>14.1.4 TestCase类 335<br>14.1.5 TestListener接口 339<br>14.1.6 TestFailure类 339<br>14.1.7 TestResult类 340<br>14.1.8 TestSuite类 342<br>14.2 junit.extensions包 344<br>14.2.1 ActiveTestSuite类 344<br>14.2.2 ExceptionTestCase类 345<br>14.2.3 RepeatedTest类 346<br>14.2.4 TestDecorator类 347<br>14.2.5 TestSetup类 348<br>第15章 Cactus API参考 350<br>15.1 概述 350<br>15.2 org.apache.cactus包 350<br>15.2.1 AbstractTestCase类 350<br>15.2.2 Cookie类 353<br>15.2.3 FilterTestCase类 357<br>15.2.4 JspTestCase类 358<br>15.2.5 ServiceDefinition类 359<br>15.2.6 ServiceEnumeration类 359<br>15.2.7 ServletTestCase类 359<br>15.2.8 ServletTestRequest类 不推荐 362<br>15.2.9 ServletURL类 363<br>15.2.10 WebRequest类 365<br>15.2.11 WebResponse类 367<br>15.2.12 WebTestResult类 368<br>15.3 org.apache.cactus.util包 369<br>15.3.1 AssertUtils类 不推荐 369<br>15.3.2 ClientCookie类 不推荐 370<br>15.4 org.apache.cactus.server包 371<br>15.4.1 FilterConfigWrapper类 371<br>15.4.2 HttpServletRequestWrapper类 372<br>15.4.3 PageContextWrapper类 373<br>15.4.4 RequestDispatcherWrapper类 373<br>15.4.5 ServletConfigWrapper类 373<br>15.4.6 ServletContextWrapper类 374<br>第16章 HttpUnit API参考 375<br>16.1 概述 375<br>16.2 com.meterware.httpunit包 375<br>16.2.1 AuthorizationRequired-<br>Exception类 375<br>16.2.2 GetMethodWebRequest类 376<br>16.2.3 HTMLSegment接口 376<br>16.2.4 HttpException类 379<br>16.2.5 HttpInternalErrorException类 379<br>16.2.6 HttpNotFoundException类 380<br>16.2.7 HttpUnitOptions类 380<br>16.2.8 HttpUnitUtils类 381<br>16.2.9 IllegalRequestParameterException类 382<br>16.2.10 MessageBodyWebRequest类 383<br>16.2.11 PostMethodWebRequest类 383<br>16.2.12 PutMethodWebRequest类 384<br>16.2.13 SubmitButton类 385<br>16.2.14 TableCell类 385<br>16.2.15 WebClient类 386<br>16.2.16 WebConversation类 389<br>16.2.17 WebForm类 390<br>16.2.18 WebLink类 392<br>16.2.19 WebRequest类 393<br>16.2.20 WebResponse类 397<br>16.2.21 WebTable类 400<br>第17章 JUnitPerf API参考 402<br>17.1 com.clarkware.junitperf包 402<br>17.1.1 ConstantTimer类 402<br>17.1.2 LoadTest类 402<br>17.1.3 RandomTimer类 406<br>17.1.4 ThreadBarrier类 406<br>17.1.5 ThreadedTest类 407<br>17.1.6 ThreadedTestGroup类 407<br>17.1.7 TimedTest类 408<br>17.1.8 Timer接口 410