01 2009 档案
摘要:Junit和许多开源软件项目集成在一起,但是Junit执行多线程的单元测试有一些问题。这篇文章介绍Junit的一个扩展类库―――GroboUtils,这个类库被设计为来解决这些问题,并且使在Junit中进行单元测试成为可能。对Junit和线程有一个基本的理解是有好处的,但对于本篇文章的读者来说不是必需的。介绍 如果你已经在一个开源的Java项目上工作,或者读了许多有关“极限编程”和其它“快速开发模式”的书籍,那么,你很有可能已经听说过有关Junit的事情。它是由Erich Gamma和Kent Beck编写的,Junit是一个Java的自动测试的框架,它允许你为你的软件定义的“单元测试”――.
阅读全文
摘要:2009年1月15日 沈阳 晴 为解决1月7日遇到的排列组合的难题,进行了以下题目的研究,并用C#实现了一个非递归的算法。有一个List,List中存有N个对象,要求做出这N个对象所有无序组。数学公式:组合数=C(n,1) + C(n,2) + ...... + C(n,n)C#的算法实现:一.组合生成器:using System;using System.Collections.Generic;using System.Text;namespace CollectionApp{ public class CombinationMaker<T> { //T类型元素组合表 publi
阅读全文
摘要:这节说明怎样使用异常处理器的三个组成部分-try,catch和finally块来编写异常处理器。最后举一个例子,并且分析在不同的情况下发生了什么。 下面的例子定义和实现了一个叫做ListOfNumbers的类。在类的构造器中,ListOfNumbers创建了一个Vector,它包含了从0到9 的十个连续的整数。ListOfNumbers类也定义了一个叫writeList的方法,这个方法把这个数字列表写入一个叫做OutFile.txt的文本文件中。这个例子使用了在java.io中定义的输出类。// 注意: 这样的设计,这个类不会被编译import java.io.*;import java.u.
阅读全文
摘要:你已经读了有关什么是异常以及怎样使用它们的内容,现在是学习在你的程序中使用异常的好处的时候了。优势1:把规则代码与错误处理代码分离 异常处理规定把错误发生时所要的细节工作与程序的主逻辑代码分离。在传统程序中,错误的发现、报告以及处理经常使得代码混乱。例如,思考下面的伪代码,这是一个把整个文件读入内存的方法。 1. readFile { 2. open the file; 3. determine its size; 4. allocate that much memory; 5. read the file into memory; 6. close the file; 7. } 8. 第一眼
阅读全文
摘要:我们总是试图避免在软件程序中错误的发生,但是它的存在却是不幸的实事。无论怎样,如果你能适当的处理错误,将会极大的改善程序的可读性、可靠性以及可维护性。Java编程语言使用异常来处理错误。这章主要讲述在什么时候和怎样使用异常来处理错误。 什么是异常? 异常(exception)应该是异常事件(exceptional event)的缩写。 Java编程语言使用异常机制为程序提供了错误处理的能力。一个异常是在程序执行期间发生的一个事件,它使用正常的指令流中断。当在一个方法中发生错误的时候,这个方法创建一个对象,并且把它传递给运行时系统。这个对象被叫做异常对象,它包含了有关错误的信息,这些信息包括错.
阅读全文
摘要:传真 Fax QWu 11.5606 Normal 0 7.8 磅 0 2 false false false MicrosoftInternetExplorer4 配置管理虽然是软件项目过程控制的重要手段和工具,但是在项目的开发实践中却往往被忽视,或者是没有得到系统有效的应用。为什么会发生这种情况呢?究其原因,主要还是大家对配置管理的概念以及配置管理的内容认识比较模糊,或者觉得使用一套版本管理工具(如微软的VSS、或CVS)就可以解决所有配置管理方面的问题。 什么是配置管...
阅读全文
摘要:2009年1月7日 日本东京 多云今天遇到了从事应用软件开发以来最难的一个问题,到目前为止算法还是很模糊,客户也告诉我们非常难,他们也只是实现了一个基本的原型,至于应用中的各种限制条件,在原型中都没有考虑,而且原型所使用的数据结构与我们项目中实际应用的数据结构差异非常大,唯一可以参照的就是其还不够完善的算法逻辑。 我们要面临以下几大难题: 1.把原型中算法逻辑转换到实际项目中,使之能够满足项目中实际的数据结构的要求; 2.把实际应用中的各种限制条件追加到转换后的原型的算法中后,会带来哪些影响需要仔细研究和验证; 3.应用新的算法后,怎样改善随之而来的性能问题; 4.修正完了后,如何测试,因为我
阅读全文
摘要:2009年1月5日 日本东京 多云 今天是9天长假后第一天上班,因此比平常要早一个多小时到公司,早早的开始了一天的工作,整个上午工作效率挺高,基本上把一整天的工作全部完成了。下午例会时,客户说放假前改的一个问题还是有错误,"怎么会呢?",于是例会后,到客户的测试环境中看了现象,就试图在我的开发环境中再现这个错误,结果无论怎样运行程序,都不再现。没办法,只要做到客户的测试环境前,面对着错误现象开始"相面"(在测试环境中不能Debug,即使能够Debug,这个错误肯定是嵌套在N层循环中,很难Debug),头脑中清理着所有程序可能执行路线,突然想起前些天修改过
阅读全文
摘要:螃蟹、猫头鹰和蝙蝠去上恶习纠正班。数年过后,它们都顺利毕业并获得博士学位。不过,螃蟹仍横行,猫头鹰仍白天睡觉晚上活动,蝙蝠仍倒悬。 这是黄永玉大师的一个寓言故事,它的寓意很简单:行动比知识重要。 如果一些连珠的妙语打动了你,如果一些文字或新信条启发了你。那么,这些别人的文字和经验都只是一个开始,更重要的是,你把你以为好的知识真正运用到你自己的生命中去。犹太哲学家马丁.布伯的这句话,我一直认为是最重要的:你必须自己开始。假如你自己不以积极的爱去深入生存,假如你不以自己的方式去为自己揭示生存的意义,那么对你来说,生存就将依然是没有意义的。
阅读全文
摘要:想象一下,你手里有一张足够大的白纸。现在,你的任务是,把它折叠51次。那么,它有多高?一个冰箱?一层楼?或者一栋摩天大厦那么高?不是,差太多了,这个厚度超过了地球和太阳之间的距离。 折叠51次的高度如此恐怖,但如果仅仅是将51张白纸叠在一起呢? 这个对比让不少人感到震撼。因为没有方向、缺乏规划的人生,就像是将51张白纸简单叠在一起。今天做做这个,明天做做那个,每次努力之间并没有一个联系。这样一来,哪怕每个工作都做得非常出色,它们对你的整个人生来说也不过是简单的叠加而已。所以“通过规划利用好现有的能力远比挖掘所谓的潜能更重要。
阅读全文
摘要:一群孩子在一位老人家门前嬉闹,叫声连天。几天过去,老人难以忍受。于是,他出来给了每个孩子25美分,对他们说:“你们让这儿变得很热闹,我觉得自己年轻了不少,这点钱表示谢意。”孩子们很高兴,第二天仍然来了,一如既往地嬉闹。老人再出来,给了每个孩子15美分。他解释说,自己没有收入,只能少给一些。15美分也还可以吧,孩子仍然兴高采烈地走了。第三天,老人只给了每个孩子5美分。孩子们勃然大怒,“一天才5美分,知不知道我们多辛苦!”他们向老人发誓,他们再也不会为他玩了! 这个寓言是苹果树寓言的更深一层的答案:苹果树为什么会自断经脉,因为它不是为自己而“玩”。 工作后,你是否已忘记了工作的原初动机???成长.
阅读全文
摘要:一棵苹果树,终于结果了。第一年,它结了10个苹果,9个被拿走,自己得到1个。对此,苹果树愤愤不平,于是自断经脉,拒绝成长。第二年,它结了5个苹果,4个被拿走,自己得到1个。“哈哈,去年我得到了10%,今年得到20%!翻了一番。”这棵苹果树心理平衡了,但是,它还可以这样:继续成长。譬如,第二年,它结了100个果子,被拿走90个,自己得到10个。很可能,它被拿走99个,自己得到1个。但没关系,它还可以继续成长,第三年结1000个果子…… 其实,得到多少果子不是最重要的。最重要的是,苹果树在成长!等苹果树长成参天大树的时候,那些曾阻碍它成长的力量都会微弱到可以忽略。真的,不要太在乎果子,成长是最重.
阅读全文