自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术是程序员的核心竞争力

  • 博客(16)
  • 资源 (7)
  • 收藏
  • 关注

原创 Linux故障处理最佳实践

引言 业务中断了! 老板咆哮,主管抓狂,而你就是那个要去处理故障、恢复业务的不幸的人。 你独自一人在阴暗的隔间里。 北边是老板的办公室,西边是Team Leader的办公室,南面是茶水间,在那你能泡上一杯热咖啡。 问题没有一点进展,你郁闷地盯着显示器。 这时,电话再次响起,你不用接听也已知道又是一通抱怨用户连接不上服务器的电话, 因为就在半小时内,已经有四通电话催问你进展了。

2012-03-11 17:44:35 734

原创 自助Linux之问题诊断工具strace

引言 “Oops,系统挂死了..." “Oops,程序崩溃了..." “Oops,命令执行报错..."   对于维护人员来说,这样的悲剧每天都在上演。理想情况下,系统或应用程序的错误日志提供了足够全面的信息,通过查看相关日志,维护人员就能很快地定位出问题发生的原因。但现实情况,许多错误日志打印模凌两可,更多地描述了出错时的现象(比如"could not open fi

2012-03-11 17:41:14 588

原创 回顾2011——一个程序员工作半年后的自白

2011年就要过去了,这一年,我从学校毕业,走上工作岗位,成为了一名程序员。在w公司工作的半年时间里,参与过项目开发,经历了岗位调动(由开发转为维护)。经过这段时间的工作,逐渐地对w公司开发人员和维护人员的工作和生活状况有了认识,相比刚走出校园的自己,心态也发生了一些变化。在此记录下2011年我工作后经历的点滴,与大家分享。   开发:狂奔的蜗牛 进入w公司后,第一个参与

2012-01-10 23:18:03 954

原创 No!No!No! It's not fashion!

还记得搞怪的hold住姐Miss Lin么,对于人们常规的行为,Miss Lin会挑起夸张的眉毛说:"Oh my God, it's not fashion!"。如果程序员圈子里有位Miss Lin,对于一些功能的实现,她会认为哪些编码实现方法是not fashion的,哪些是fashion的呢? 下面示例中,循规蹈矩先生编码但求功能实现,喜好使用常规方法,hold住姐实现功能的同时,不忘fas

2011-11-10 22:55:56 733

原创 Google C++单元测试框架(Gtest)系列教程之六——FAQ节选

这一节,我们来看Gtest的FAQ(Frequently-Asked Questions)。 为什么测试用例和测试实例命名中不应包含下划线 在C++中,对于以下情况,相应的标识可能会被编译器或标准库使用: 以下划线开始并紧接一个大写字母的标识包含连续两个下划线的标识 为避免标识符冲突,用户代码中不应自定义以上两种情况的标识。使用TEST()或TEST_F()时,滥用下划线,将有可能

2011-11-10 22:51:59 548

原创 Google C++单元测试框架(Gtest)系列教程之五——再论测试固件

引言 在《Google C++单元测试框架(Gtest)系列教程之三——测试固件(Test fixture)》中,介绍了如何使用测试固件为测试实例(Tests)进行数据配置和初始化。除了数据初始化方法,Gtest还提供了测试实例间共享数据的方法。 同属一个测试用例的测试实例间共享数据 为实现测试实例间的独立性,Gtest提供了为每个测试实例新生成一个测试固件对象的方法,通过“独享”测

2011-11-10 22:50:30 680

原创 Google C++单元测试框架(Gtest)系列教程之四——参数化

引言 在上一篇文章中,我们学习了如何使用Gtest的测试固件(Test fixture)完成测试代码和测试数据的复用,这一节我们来学习如何使用Gtest值参数化的方法,简化函数测试;使用类型参数化的方法,简化对模板类的测试。 值参数化 假设我们要对以下函数进行测试:

2011-10-08 23:44:01 841

原创 Google C++单元测试框架(Gtest)系列教程之三——测试固件(Test fixture)

引言 在《Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试》中,我们了解了断言语句,以及如何运用TEST()进行函数测试,在TEST()的使用中,我们接触了一个测试用例包含多个测试实例的组织方式。多个测试实例可能需要进行相识的数据配置和初始化操作,为

2011-10-08 23:41:23 690

原创 Google C++单元测试框架(Gtest)系列教程之二——断言、函数测试

引言 在《Google C++单元测试框架(Gtest)系列教程之一——入门》中,介绍了如何编译测试代码、生成可执行文件,下面我们来看Gtest提供了哪些语句和框架来方便我们编写单元测试代码。 断言 1.断言类型 断言即判断一个条件是否为真的语句,它是构成Gtes

2011-10-08 23:38:54 928

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

引言 本文将先介绍单元测试的相关概念,然后引入Google的开源C++单元测试框架Gtest,最后通过编译、运行Gtest自带的一个测试样例,介绍如何在Unix/Linux下使用Gtest。 单元测试 说到单元测试,大家应该不会陌生。作为软件开发过程中最低级别的测试

2011-10-02 19:25:34 1396

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

引言 我们提倡编写功能单一、结构清晰、接口简单的函数,因为过于复杂的函数会给我们带来很多问题:加深其他开发人员理解代码的难度;不方便测试人员对其编写测试用例;容易隐藏错误;出现问题难以定位……怎样的函数算是复杂的函数?哪些代码散发着“臭味”?除了依靠经验丰富的程序员的敏锐嗅觉,

2011-09-18 10:08:11 2558

原创 我为什么写博客

为什么写博客?如果你也是一名博主,阅读下文前不妨再思考下这个问题。下文翻译自Gabriel Weinberg的博文《Why I blog》,部分段落为了更通顺地表达,采用了意译的方式。 ----------------------------------------------

2011-09-11 17:46:48 741

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

引言 最近在项目中使用了静态程序分析工具PC-Lint,体会到它在项目实施中带给开发人员的方便。PC-Lint是一款针对C/C++语言、windows平台的静态分析工具,FlexeLint是针对其他平台的PC-Lint版本。由于PC-Lint/FlexeLint是商业的程序分析工具,不便于大家对其进行学习和使用,因而下面我将介绍一个针对C语言的开源程序静态分析工具——splint。 静态程序分

2011-09-08 20:10:02 1058

原创 内存池的实现(2)

<!-- h2 {margin-bottom:0.08in} h2.cjk {font-family:"Droid Sans Fallback"} h2.ctl {font-family:"Lohit Hindi"} h3 {margin-bottom:0

2011-08-25 23:47:46 721 1

原创 内存池的实现(1)

引言 C/C++下内存管理是让几乎每一个程序员头疼的问题,分配足够的内存、追踪内存的分配、在不需要的时候释放内存——这个任务相当复杂。而直接使用系统调用malloc/free、new/delete进行内存分配和释放,有以下弊端: 1.调用malloc/new,系统需要根据“最

2011-08-21 03:33:39 549

原创 函数库学习入门指引

在学习某一函数库的时候,我们经常做的第一件事,就是把该函数库的源码下载回来进行编译和安装(一般是这三步:./configure -> make -> make install),然后写一些调用库函数的小用例,看其能否正常运行以及运行后的效果。完成库函数安装,当我们满心期待地使用G

2011-08-09 23:29:07 519

(新)内存池实现方案一

一个简单的内存池实现,http://www.cnblogs.com/bangerlee/archive/2011/08/31/2161421.html#2257387

2011-12-01

Apache内存池内幕

Apache内存池内幕,通过代码导读的形式进行apr内存池的学习

2011-08-25

APR_TUTORIAL

APR_TUTORIAL apr函数api使用指引

2011-08-15

apr(Apache Portable Runtime)

the Apache Portable Runtime (APR) project is to create and maintain software libraries that provide a predictable and consistent interface to underlying platform-specific implementations. The primary goal is to provide an API to which software developers may code and be assured of predictable if not identical behaviour regardless of the platform on which their software is built, relieving them of the need to code special-case conditions to work around or take advantage of platform-specific deficiencies or features.

2011-08-14

数据库管理系统原理与设计-课后全部答案(英文)

数据库教材 全部答案 英文版 pdf 电子书

2009-12-12

Socket 服务端与客户端 C#实现

Socket 服务端与客户端 C# 文件传输 可支持任何类型文件传输 传输上限为1024*5000 可在代码里修改上限

2009-12-08

java 学生信息管理系统

单机版 java程序 用到sql2008数据库

2009-12-01

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除