ShakeProof

2010年12月3日 #

「工具箱」Simple Test Model

摘要: 简单分享一个小型的测试模型。说是「简单分享」,其实是过于简陋,都不太好意思拿出手。尤其是对于熟悉某个单元测试框架(譬如 Python 的 pyUnit 框架)的同学,这个模型过于粗糙,而且目前来讲,只具备很初级的功能,不能和诸如 CMockery 这样的框架相提并论。尽管如此,今天看到张沈鹏同学写的《金山卫士开源》一文,意识到了一些我从前并没有意识到的问题,譬如社区文化等等,也看到了一些成熟的社区里,堪称楷模式的人物,譬如 Zoom.Quiet 等等。鉴于此,不管多么幼稚,粗糙,用心分享自己的体验就好了。毕竟,谁不是从幼稚的阶段,逐步成长起来的呢?言归正传。两个宏定义,assertTrue(e 阅读全文

posted @ 2010-12-03 23:35 mirrorwheel 阅读(195) 评论(0) 推荐(0) 编辑

「工具箱」Hash

摘要: 工具箱之哈希表。这个肯定会很常用了。这里主要说一下,对于哈希表的设计理念,以及具体的接口设计与实现。由于经验不丰富,这里肯定存在某些问题,因此,我只是站在现阶段自身的水平和需求上做考虑、实现,大家批判着看了。哈希表,核心在于生成、以及检索算法。这部分内容可以折腾得很复杂。哈希表又俗称「散列表」,即,将散列排布的对象,映射在有限的空间上,以达到存储空间和检索时间的折衷。很多前辈们也研究过,什么样的哈希算法,可以尽量好地完成上述「折衷」。我这里就不弄那么深入了,毕竟现阶段而言,我对性能的要求并不高。哈希生成的接口如下。之所以是 hash_str 的前缀,是因为哈希的键值都是字符串。各个参数,基本都 阅读全文

posted @ 2010-12-03 22:59 mirrorwheel 阅读(307) 评论(0) 推荐(0) 编辑

「工具箱」Bit Hacks

摘要: 昨晚看到的博客,Peteris Krumins 谈到了个人工具箱的重要性。比较有启发。既然目前的个人知识储备以及实践经验,还比较不成系统,那就一点点开始,慢慢来好了。第一篇,就以昨天看到的这篇 Bit Hacks 起始。原理部分不多做解释,如果熟悉二进制补码形式的数位表示方法,就可以轻松理解。如下是我写的头文件(省略了头部注释),与上述链接中的实现有些不同,下文将会详细阐述。我这里的实现方式,同原文作者的实现方式不太一样。主要是两点。所有宏都没有「副作用」。原文作者的某些宏定义,对宏参数本身做了修改;而这里的每一个宏,只是一个纯粹的求值表达式,没有赋值过程。对于 B_ISOLATE_1(x) 阅读全文

posted @ 2010-12-03 13:19 mirrorwheel 阅读(321) 评论(1) 推荐(0) 编辑

导航