自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(31)
  • 资源 (4)
  • 收藏
  • 关注

原创 随笔-程序感悟

进行程序设计时,考虑功能的实现是最基本的,还要考虑可拓展性,可维护性,可测试性

2014-06-28 23:45:31 925

原创 C++单元测试--打桩测试

一 问题的产生 当构造测试用例的数据,是在函数内部被另一个外部函数所使用时,我们需要忽略外部函数所带来的影响。 需要进行“打桩”,举一个具体的例子 class DataGetter {public:...bool Run();...private:...Client* m_ptr_client;...};..........b

2014-06-06 20:47:05 16956

原创 随手记-基础的vim命令

基础的 :e filename 打开文件 :w  保存文件 :q 退出 :x  写文件并退出(等价于wq) :saveas filename 另存为filename . 重复上一次操作 .5 重复5次上一次操作  移动光标 k 向上移动光标 j 向下移动光标 h 向左移动光标 l 向右移动光标 e 移动到行尾

2014-06-03 00:39:16 1017

原创 Lighttpd 常用配置文件说明

配置文件:lighttpd.conf server.modules = ()    # 服务器加载的模块 server.port = 80   #注意,服务器的端口一定要是8开头的,这个问题被坑了很久 server.bind = “127.0.0.1”  #服务器绑定地址 server.username = “username”  #web服务器进程的运行账号 server.groupn

2014-05-30 20:11:35 1514

原创 C++单元测试--驱动测试

先总结下为什么要进行单元测试:1 错误尽早发现,这是显而易见的。2 方便调试跟踪错误。如果项目出现问题,只需要拿单元测试来跑case,就可以方便的定位和发现问题。进行单元测试的原则:1 被测试的函数要功能单一2 测试要覆盖所有的条件分支,简单可归纳为:正常,极大,极小这三个方面。还有个,算是个人习惯吧,我喜欢 一个被测试类用一个测试类放在单独的cpp文件中

2014-04-13 20:11:59 1787

原创 设计模式五-适配器模式

一 意图将一个不兼容的接口转换为一个兼容的接口。二 别名adapter,wrapper三 适用性1 使用一个已经存在的类,但它的接口不符合要求。2 你想创建一个可以复用的类,改类可以与其他不相关的类或不可预见的类协同合作。3 你想使用一些已经存在的子类,但是不可能对每一个都进行子类化以匹配它们的接口。对象适配器可以适配它的父类接口。三 接口可以有两种接口实现

2012-11-14 16:19:28 733

原创 设计模式之四-观察者模式

一 意图它定义了一种一对多的依赖关系,当目标的状态发生改变时,所有的观察者都会得到通知而自动更新,不用实时的监控目标。二 别名observer,依赖(depends),发布-订阅(Publish-Subsciribe)三 适用性1 当一个抽象模型有两个方面,其中一个方面依赖于另一个方面。将这二者封装在独立的对象中,以使得它们可以各自相互独立的改变和复用。2 当对一个对象的改

2012-11-13 13:29:27 1064

原创 找工作经历总结--百度offer

运气好,一方面是百度今年招人比较多,另一方面是遇到的3个面试官都很和善,和我很投缘。           说下准备吧。   1 针对对C++的,C++ Primer和effective c++是必须要相当的熟练,有充足的时间的话再看下more effective C++。如果对C++的多态能够熟练运用,能解释字节对齐,C++的面试基本就没问题了。    2 算法和数据结构。如果你是AC

2012-10-21 13:40:36 6460 17

原创 用内存映射文件实现应用程序只运行一个实例

原理:         如果一个应用程序的实例已经运行,那么当再运行一个实例时,系统只会为这个实例创建一个新的内存映射视图,这个内存映射视图会被映射到第一个实例所映射的虚拟内存中,这样就可以在多个实例之间共享内存中的代码和数据,可以通过数据来控制运行实例的个数即可。当然,要实现多个实例的数据共享,不是简单的使用全局变量就行了,应用程序的文件映像会被分到不同的段中:    READ:可读数据

2012-10-19 21:31:46 1648

转载 游戏服务器架构探讨

有段时间没有研究技术了,这次正好看到了新版的mangos,较之以前我看的版本有了比较大的完善,于是再次浏览了下他的代码,也借此机会整理下我在游戏服务器开发方面的一些心得,与大家探讨。  另外由于为避免与公司引起一些不必要的纠纷,我所描述的全都是通过google能够找到的资料,所以也可以认为我下面的内容都是网上所找资料的整理合集。在平时的开发中我也搜索过相关的中文网页,很少有讲游戏服务器相关技术

2012-10-08 13:12:45 1887

原创 3 种方法实现参数的"动态"变化

方法一: 比较常规的,利用template模板,在编译期替换参数 方法二: 利用指针,将函数的参数设置为 void* ,具体调用时,再做指针的强制类型转换比如 void  fn(void* pVoid){    int i =*(int *)pVoid; //先把它转换为想要的类型,再取它的内容;  .................................

2012-10-06 22:07:15 1587

原创 Windows socket 编程汇总

一常用数据结构1 SOCKETtypedef u_int           SOCKET其实就是一个无符号的整数,是一个socket描述符,我的理解就是 ,指向系统内核的”指针”,但这个”指针”要靠系统维护,我们只能获取,还要负责释放. 2 SOCKADDR_INstruct sockaddr_in{ short sin_family; unsigned short si

2012-10-03 20:44:19 11696 1

原创 一道创新工场的笔试编程

原题如下:   这个单词的反转,利用栈就可以轻松搞定了代码如下:/************************************************************************//* 编程实现字符串的反转,假设所有的单词均用空格分开,且标点符号当作字符处理。 *//*********************************

2012-10-01 11:27:11 1524

原创 设计模式之三--抽象工厂模式

1 英文名和别名:abstract factory,kit2 意图:当有多种产品位于不同的产品族,需要创建相互依赖的的对象,无需知道其具体的类。谈谈我对产品等级和产品族的理解,产品等级指的是具有继承关系的父子或兄弟,而产品等级指的是不同产品等级直接需要相互组合的这样一个关系3 示例   考虑这样一个问题,在一个需要考虑跨平台的软件上,需要根据不同的平台创建不同的text和b

2012-09-29 21:22:26 1156

原创 不排序,两种方法找到无序数组的最大K个数

虽然不排序,这这两种方法都源于经典的排序算法的扩展  方式一,快速排序的扩展/************************************************************************//*找到无序数组中最大的k个数 *//**********************************************************

2012-09-27 14:25:10 7009

原创 设计模式二--工厂方法模式

工厂方法是在简单工厂模式的基础上改进的,它拥有简单工厂的功能。简单工厂模式违背 了“开放-封闭”原则,但他也有一个缺点,每需要创建一个新的产品时,系统需要添加两个类。还是沿用上一个计算器的例子:   简单工厂  用visio画了一个丑丑的工厂模式的类图:      示例代码operator#ifndef __OPRATOR_H#define __OPRATO

2012-09-25 17:21:00 1095

原创 C++引用计数实现垃圾回收机制

原理:用一个数去统计指向堆中的无名对象指针的个数,由最后一个指针去释放其空间。为了保持同步,应该使这个数也只有一份。简单实现如下//SmartPtr.h#pragma once#include using namespace std;template class CSmartPtr{public: CSmartPtr():m_ptr(NULL),m_count(NULL)

2012-08-27 12:58:44 2765

原创 webkit学习笔记1---webcore简单执行流程

webcore执行的大致流程如下:1 通过URL构造请求1 WebMutableURLRequest::initWithURL(  BSTR url,      WebURLRequestCachePolicy cachePolicy,double timeoutInterval);url:URL地址cachePolicy:这实际是个枚举类型typedef enum

2012-08-26 16:27:00 2265

原创 词法分析

这是大三上写的程序了,今天突然看到了,只贴出它的逻辑判断部分,有兴趣要全部源代码的可以给邮箱给我LexicalAnalyzerLogic.h:#pragma once#include "stdafx.h"#include #include #include using namespace std;typedef enum{ UNDEFINE=0, KEY_WORD

2012-08-24 12:22:52 1171

原创 编译原理

第一章1  编译原理的工作过程(结合p6 图 1.3)编译程序的主要功能是将源程序翻译成等价的目标程序,这个翻译过程(也称编译过程)十分复杂,所以它一般首先分析源程序,然后综合成目标程序。编译程序在分析阶段检查源程序的正确性后,再将其分解为若干基本成分。这其中的工作也包括建立一些表格,改造源程序为中间语言程序。2 编译方式和解释方式的比较(结合p2图 1.1和p3图1.2)编译方式

2012-08-24 08:56:18 2998 1

原创 字节对齐

在c++中字节对齐主要存在符合类型中:union,struct和class中先介绍四个概念:1)数据类型自身的对齐值:基本数据类型的自身对齐值,等于sizeof(基本数据类型)。2)指定对齐值:#pragma pack (value)时的指定对齐值value。3)结构体或者类的自身对齐值:其成员中自身对齐值最大的那个值。4)数据成员、结构体和类的有效对齐值:自身对齐值和指定对齐

2012-08-21 13:07:53 4230

原创 设计模式之---简单工厂模式

简单工厂模式:到底要实例化哪个对象,将来会不会增加实例化对象,这时可以考虑用一个单独的类来创造实例的过程,这就是工厂。以一个2元操作运算来说明:operator类:#pragma oncetemplate class COperator{public: COperator(void){}; virtual ~COperator(void){}; virtual T

2012-08-18 16:07:36 1342

原创 android学习总结(五)---简单浏览器demo的实现

一实现的过程功能需求的定义结合WebView的API,初步确定这个简单浏览器的功能如下:1 输入网址,显示跳转页面2 页面的前进和回退3 页面刷新4 停止加载页面5 历史记录的显示和清除6 书签的添加和显示7 保存图片8 设置背景颜色9 在页面内查找串10 清除缓存后来结合实际情况,最后确定浏览器所具有的功能如下:1 输入网址,显示跳转页面

2012-08-03 16:26:09 5981

原创 android学习笔记(四)

button的事件处理Button的事件处理主要是实现一个事件监听者OnClickerListener的类,这个类可以使内、外部类,匿名类等,如果只有一个button,方便一点的是使用匿名类,如果有多个button,很多代码可以重用,可以使用内部类或者本类自身去实现OnClickerListener类。代码片段如下:方式一:Public class Test extends Act

2012-07-27 20:28:03 1291

原创 android学习笔记(三)

三 调试技术1 添加断点双击代码所在行的左侧的侧边栏,可以再断点出设置其属性,比如运行的次数。2 移出断点双击代码所在行的左侧的侧边栏或者切换到Debug视图,在BreakPoints里勾选要移出的断点3 观察变量切换到Debug视图,在Variables和Expression里可以观察要观察的变量的值,也可将鼠标移至变量出来观察变量的值。4

2012-07-27 20:04:54 1068

原创 android学习笔记(二)

二 activity的生命周期Activity的生命周期的如下图: 为了很好的理解activity的生命周期,可以做一个测试程序去验证,这个程序包含两个activity,一个First,一个Second,在OnCreate、OnStart等方法里添加断点,再利用Log类打印调试跟踪的信息。点击First的一个按钮,将跳转到Second里,点击返回键,将回到First里,再点击返

2012-07-27 19:57:40 1082

原创 android学习笔记(一)

android 程序框架用资源管理器打开一个android的工程,它都包含了asset、bin、gen、src、res、还有androidMainifest.xml这几个主要的文件。1 asset文件夹这个文件夹一般是存放比较大的资源文件,其下的文件不会被编译,通过路径可以去访问其中的内容。而res/raw也是用来存资源文件,但一般是存放比较小的资源文件,其下的文件会被编译,可以通过R

2012-07-27 19:52:10 902

原创 医保项目总结

大三了,这算是第一次这样一个大型的项目,5个人,两个指导老师,在这次项目中,我担任的项目组长,深刻体会到了组长的责任和领导的作用。说实话,我这个组长当的不是很称职,导致后续出现了一系列的问题。我以后会注意加强这方面的能力。   项目总结如下:1 责任制。该谁负责的代码,谁改动,谁提交。2 要主动。问题和任务要自己找。3 组长就要树立组长的形象,树立威信,做的事一定是最累最苦的。

2012-07-07 10:52:59 1461

原创 webkit(1)

从来没离开过windows平台的桌面开发,现在要转战无线浏览器的内核开发,压力颇大。从今天开始,研究无线浏览器的内核开发,以后可能要靠它吃饭。    以下的大部分来自网络,谢谢那些无名人士一 浏览器内核浏览器最重要或者说核心的部分是“Rendering Engine”,可大概译为“解释引擎”,不过我们一般习惯将之称为“浏览器内核”。负责对网页语法的解释(如HTML、JavaScript

2012-06-25 22:32:01 925

原创 2012 我的腾讯暑假实习笔试面试经历

进入腾讯工作,是我大学的第一个目标,现在也算是实现了一半了,废话少说,说说我的经历吧。    3月12号网申。那天我投的是游戏开发,但有个朋友提醒我,那个要求看上去想是招研究生的,我仔细看了游戏开发的职位要求,对本科生来说,要求确实有点高了,但游戏开发才是我真正的兴趣。后来和几个朋友商量了下,还是决定先报要求没这么高的客户端开发,投了求职信后,就开始在网上到处找腾讯笔试题,大家注意,不要只找实

2012-04-28 19:13:34 7211 3

原创 常用STL容器及算法举例

一 常用容器举例 1 vector:       vector类似于动态数组,直接访问元素,从后面快速插入或者删除,示例代码如下:#include #include //包含vectorusing namespace std;//指定命名空间int main(){ cout<<"----------vector test-----------"<<endl; //定义

2012-04-06 16:55:26 5435

编译原理复习资料整理

自己以前整理的编译原理资料,比较适合考试

2012-09-27

用webview实现的android简单浏览器

实现了添加书签等的功能,具体参见我的博客: http://blog.youkuaiyun.com/shouhuqi/article/details/7827748

2012-08-10

基于c++ directx实现的坦克大战

除了c++,其他都是自学的,写的不是很好,相互学习下

2011-08-31

你必须知道的495个C语言问题

对c语言有兴趣的来看下,我找了好久才辛苦找到的

2010-09-21

空空如也

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

TA关注的人

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