摘要: 我个人认为一个优秀的软件工程师必须掌握一定的测试技能。可能有的开发工程师认为测试是测试工程师的事情,不是开发工程师的事情。这种开发工程师是缺一条腿的,离开了测试工程师,你如何证明你的程序没有问题。 下面是我这两天搜集的性能测试工具,如果大家知道别的工具,可以在回复中分享出来。 Web Bench Web Bench is very simple tool for benchmarking WWW ... 阅读全文
posted @ 2014-05-11 12:24 Ethan Cai 阅读(117012) 评论(7) 推荐(9) 编辑
摘要: 此文收集一些平时使用单元测试碰到的问题和解决办法,供大家参考。 如何检查返回的集合类是否符合期望? Microsoft UnitTestFramework 如果需要元素的顺序一致,可以使用CollectionAssert.AreEqual;如果不需要考虑顺序,可以使用CollectionAssert.AreEquivalent。(有的地方说MSTest的Assert.AreEqual支持集合... 阅读全文
posted @ 2014-05-06 10:15 Ethan Cai 阅读(3662) 评论(2) 推荐(1) 编辑
摘要: 线程上下文切换的性能损耗到底有多少,一直没有直观的理解,今天写个程序测试一下。先看看下面的程序(点击下载): ThreadTester是所有Tester的基类。所有的Tester都干的是同样一件事情,把counter增加到100000000,每次只能加1。 1: public abstract class ThreadTester 2: { 3: publ... 阅读全文
posted @ 2014-05-04 00:06 Ethan Cai 阅读(23895) 评论(39) 推荐(17) 编辑
摘要: 测试驱动开发(TDD)已经是耳熟能详的名词,既然是测试驱动,那么测试用例代码就要写在开发代码的前面。但是如何写测试用例?写多少测试用例才够?我想大家在实际的操作过程都会产生这样的疑问。 3月15日,我参加了thoughtworks组织的“结对编程和TDD Openworkshop”活动,聆听了tw的资深咨询专家仝(tong2)键的精彩讲解,并在讲师的带领下实际参与了一次TDD和结对编程的过程。活动... 阅读全文
posted @ 2014-03-25 05:31 Ethan Cai 阅读(3961) 评论(7) 推荐(3) 编辑
摘要: 参考:什么是AOP? OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当我们需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许你定义从上到下的关系,但并不适合定义从左到右的关系。 AOP技术则恰恰相反,它利用一种称为“横切”的技术,剖解开封装的对象内部,并将那些影响了多个类的公共行为封装到一个可重用模块,并将其名为“Aspec... 阅读全文
posted @ 2013-12-21 11:32 Ethan Cai 阅读(1699) 评论(2) 推荐(1) 编辑
摘要: 最近看到一个新名词“ATDD”,全称“Acceptance Test Driven Development ”,中文称“验收测试驱动开发”。ATDD和TDD的区别是什么呢,查了一些资料,我的理解如下: 先介绍一下TDD,引用Wikipedia上的关于TDD的介绍: Test-driven development (TDD) is a software development pr... 阅读全文
posted @ 2013-07-06 11:19 Ethan Cai 阅读(22431) 评论(1) 推荐(1) 编辑
摘要: 引用自:http://tech.sina.com.cn/mobile/n/2011-06-20/18371792199.shtml 这篇文章写的深入浅出,把异构计算的思想和行业趋势描述的非常清楚,难得一见的好文章。按捺不住转一下。^_^ 相对于串行计算,并行计算可以划分成时间并行和空间并行。时间并行即流水线技术,空间并行使用多个处理器执行并发计算,当前研究的主要是空间的并行问题。以程序和... 阅读全文
posted @ 2013-06-30 17:44 Ethan Cai 阅读(6326) 评论(0) 推荐(0) 编辑
摘要: 推荐伍斌老师的一篇文章《程序员的四种类型》,大家看看自己属于那种类型。个人感觉,成为哪种类型的程序员还和个人的性格有关,比如,更爱思考的程序员更有可能从码农变成专家。情商更高的程序员更可能成为管理者。 参考: http://book.douban.com/subject/1927902/ 阅读全文
posted @ 2013-06-29 00:33 Ethan Cai 阅读(590) 评论(0) 推荐(0) 编辑
摘要: 下面是我收集的一些Linux资源,与大家分享。大家共同学习,一起进步。 国内的专业Linux网站(GB) 1. ChinaUnix:http://www.chinaunix.net/ 2. Linux伊甸园论坛: http://bbs.linuxeden.com/index.php 国内的专业Linux网站(BIG5) 1. 香港Linux用户协会: http://wiki.linux.... 阅读全文
posted @ 2013-06-24 23:47 Ethan Cai 阅读(2672) 评论(0) 推荐(1) 编辑
摘要: 是选修课,不是必修课。 阅读全文
posted @ 2013-06-24 23:07 Ethan Cai 阅读(1927) 评论(9) 推荐(5) 编辑
摘要: 写这个系列的文章,只为把所学的设计模式再系统的整理一遍。错误和不周到的地方欢迎大家批评。点击这里下载源代码。 什么时候使用单例模式 在程序运行时,某种类型只需要一个实例时,一般采用单例模式。为什么需要一个实例?第一,性能,第二,保持代码简洁,比如程序中通过某个配置类A读取配置文件,如果在每处使用的地方都new A(),才能读取配置项,一个是浪费系统资源(参考.NET垃圾回收机制),再者重复代码... 阅读全文
posted @ 2013-06-23 08:32 Ethan Cai 阅读(878) 评论(0) 推荐(0) 编辑
摘要: 要在Flex中实现AES加密,可以通过as3crypto实现。但是as3crypto本身的用法比较复杂,一般是封装一下再调用。 下面是9RIA上的一篇文章给出的一个实现,使用中稍感不方便(见注释): 1: package { 2: import com.hurlant.crypto.Crypto; 3: import com.hurlant.cry... 阅读全文
posted @ 2013-06-20 00:01 Ethan Cai 阅读(3440) 评论(0) 推荐(0) 编辑
摘要: 书籍: 目前在看两本 《Essential.ActionScript.3.0》 《Flex 4 In Action》 还有两本当手册翻阅,非常喜欢Cookbook这种题材的书,对于初学者里面的例子可以直接拿来现学现卖 《Flex.4.Cookbook》 《ActionScript 3.0 Cookbook》 学习网站 http://... 阅读全文
posted @ 2013-06-17 00:09 Ethan Cai 阅读(419) 评论(0) 推荐(0) 编辑
摘要: 最近公司招.NET开发,面试了很多人,都说自己做过ASP.NET Webform和MVC的开发,于是问:“ASP.NET和ASP.NET MVC的区别在哪?”没有一个人的回答令人满意。这里就再老生常谈,啰嗦几句。 ASP.NET WebForm ASP.NET Webform提供了一个类似于winform的事件响应GUI模型(event-driven GUI),隐藏了HTTP、HTML、Jav... 阅读全文
posted @ 2013-06-15 18:17 Ethan Cai 阅读(2525) 评论(2) 推荐(1) 编辑
摘要: 今天在CSDN上看到TIOBE公布的6月编程语言排行,突然想知道TIOBE如何计算编程语言的排行?。打开TIOBE对编程语言排行榜的介绍。大致了解如下:第1点:一个语言要想进入排行榜,必须符合两个条件:必须在Wikipedia上有单独的词条,并且明确的指明这是一门编程语言。必须是图灵完备的。目前TIOBE榜单上的语言有225个。第2点:语言的排名(Ratings)根据这门语言在8大网站上搜索出的结果数量的平均值,除以前50名语言搜索出的结果总数得到的。用CSDN上的话说,就是Ratings代表语言的热门程度。第3点:A类语言被认为是主流语言。如果一个语言的rating连续3个月高于0.7%,则 阅读全文
posted @ 2013-06-11 22:17 Ethan Cai 阅读(1815) 评论(0) 推荐(1) 编辑
摘要: Fusion log主要用于跟踪程序集的加载信息。比如,某个直接引用的第三方程序集A依赖另外一个程序集B,但是B没有引用。这种情况打开Fusion log查原因特别方便。 下面是在网上找到几个关于Fusion Log的介绍,讲的比较好的: 用Fusion Log诊断"Could not load file or assembly"问题 Debugging load problem... 阅读全文
posted @ 2013-06-11 19:30 Ethan Cai 阅读(1575) 评论(0) 推荐(1) 编辑
摘要: 看完下面两篇文章: 阅读.NET源代码的那些事 关于 Hash Collision DoS 问题(哈希碰撞) 回忆一下Hash表的概念、构造方法和查找效率。 概念 顺序查找、折半查找、二叉排序树查找和B-树查找,查找的效率依赖于查找过程中比较的次数。理想的情况是不经过任何比较,直接定位要找的元素。定位是根据给定的Key找到记录存储位置的映射。我们一般称这种映射关系为has... 阅读全文
posted @ 2013-06-02 01:09 Ethan Cai 阅读(484) 评论(0) 推荐(0) 编辑
摘要: JavaScript的clone函数的实现及应用条件 阅读全文
posted @ 2008-12-04 11:15 Ethan Cai 阅读(911) 评论(2) 推荐(0) 编辑
摘要: Windows Live MSN和Live Mail试用之后的感想 阅读全文
posted @ 2008-12-03 02:34 Ethan Cai 阅读(2927) 评论(30) 推荐(0) 编辑
摘要: Safari的刷新功能与Firefox,IE的差距 阅读全文
posted @ 2008-08-02 21:34 Ethan Cai 阅读(2079) 评论(14) 推荐(0) 编辑
摘要: 如何让ComboBox的下拉列表宽度自适应内容的宽度 阅读全文
posted @ 2008-07-06 21:30 Ethan Cai 阅读(5224) 评论(2) 推荐(0) 编辑
摘要: C#中对于float,double,decimal的误解 阅读全文
posted @ 2008-07-06 21:14 Ethan Cai 阅读(14253) 评论(3) 推荐(2) 编辑