04 2011 档案

怎么减少错误的发生
摘要:错误,我们暂且仅对软件开发而言。错误的类别,暂且仅考虑接口错误和实现错误。接口错误一般可以分为误解和失配误解比如在一段公路入口有巨大的标识牌,上面写着:前方道路,靠左行,红灯行,绿灯停。这个大家可能觉得很荒谬,然而类似的事情在软件开发里面却层出不穷,生产方认为自己已经在文档中清楚地说明了用法和用途,然而他却没有意识到这与使用方的常识和惯例背道而驰。举个简单的例子,C 标准库里面的两个函数:#include size_t fwrite(const void * ptr, size_t size, size_t count, FILE * stream);#include void qsort(v 阅读全文

posted @ 2011-04-03 22:31 能发波 阅读(249) 评论(0) 推荐(0)

C++ 如何动态库实现接口兼容
摘要:看了一篇文章:避免使用虚函数作为库的接口其中提到C++虚表的僵硬,导致版本更新时二进制兼容性的问题。其实这个问题不是C++的问题,而是C++实现的问题。如果接口的二进制兼容性是一个强制需求,在不影响运行效率的情况下,C++是完全可以实现的,不过需要多一点的空间开销和初始化开销。具体的方法可以参考 PE 文件中的 Import Table 和 Export Table。简单地讲,就是 App 和 DLL 各自维护一个 name->func_address 的映射数组,当然,这个 name 应该是名字碾碎后的 name 。 加载 DLL 时,将 DLL 中 Export Table 中相应项 阅读全文

posted @ 2011-04-03 21:40 能发波 阅读(1214) 评论(0) 推荐(0)

靠谱的程序员太少了
摘要:最近几个月,面试了不少的程序员,更好听的名字叫做软件工程师,甚至高级软件工程师。我一般会针对面试者的特长,问一些相关的问题。有说擅长算法的,图像处理的,图形学的,数学的,C++的,Java,Perl 的,Shell 的,Linux内核的……到目前为止,面试的人不算太多,但少说也过100了,基本上,语言方面和其它特长兼有的,一个也还没碰到过。靠谱的C++程序员,所谓的靠谱,其实也就是:了解 STL 的常用组件,能正确使用 STL知道 type_traits ,以及如何使用 type_traits对虚函数、重载、虚表有一定了解能正确认识C++的异常了解 Pure C 和 C++ 的 C 子集中比较 阅读全文

posted @ 2011-04-02 21:22 能发波 阅读(143) 评论(0) 推荐(0)

导航