自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

小飞侠

Stay Hungry, Stay Foolish

  • 博客(90)
  • 资源 (4)
  • 问答 (1)
  • 收藏
  • 关注

原创 想成为一个游戏程序员要有以下资料

下面文章转自,自学编程网http://www.zxbc.cn/一、书籍:算法与数据结构:《数据结构(C语言版)》——严蔚敏、吴伟民清华出版社我觉得其配套习题集甚至比原书更有价值,每个较难的题都值得做一下。 《Introduction to Algorithms》第二版中文名《算法导论》关于算法的标准学习教材与工程参考手册,在去年CSDN网站上

2014-11-15 12:31:13 1811

原创 VS2008下安装和使用BOOST库boost-1_54

下载boost库(最好去官网下,一般有SGI(GCC+用的较多)和BOOST之分,VS下用BOOST)下载boost_1_54_0压缩文件,解压缩到d:\boost_1_54_0\(可以任何位置,你觉得合适就可以)目录下1.编译bjam从开始->程序->Microsoft Visual Studio 2008->Visual Studio Tools->Visual Studi

2014-11-05 18:00:04 707

原创 redis设计思想

分类: NOSQL不同于nginx的精雕细琢,redis代码的风格趋向于简洁实用。简洁启事,下面所述不再列举任何源码,不拼凑任何外来资料。去除末枝,下面直入redis主题,尽可能简洁地描述redis的设计思想。 整体模型:单进程单线程事件驱动模式。Redis在主处理流程中,采用了单进程接受各种client请求并返回结果,整体处理流程采用事件驱动的方式

2014-10-30 17:56:46 587

原创 Redis源码解析(1)——源码目录介绍

概念      redis是一个key-value存储系统。和Memcached类似,它支持存储的value类型相对更多,包括string(字符串)、list(链表)、set(集合)和zset(有序集合)。这些数据类型都支持push/pop、add/remove及取交集并集和差集及更丰富的操作,而且这些操作都是原子性的。在此基础上,redis支持各种不同方式的排序。与memcached一样

2014-10-30 17:51:19 550

原创 在多台服务器上简单实现Redis的数据主从复制

Redis的主从复制功能非常强大,一个master可以拥有多个slave,而一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构。下面我演示下怎样在多台服务器上进行Redis数据主从复制。这里我假设有两台服务器,一台是Windows操作系统(局域网IP:192.168.3.82),一台是Linux操作系统(局域网IP:192.168.3.90),在两个操作系统都安装re

2014-10-30 17:49:47 1476

原创 UDP下的网络穿越代码实现

论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码)。呵呵,在这里我就用自己实现的一个源代码来说明UDP穿越NAT的原理。首先先介绍一些基本概念:    NAT(Network Address Translators),网络地址转换:网络地址转换是在IP地址日益缺乏的情况下产生的,它的主要目的就是为了能够地址重用。NAT分为两大类,基本的NAT和NAPT(Ne

2014-03-22 10:07:56 955 1

原创 TCP协议实现网络穿越

这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人叫TCP打孔(我的朋友小妞听说后问“要打孔啊,要不要我帮你去借个电钻过来啊?”“~!・¥%……・!”)。闲话少说,我们先看一下技术背景:Internet的迅速发展以及IPv4 地址数量的限制使得网络地址翻译(NAT,Network Address Trans2lation)设备得到广泛应用。NAT设

2014-03-21 23:24:13 676

原创 网关服务器

网关服务器分类: 游戏服务器 2012-03-13 21:19 2642人阅读 评论(5)收藏 举报服务器游戏负载均衡数据库服务器平台聊天        之前想着要把什么什么给写一下,每次都太懒了,都是想起了才来写一下。今天只讨论游戏服务器的网关服务器。       1.转发       转发客户端和服务器间的消息,网关将场景、会话、数据、名字、平台

2014-03-03 10:34:56 783

原创 编写可读代码的艺术 读后感(三)

第三部分我们将在函数级别对代码做一些改动以改善代码的可读性。第10章 抽取不相关的子问题      本章的建议是“积极地发现并抽取出不相关的子问题”。1、提炼纯工具代码并放置到项目中一个公共的地方(例如util)。2、创建大量通用的代码。“自顶向下”与“自底向上”相结合。3、简化(包装)已有的接口,使其表现得更整洁易用。第11章 一次只做一件事      本章的关键思想

2014-02-10 16:17:38 619

原创 编写可读代码的艺术 读后感(二)

第一部分介绍了“表面层次的改进”,一次一行,在没有很大风险也不需要花很大代价的情况下改进代码的可读性。接下来,第二部分将讨论“简化循环和逻辑”这个主题,相对第一部分,第二部分的技巧方法通常都需要对代码做些许改动。但这些改动仍然是一些简单的调整(或说重构),不会带来太大的风险和代价。第7章 把控制流变得易读1、条件语句中参数的顺序明显的,[cpp] view plainc

2014-02-10 16:16:06 687

原创 编写可读代码的艺术 读后感(一)

The Art of Readable Code      作为程序员,日常工作的大部分时间都是花在一些“基本”的事情上,像是给变量、函数或类命名,写循环以及在函数级别解决问题。并且这其中很大的一部分就是阅读和编辑(修改)已有的代码。因此,代码是否易于理解就显得尤为重要。《编写可读代码的艺术》(The Art of Readable Code)这本书从命名,排版,注释,循环以及如何拆分长表达式

2014-02-10 16:15:08 1144

原创 C++编程规范 读书笔记(下)

《C++编程规范——101条规则、准则与最佳实践》(C++ Coding Standards——101 Rules, Guidelines and Best Practices)名字空间与模块第57条(D):将类型及其非成员函数接口置于同一名字空间中第58条(D):应该将类型和函数分别置于不同的名字空间中,除非有意想让他们一起工作       ADL(参数依赖查找,也成Koeing

2014-02-10 16:08:24 562

原创 C++编码规范 读书笔记 中

《C++编程规范》读书笔记(中) 《C++编程规范——101条规则、准则与最佳实践》(C++ Coding Standards——101 Rules, Guidelines and Best Practices)类的设计与继承第32条(C):弄清所要编写的是哪种类第33条(C):用小类代替巨类    分而治之。用类表示概念。第34条(B):用组合代替继承  

2014-02-10 15:57:55 576

原创 C++编码规范 读书笔记(上)

《C++编程规范》读书笔记(上)分类: 读书笔记 C/C++ 2013-08-03 18:05 134人阅读 评论(0)收藏 举报C++编程规范      项目组一直没有做代码审查,最近有启动这项计划的打算,因此提前复习一下《C++编程规范》,并做一些笔记。我们做任何事通常都先从简单的入手,循序渐进,持续改进,那么做代码审查也不例外,《C++编程规范》又

2014-02-10 14:11:12 607

原创 More Exceptional C++ 笔记

Exceptional C++读书笔记 1泛型程序设计与C++标准库(没看) Item 1 Iterator:1)注意当前迭代器是否有效,如果无效则解引用产生程序错误;2)注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效;3)有效范围, 类似find(first, last, value)时,迭代器first 必须在last之

2014-01-27 16:45:46 946

原创 More Exceptional C++

在本书中,Herb Sutter采用了独具匠心的“提问/解答”的方式来指导你学习C++的语言特性;在本书的每个专题中,HerbSutter合理地设想出你的疑问和困惑,又有如神助地猜到了你的(可能是错误的)解答,然后给你以指点并呈现出最佳方案,最后,还提炼解决类似问题的一般性原则。本书适合的读者对象是中高级程序员,尽管如此,只要具备基本的C++功底和一定的程序设计经验,你完全可以理解和消化本书的

2014-01-27 16:42:08 714

原创 More Exceptional C++ 读书笔记2

//内存管理的一部分来自于http://blog.csdn.net/kingofark/category/9109.aspxItem 1 Iterator: (1): 注意当前迭代器是否有效,如果无效则解引用产生程序错误;(2):注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效;(3) : 有效范围, 类似find(first, last

2014-01-27 16:41:01 641

原创 More Exceptional C++ 读书笔记

Item 1 Switching Streams(1): 多考虑易读性,避免编写过渡简洁但是不易懂,不易维护的代码;记个相当简洁的流切换代码:(argc > 2 ? ofstream(argv[2], ios::out|ios::binary) : cout )  1 ? ifstream(argv[1], ios::in|ios::binary) :  cin).rdbuf(

2014-01-27 16:38:51 486

原创 Exceptional C++ 读书笔记

Exceptional C++ 读书笔记 1泛型程序设计与C++标准库(没看) Item 1 Iterator:1)注意当前迭代器是否有效,如果无效则解引用产生程序错误;2)注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效;3)有效范围, 类似find(first, last, value)时,迭代器first 必须在la

2014-01-27 16:34:16 601

原创 STL中的取反器和绑定器 仿函数的写法--之前写的不是很好

bind2nd和bind1nd的用法struct printx: public binary_function{  int operator()(int a, int b)const  {     cout    return a+b;  }}; int main(){    vector my;    my.push_back(0);

2014-01-26 15:08:29 1074

原创 Effective STL:第二部分 容器

第二部分 vector和容器第十三条:vector和string优先于动态分配的数组当你决定用new来分配内存时,将承担以下责任:n  你必须确保以后会有人调用delete来删除所分配的内存,否则将导致资源泄露。n  你必须确保调用了正确的delete形式。比如单个对象调用delete;分配了数组,则调用delete[]。n  你必须确保只delete了一次。如

2014-01-26 13:48:34 500

原创 Effective STL第一部分: 容器

第一条:慎重地选择容器C++提供了以下一些容器:n  标准STL序列容器:vector、string、deque和list。n  标准STL关联容器:set、multiset、map和multimap。n  非标准序列容器:slist和rope。slist是一个单向链表,rope本质上是一个“重型”string。n  非标准关联容器:hash_set、hash_multiset

2014-01-26 13:47:30 676

原创 Effective STL 读书笔记

最近有闲,在工作之余重读了《effective STL》一书,并通过 twitter 记了一下笔记,今天整理收集到这里。twitter 真的非常适合记读书笔记,哈哈,以后要好好地发扬。另,我的手机还是很老的 UIQ 3.0 的索爱手机,有没有达人推荐一些上推的应用程序?谢谢。====================================#estl 第50条:熟悉与STL相

2014-01-26 13:45:34 705

原创 Effective STL

这个在赖勇浩的读书笔记基础上改动的,因为没有找到这50条单独的记录,所有只好在基础上改动了。http://blog.csdn.net/gzlaiyonghao/article/details/5381763第1条:慎重选择容器类型;第2条:不要试图编写独立于容器类型的代码。第3条:确保容器中的对象拷贝正确而高效;第4条:调用 empty 而不是检查 size() 是否为 0。

2014-01-26 13:44:40 737

原创 Effective C++ 8. 定制 new 和 delete

条款49: 了解new-handler的行为为了指定这个"用以处理内存不足"的函数,客户必须调用 set_new_handler, 那是声明于的标准程序库函数。namespace std{     typedef void (*new_handler)  {};     new_handler set_new_handler(new handler p) throw

2014-01-13 17:13:08 563

原创 More Effective C++读书笔记

转载▼标签:itc 条款1:指针与引用的区别二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象在以下情况使用引用:总是

2014-01-10 09:40:22 603

原创 Effective C++ 7.0 模板与泛型编程

条款41   了解隐式接口和编译器多态1. classes 和 templates 都支持 接口 和多态2. 对 classes 而言接口是 显式 的,以函数签名为中心, 多态则是通过 virtual 函数发生于运行期间。3. 对 template 参数而言, 接口是隐式的, 奠基于有效的表达式。   多态则是通过  template具现化 和  函数重载解析 发生

2014-01-09 16:40:38 617

转载 iOS应用内付费(IAP)开发步骤列表

iOS应用内付费(IAP)开发步骤列表2013-04-12 15:53 唐巧 blog.devtang 字号:T |T登录到Developer.apple.com,然后进行以下步骤,为应用建立建立一个不带通配符的App ID,用该App ID生成和安装相应的Provisioning Profile文件。AD:2013云计算架构师峰会课程资料下载前两天和服务端

2013-12-30 17:26:26 685

转载 苹果的验证接口文档

苹果的验证接口文档发表于3个月前(2013-09-10 12:05)   阅读(244) | 评论(0)0人收藏此文章,我要收藏赞0苹果的验证接口中文版 原文链接https://developer.apple.com/library/ios/documentation/NetworkingInternet/Conceptual/StoreKitG

2013-12-30 17:25:47 2076

原创 Effective C++ 6.继承与面向对象设计

条款32:确定你的public继承塑模出is-a关系    以C++进行面向对象编程,最重要的一个规则是:public inheritance(公有继承)意味is-a(是一种)的关系。    如 果你令class D以public形式继承class B,你便是告诉C++编译器(以及你的代码读者)说,每一个类型为D的对象同时也是一个类型为B的对象,反之不成立。你的意思是B比D表现出更一般化得

2013-12-26 22:44:07 515

原创 手游人民币支付的过程

2013-12-26 18:42:32 595

原创 Effective C++ 5.实现

条款26:尽可能延后变量定义式的出现时间    只要你定义了一个变量而其类型带有一个构造函数或析构函数,那么当程序的控制流到达这个变量定义式时,你便得承受构造成本;当这个变量离开其作用域时,你便得承受析构成本。即使这个变量最终并为被使用,仍需耗费这些成本,所以应该尽量避免这种情形。    std::string encryptPassword(const std::string& pa

2013-12-26 15:34:43 541

原创 Exceptional C++ 读书笔记

Exceptional C++读书笔记 1泛型程序设计与C++标准库(没看) Item 1 Iterator:1)注意当前迭代器是否有效,如果无效则解引用产生程序错误;2)注意当前迭代器生命期,某些容器经过某些操作后将重新分配内部存储空间,则当前迭代器无效;3)有效范围, 类似find(first, last, value)时,迭代器first 必须在last之

2013-12-26 14:38:24 635

原创 More Exceptional C++ 读书笔记

More Exceptional C++ 读书笔记 Item 1 Switching Streams (1): 多考虑易读性,避免编写过渡简洁但是不易懂,不易维护的代码;    记个相当简洁的流切换代码:  (argc > 2 ? ofstream(argv[2], ios::out|ios::binary) : cout ) 1 ? ifstream(argv[1],   

2013-12-26 14:37:23 601

原创 C++

c++程序设计语言 c++编程思想 c++primer 高度探索C++对象模型 C++名家对话 More Exceptional C++ Effective C++ More Effective C++ TheC++StandardLibrary C++沉思录 C++Templates完全导引范例 C++Primer Plus C++ 面向对象多线程

2013-12-26 14:33:13 636

转载 C++学习建议

C++学习建议C++缺点之一,是相对许多语言复杂,而且难学难精。许多人说学习C语言只需一本K&R《C程序设计语言》即可,但C++书籍却是多不胜数。我是从C进入C++,皆是靠阅读自学。在此分享一点学习心得。个人认为,学习C++可分为4个层次:第一层次,C++基础:挑选一本入门书籍,如《C++ Primer》、《C++大学教程》、或Stroustrup撰写的经典《C++程序设计语言》或他一

2013-12-26 13:39:43 474

转载 重构,改善既有代码

《重构:改善既有代码的设计》读书笔记(2013-05-12 09:08:09)转载▼  ---- 2013-05-12 09:08:09  ---- Chapter1:1、fun太长,分割到其他类。2、当需要给一段代码写注释时,往往可以把这段代码提取成一个fun。3、少写重复代码。4、多内聚,if can,把fun搬到

2013-12-26 13:08:21 712

原创 Effective STL

effective stl 读书笔记本文在赖勇浩的笔记上继续写的^_^  第1条:慎重选择容器类型;第2条:不要试图编写独立于容器类型的代码。第3条:确保容器中的对象拷贝正确而高效;第4条:调用 empty 而不是检查 size() 是否为 0。 第5条:区间成员函数优先于与之对应的单元素成员函数。区间成员函数写起来更容易,更能清楚地表达你的意图,而且它们表现出了更

2013-12-26 09:13:51 659

原创 More Effective C++ 35 条建议

条款1:指针与引用的区别二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象在以下情况使用引用:总是指向一个对象且一旦指向一个对象之后就不会改变指向;重载某个操作符时,使用指针会造成语

2013-12-26 09:08:46 502

原创 More Effective C++

条款1:指针与引用的区别二者之间的区别是:在任何情况下都不能用指向空值的引用,而指针则可以;指针可以被重新赋值以指向另一个不同的对象,但是引用则总是指向在初始化时被指定的对象,以后不能改变在以下情况下使用指针:一是存在不指向任何对象的可能性;二是需要能够在不同的时刻指向不同的对象在以下情况使用引用:总是指向一个对象且一旦指向一个对象之后就不会改变指向;重载某个操作符时,使用指针会造成语

2013-12-26 09:04:48 604

客户端工业殷勤ORGE源代码

ORGE源码 游戏开发 客户端 工业级引擎 可以匹配U3D和2DX的引擎

2013-12-20

TinyXML UML 图

TInyXML UML 架构图 通过TinyXML 来解析XML文件。通过UML图可以更好的理解这个代码设计的裹成。

2013-08-27

ThreadPool UML图

线程池 的架构UML 图。可以利用架构UML 更好的理解线程池的工作原理。此时可以更好的进行代码的运用。

2013-08-27

ThreadPool C++实现

C++ 线程池 资源的有效调度 通过线程池可以实现资源的有限利用,同时防止读写锁。

2013-08-27

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

TA关注的人

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