返回

Java编程思想

关灯
护眼
第36章(1 / 14)
强烈推荐: 凤若绵云(网王) 嗜血帝王改嫁妃 重回九四 凤御狂兽 超级小农庄 翱翔天外 囚禁 淡烟疏雨落花天 重生八零之我主沉浮

main1next

j=6=6

"runningtestin色rt"ิ,

"色tupfor0",ไ

publi9๗tget摸difier{return摸difier;๙}

pubຘli9t摸d{摸difier=๡摸d;}

publi9performeda9te{

9e9๗a9er{

3.糟糕的程序设计导致不必要的复杂度。可以用两ä种方法列出文件对象。如果我们想获得一个受限列

假设我们想查看一个目录列表,这种说法也๣很

在“几何形状”这&#x。然而,

"#5:2"ิ,

"#3๑:๘2",

importjavautilzip;

i,

2.需要处理线程的额外cpu耗费ต。包含一个ฐshape基类和多个导出类。如,看起来还是比较合适的。虽然这样可以跟踪异常的行为,但是你仍旧

里用打印栈轨迹stacktraທce的方法来“修补”这个ฐ问题本章中的很多例子还是使

"逼gegg2yolkf"

"ิ逼gegg2yolk",ไ

triaທngle等。这个例子之ใ所以好用,是因为我们可以说“圆是一种形状”,便可以获得此文件对象包含的全部列表,如果我们调用不带参数的

也许你会好奇为什,为:circle,squaທre,

"314159"ิ

"1้00"ิ,

先调用initialize。然而,在jaທva中。这同时意味着用户,通

可以假想为ฦ编写的每个类都定义แ一个initiaທlize方法。此名称提醒你在使用其对象之前๩,格式如下,应

@return&#x:

}

sdra9;

前๩言

由于我们水平有限,书中ณ出现错误与不妥之处在所难免,恳请读者批评指正。

传统上,将测试视为项目的最后部分,你已经“令所有东西都工ื作了,只是需要确认”。

它隐含地具有较低优先级,专门做测试的人员也๣没有被给予什么地位,甚至常常被隔离在

地下室,远离“真正的程序员”。作为回应,测试团队就像是穿着黑袍的人,弄坏了东西

就高兴得咯咯笑老实说,当令编译器出错时,我也有这种感觉。

xp完全颠๲覆了测试的概ฐ念,给予其与代码相等甚至更高的优先级。事实上,它要求在

写代码前先写出对其要做的测试,并且将这些测试与代码永远放在一起。每完成项目的一

个版本,必须成功通过测试通常一天一次,甚至多次。

优先编写测试有两个非常重要的影响。

先,它要求类的接口的定义必须ี清楚。我总是建议人们,在设计系统的时候“为解决特

定问题而专门设计一个类”。xp的测试策略则更进一步,它确切地向类的用户说明,类应

该是什么样子、应该如何运作。这里没有不确定的术语。你可以写成散文,或画图来描述

类应该如何运作,以及它的样子,但没有什么比一套测试集合更真实。前๩者是愿望的列表,

而测试是一个契约,由á编译器与测试框架保证。很难想象有工具能ม比测试更具体地描述一

个ฐ类。

在创建测试时,你会被强制ๆ去彻底思考类,并且常会因此而现一些需要加入的功能,这

些功能在使用uml图,cນrc卡、用例等工ื具时被遗漏了。

优先编写测试的第二个重要的影响是,开出的每一版软件都要进行测试。此时编译器帮

你完成了一半的测试工作。如果从这个角度观察编程语言的演化,就会现,技术上最实

际的改善其实就是以测试为中心。汇编语言只能检查语法,而c做了一些语义约束,可以

避免你使用错误的类型。oop语言则有更强的语义แ约束,实际上,你可以将其视为ฦ某种形

式的测试。“这个数据的类型用得正确吗”,“这个ฐ方法是否调用得正确”,这都是由编

译器在运行期做的测试。我们已经看到เ了将这类测试内置于程序语言中ณ的效果:人们能ม够

写出更复杂的系统,花费更少的时间和精力就能令系统正确工作。我曾其原因而感到迷惑,

但是现在我认识到เ,原因就是测试:如果某件事做错了,内置的测试安全措施会通知你出

了问题,并指出问题在哪儿。

但是编程语言内置的测试也๣只能做到这么เ多。某些时候,你必须介入其中ณ,添加余下的测

试与编译器和运行期的系统相互配合,从而产生完整的能够验证整个程序的测试包。

而且,难道你不希๶望像编译器从旁照ั看着你一样,让这些测试从一开始就帮你走得正确吗?

这就是为

书签 上一章 目录 下一章 书架s
推荐阅读: 紫苑花开张雪琼 倾城之恋小说 现代逍遥少爷 龙帝冥王 黑道皇后女人你别太嚣张 温柔与霸道dj原版 神道灵修 萌宝甜妻:总裁双喜临门 嫡女难为小说全文免费阅读 破神诀全文免费阅读 甜蜜近邻txt下载