Agile Java中文版:测试驱动开发的编程技术

Agile Java中文版:测试驱动开发的编程技术
作 者: Jeff Langr 涂波 孙勇
出版社: 电子工业出版社
丛编项:
版权说明: 本书为公共版权或经版权方授权,请支持正版图书
标 签: 暂缺
ISBN 出版时间 包装 开本 页数 字数
未知 暂无 暂无 未知 0 暂无

作者简介

  Jeff Langr有着超过二十年的开发经验。现在,他通过自己的公司——Langr Software Solution(www.LangrSoft.com)提供软件开发、设计,以及敏捷过程方面的咨询。Langr在Object Mento为Uncle Bob Martin了作过两年。Larigr是Essential,Java Style(Prentice Hall PTR,1999)的作者,并且在Software Development、C/C++Users Journal,以及其他各种在线杂志和门户上发表了很多关于Java和TDD的文章。

内容简介

《Agile Java中文版:测试驱动开发的编程技术》将三者编织在一起,形成一种旨在构建专业、健壮的软件系统的统一连贯的方法。Jeff Langr向你展示如何把Java和TDD结合在一起,并且贯穿整个开发周期:帮助你从一开始就借助当前最快最有效的开发技术。掌握Java 5.0,面向对象设计和测试驱动开发。Langr的这《Agile Java中文版:测试驱动开发的编程技术》是写给每一位程序员,甚至包括对Java、面向对象开发或敏捷方法几乎没有经验的程序员的。他向我们展示如何把口头需求转变成实际的,然后如何利用这些测试创建可靠的、高性能的、Java代码,从而解决实际问题。《Agile Java中文版:测试驱动开发的编程技术》不仅是教授Java语言的核心特性,而且提供这些特性的测试代码例子。以TDD为中心的方法不仅带来更好的代码,而且提供有效的反馈,可以帮助你更快地掌握Java。较之传统的教学技巧,TDD方法是一个划时代的开始。

图书目录

关于作者

前言

致谢

引言

“敏捷”综述

搭建环境

第1章起步

测试

设计

一个简单的测试

JUnit

增加一个测试

创建Student对象

创建Student类

构造函数

局部变量

从方法返回一个值

断言

实例变量

总结这个测试

重构

this

private

命名约定

空白区域

练习

第2章Java基础

课程安排

学生注册

int

初始化

默认构造函数

测试套件

SDK和javautilArrayList

增加对象

渐增重构

内存中的对象

包和impo~语句

java1ang包

默认包和package语句

setUp方法

更多的重构

类常量

Dates

重载构造函数

不赞成警告

重构

用Calendar创建日期

注释

Javadoc注释

练习

第3章字符串和包

字符和字符串

字符串

StringBuilder

系统属性

遍历所有的学生

单职责原则

重构

System.out

使用Systemout

重构

包结构

访问修饰符

使用Ant

练习

第4章类方法和类变量

类方法

类变量

使用类方法操作类变量

静态导入

增量

工厂方法

简单设计

静态的危险

使用静态所需要注意的

Jeff静态规则

布尔型

测试就是文档

关于初始化的更多内容

异常

再看基本类型的初始化

练爿

第5章接口和多态

排序:准备1:作

排序:Collectionssort

CourseReportTest

接口

为什么需要接口

实现Comparable

根据学科和编号进行排序

If语句一

学生的成绩

浮点数

测试成绩

重构

枚举

多态

使用接口引用一

ArrayList和List接口

练习

第6章继承

switch语句

Case标记只是标记

Map

继承

抽象类

方法扩展

重构

增强的枚举Grade

夏季课程安排

调用基类的构造函数

重构

深入构造函数

继承和多态

子合约原则

练习

第7章遗留元素

循环结构

分解学生全名

比较Java循环

重构

循环控制语句

三元操作符

遗留的集合类

迭代器

迭代器和for-each循环

类犁转换

包装类

数组

重构

练习

第8章异常和日志

异常

异常处理

检查异常

异常层次关系

创建自己的异常类型

检查异常和非检查异常

消息

捕获多个异常一

重新抛出异常

堆栈跟踪

finally块

重构

日志

Java中的日志

测试日志

将日志定向到文件

日志的测试哲学

更多关于FileHandler

日志等级

日志层次结构

日志补充说明

练习

第9章Map和相等性

逻辑操作符

短路

哈希表

课程

重构Session

相等性

相等性的定义

苹果和橙子

hashCode最后一个要点

吏多天于HashMap

其它哈希表和Set实现

toString

字符串和相等性

练习

第10章数学

BigDecimal

更多关于基本数字类型

整数运算

数字类型转换

运算优先级

NaN(Not a Number)

无穷人

数亨溢

位操作

java1angMath

数7包装类

随机数

练习

第11章 lO(输入/输出)

组织

字符流

写入文件

javaioFile

字节流与转换

学生用户界面

测试应用

数据流

CourseCatelog

高级流

对象流

随机存取文件

学生字典

sisdbDataFileTest

静态内嵌(statick nested)类和内联(inner)类

sisdbDataFile一

sisdbKeyFileTest

sisdbKeyFile

sisutilIOUtilTest

sisutilIOUtil

sisutilTestUtil

方案的改进

练习

第12章反射及其他高级主题

再顾Mock对象

Jim Bob ACH接口

Mock类

Account类的实现

匿名内联类

适配器(Adapter)

访问外围类中的变晕

折衷

反射(Refelection)

使用JUnit代码

Class类

建立测试套件

类修饰符

动态代理

安全帐号类

建立安全帐号方案

SecureProxy类

反射的问题

练习

第13章多线程

多线程

搜索(Search)服务器

Search类

更少依赖的测试

服务器

测试中的等待

创建并运行线程

合作式协作式(cooperative)与可抢占的(preemptive)多任务

同步

使用Runnable创建线程

synchronized

同步的集合类

BlockingQueue

停止线程

Wait/Notify

wait和notl‘fy的补充注意事项

锁与条件

线程优先级

死锁

ThreadLocal

Timer类

Thread的杂项

总结:同步的基本设计原则

练习

第14章范型

参数化类型

集合框架(Collection Framework)

多类型参数

创建参数化类型

擦拭法

上限(Upper Bound)

通配符(Wildcard)

使用通配符的隐含问题(Implication)

范型方法

通配符捕获(Wildcard Capture)

Super

附加限界

原始类型(Raw Type)

Checked集合

数组(Array)

额外的局限

反射

最后的注意事项

练习

第15章断言与注解

断言

assert语句vsJUnit的Assert方法

注解(Annotation)

建立一个测试工具

TestRunnerTest

TestRunner

@TestMethod注解

保留(Retention)

注解的目标(Annotation Tagets)

跳过测试方法

修改TestRunner

单值(Single-Value)注解

TestRunner的用户界面类

数组参数

多个参数的注解

缺省值

附加返回类型与复式注解类型

包注解

兼容性考虑

关于注解的额外注意事项

总结

练习

附加课I Swing,第一部分

Swing

起步

Swing应用的设计

面板(Panel)

重构(Refactory)

更多的控件

重构(Refactory)

按钮点击与ActionListener

列表Model

应用

布局

继续前进

附加课II Swing,第二部分

界面美化的杂项

体验(feel)一

表格(Table)

反馈(Feedback)

响应性(Responsiveness)

余下的任务

最后的注意事项

附加课ⅢJava的杂项

JAR

正则表达式

克隆(Cloning)与协变(Covariance)一

JDBC

国际化(Internationalization)

按引用调用vs按值调用

Java的边缘地带

还有哪些内容

附录A敏捷Java的术语表

附录B Java操作符的优先规则

附录C IDEA入门

IDEA

Hello项目

运行测试

利用IDEA的优势

Agile Java References

索引