摘要: Dynamic Binding动态绑定Binding:解析Type,member,operation的过程.动态绑定将Binding从编译时延迟到运行时进行.场景编译时,程序员知道特定的function,member,operation的存在,而Compiler不知道.1 dynamic d = G... 阅读全文
posted @ 2014-07-24 12:25 robynhan 阅读(412) 评论(0) 推荐(0) 编辑
摘要: 在一个应用程序中使用多线程好处是每一个线程异步地执行.对于Winform程序,可以在后台执行耗时操作的同时,保持前台UI正常地响应用户操作.对于Service.对于客户端的每一个请求,可以使用一个单独的线程来进行处理.而不是等到前一个用户的请求被完全处理完毕后,才能接着处理下一个用户的请求.同时,异... 阅读全文
posted @ 2014-07-02 15:25 robynhan 阅读(760) 评论(0) 推荐(0) 编辑
摘要: 通常,使用有名互斥体(named mutex).但是该方案有以下的缺陷互斥体的名称有被其他应用程序使用的较小,潜在风险.此时,该方案不再有效,并且很难检测到bug.该方案无法实现允许一个应用程序产生N个实例这样的一般问题.使用Process类. 1 /// 2 //... 阅读全文
posted @ 2014-06-27 18:06 robynhan 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 为什么需要依赖注入?ServiceUser是组件,在编写者之外的环境内被使用,且使用者不能改变其源代码.ServiceProvider是服务,其类似于ServiceUser,都要被其他应用使用,不同是ServiceProvider会被用于非本地环境,需要对应不同环境.普通的ServiceUser来负... 阅读全文
posted @ 2014-06-24 14:02 robynhan 阅读(2009) 评论(0) 推荐(0) 编辑
摘要: 本文是翻译MVP: Model-View-Presenter The Taligent Programming Model for C++ and Java(Mike Potel)文章的摘要.该文介绍了从MVC到MVP的思想演化过程.SmallTalk编程模型在该项目中,使用了MVC来实现GUI(... 阅读全文
posted @ 2014-06-23 18:11 robynhan 阅读(335) 评论(1) 推荐(0) 编辑
摘要: AV(Autonomous View)自治视图在面向终端用户的应用中,都需要一个可视化的UI来与用户交互.这个UI称为View视图.在早期,我们习惯将所有前台的逻辑,与视图揉在一起,称为AV自治视图.这些逻辑包括:数据呈现(Display),用户动作的扑捉与响应,数据存储等.在.Net的Winfor... 阅读全文
posted @ 2014-06-20 12:15 robynhan 阅读(817) 评论(4) 推荐(1) 编辑
摘要: 参数适配使用场景:当无法对一个参数的类型使用接口提取,或者该参数难以被"伪装"时.例如,该参数的类型是一个含有很多方法的接口类型.在进行单元测试时必须编写一个实现该接口的实现类.可以使用Mock.问题:从维护的角度来看,传递了一个宽接口,而其实方法内部只使用了该接口的部分契约.所以,应该尽量使用窄接... 阅读全文
posted @ 2014-06-19 10:25 robynhan 阅读(505) 评论(0) 推荐(0) 编辑
摘要: 单元测试面临的困难职责不明确类或者方法的职责不明确,违反了SRP原则.类/方法如果处理了本不该它处理的逻辑,会造成单元测试需要关心过多的外部关联类.静态方法静态方法使得调用者直接面对实际的服务类,难以通过其它方式替代其实现,也难以扩展.直接访问对象实例调用者直接实例化服务对象,从而使用服务对象提供的... 阅读全文
posted @ 2014-06-18 11:15 robynhan 阅读(303) 评论(0) 推荐(0) 编辑
摘要: 为什么需要Mock.真实对象具有不确定的行为.所以会产生不可预测的结果.真实对象很难被创建.真实对象的某些行为很难被触发(如网络错误).真实对象令程序的运行速度很慢.真实对象有(或者是)用户界面.测试需要询问真实对象它是如何被调用的.真实对象实际上并不存在.例如其它小组开发的模块.使用Mock的3个... 阅读全文
posted @ 2014-06-18 10:58 robynhan 阅读(714) 评论(0) 推荐(0) 编辑
摘要: Right-BICEPRight首先,我们需要知道什么是正确的.这是最基本的.Boundary边界是否所有的边界条件都正确?CorrectConformance一致性结果值是否和期望值一致.Ordering顺序性值是否跟期望一样,是有序/无序的.Range区间性值是否位于合理的最大值和最小值之间.R... 阅读全文
posted @ 2014-06-17 10:37 robynhan 阅读(1234) 评论(0) 推荐(0) 编辑