代码改变世界

Google C++单元测试框架(Gtest)系列教程之一——入门

2011-10-02 19:22 by bangerlee, 63574 阅读, 2 推荐, 收藏, 编辑
摘要:引言 本文将先介绍单元测试的相关概念,然后引入Google的开源C++单元测试框架Gtest,最后通过编译、运行Gtest自带的一个测试样例,介绍如何在Unix/Linux下使用Gtest。 单元测试 说到单元测试,大家应该不会陌生。作为软件开发过程中最低级别的测试环节,单元测试一般由编码人员自己完 阅读全文

代码度量工具——SourceMonitor的学习和使用

2011-09-18 10:02 by bangerlee, 36599 阅读, 2 推荐, 收藏, 编辑
摘要:引言我们提倡编写功能单一、结构清晰、接口简单的函数,因为过于复杂的函数会给我们带来很多问题:加深其他开发人员理解代码的难度;不方便测试人员对其编写测试用例;容易隐藏错误;出现问题难以定位……怎样的函数算是复杂的函数?哪些代码散发着“臭味”?除了依靠经验丰富的程序员的敏锐嗅觉,我们还可以通过工具,对我... 阅读全文

我为什么写博客

2011-09-11 15:29 by bangerlee, 6710 阅读, 6 推荐, 收藏, 编辑
摘要:为什么写博客?如果你也是一名博主,阅读下文前不妨再思考下这个问题。下文翻译自Gabriel Weinberg的博文《Why I blog》,部分段落为了更通顺地表达,采用了意译的方式。 坚持写这个博客是我所做的最明智的决定之一,我曾经开过很多个博客,只有这个博客坚持了下来。去年,我为自己订立了一个目 阅读全文

代码静态分析工具——splint的学习与使用

2011-09-07 23:33 by bangerlee, 48791 阅读, 7 推荐, 收藏, 编辑
摘要:引言最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便。PC-Lint是一款针对C/C++语言、windows平台的静态分析工具,FlexeLint是针对其他平台的PC-Lint版本。由于PC-Lint/FlexeLint是商业的程序分析工具,不便于大家对其进行... 阅读全文

内存池的实现(二)

2011-09-01 21:24 by bangerlee, 20707 阅读, 8 推荐, 收藏, 编辑
摘要:《内存池的实现(一)》中,介绍了使用内存池的原因,设计内存池应该考虑的问题,最后给出一个简单的内存池实现例子。使用上一篇文章中介绍的内存池实现方案,要在一定的限定条件下,下面我们来看更通用的内存池实现——Apache服务器的内存池实现。Apache服务器的开发人员将代码中可移植的部分整理出来,编辑成... 阅读全文

内存池的实现(一)

2011-08-31 23:38 by bangerlee, 51391 阅读, 8 推荐, 收藏, 编辑
摘要:引言 C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有以下弊端: 内存池(memory pool)是代替直接调用malloc/free、 阅读全文

函数库学习入门指引

2011-08-31 21:58 by bangerlee, 4406 阅读, 2 推荐, 收藏, 编辑
摘要:在学习某一函数库的时候,我们经常做的第一件事, 就是把该函数库的源码下载回来进行编译和安装(一般是这三步:./configure -> make -> make install),然后写一些调用库函数的小用例,看其能否正常运行以及运行后的效果。完成库函数安装,当我们满心期待地使用GCC进行用例编译的... 阅读全文