摘要: 原文: http://coolshell.cn/articles/4045.html下面的文章和《各种流行的编程方式》有异曲同工,请你不要理解错了。本文来源,翻译如下:——————————————————一个非常严重和困难的bug,能够成就一个饱经沧桑深受压力的有经验的专业程序员的职业生涯。经受这种考验的创伤程度,相当你受到了一次严重的身体伤害,离婚,或是家庭成为的离世。研究人员在研究了计算机编程心理学后,得出了一个程序员们在解决一个困难的bug时的心路里程。这些不同的境界,很像为大众所知的Kübler-Ross Stages of Grief(这个模型描述了人对待哀伤与灾难过程中的 阅读全文
posted @ 2011-05-16 17:59 Scan. 阅读(203) 评论(0) 推荐(0) 编辑
摘要: 原文: http://coolshell.cn/articles/2058.html在过去的N年中,我遇到了很多使用囧然不同风格的开发者,下面是我所知道的一些,你还知道其它的吗?散弹枪编程这种编程风格是一种开发者使用非常随意的方式对待代码。“嗯,这个方法调用出错了……那么我会试着把传出的参数从 false 变成 true!”,当然依然出错,于是我们的程序员会这样:“好吧,那我就注释掉整个方法吧”,或是其它更为随意的处理方式,直到最后让这个调用成功。或是被旁边的某个程序员指出一个正确的方法。如果我们把一个正规的程序员和一个撞大运的程序员放在一起做结地,那么,那个正规的程序可以马上变得发疯起来,并 阅读全文
posted @ 2011-05-16 17:58 Scan. 阅读(224) 评论(0) 推荐(0) 编辑
摘要: 原文: http://www.cnblogs.com/liangshiwu/archive/2010/02/09/1666655.html首先,让我们快速的回顾一下,什么是反射以及反射可以被用来做什么。从第一部分内容中,你已经知道,反 射是在运行时发现对象的相关信息,并且执行这些对象(创建对象实例,执行对象上的方法)。这个功能是由.NET的System.Reflection命名空间的类所提供的。这些被用于类型发现和动态调用的类包括:Assembly,Module,ConstructorInfo,MethodInfo以及其它。简单的说,它们不仅允许你浏览一个程序集暴露的类、方法、属性和字段,而且 阅读全文
posted @ 2011-05-16 03:09 Scan. 阅读(288) 评论(0) 推荐(0) 编辑
摘要: 原文: http://www.cnblogs.com/Ninputer/archive/2009/08/28/expression_tree1.htmlExpression Tree上手指南 (一) 大家可能都知道Expression Tree是.NET 3.5引入的新增功能。不少朋友们已经听说过这一特性,但还没来得及了解。看看博客园里的老赵等诸多牛人,将Expression Tree玩得眼花缭乱,是否常常觉得有点落伍了呢?其实Expression Tree是一个一点就透的特性,只要对其基本概念有了一定的了解,就可以自己发挥出无数的用法。特别是之前对Reflection,泛型等知识有过一些了解 阅读全文
posted @ 2011-05-16 03:05 Scan. 阅读(1991) 评论(0) 推荐(1) 编辑
摘要: 参见文章http://www.cnblogs.com/cbscan/articles/2047269.html总结,在满足二进制兼容这个前提下导出基于对象的库接口:方式使用便捷性接口声明可读性性能C函数差好好C++纯虚函数好差好C++非虚函数,PIML实现好好差其实三种方案都是通过查表取得函数的,1、3查引入表,2查虚函数表,只是默认情况下,一个声明在接口函数集中间的新函数,不会改变旧引入表(这个行为是从那篇文章中推断出来的)却一定会改变虚表,所以方案1、3大可以将新函数随便放置不会破坏二进制兼容性。假如特殊的编译器指令可以排布虚函数在虚表中的位置,并且也有特殊指令来强制指定函数在引入表中的位 阅读全文
posted @ 2011-05-16 01:56 Scan. 阅读(2623) 评论(0) 推荐(1) 编辑
摘要: 原文: http://blog.csdn.net/Solstice/archive/2011/03/12/6244905.aspx陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 摘要:作为 C++ 动态库的作者,应当避免使用虚函数作为库的接口。这么做会给保持二进制兼容性带来很大麻烦,不得不增加很多不必要的 interfaces,最终重蹈 COM 的覆辙。本文主要讨论 Linux x86 平台,会继续举 Windows/COM 作为反面教材。本文是上一篇《C++ 工程实践(4):二进制兼容性》的延续,在写这篇文章的时候,我原本以外大家都对“以虚函数作 阅读全文
posted @ 2011-05-16 01:04 Scan. 阅读(2464) 评论(0) 推荐(0) 编辑