自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(8)
  • 资源 (2)
  • 收藏
  • 关注

原创 关于单元测试的一些思考

1.    单元测试,持续集成在敏捷开发中的位置:敏捷开发(XP,Scrum)中提到了很多项目管理的实践。其中最基本的四个技术实践是其他实践活动的基础:版本控制,单元测试,持续集成与重构;单元测试是持续集成与重构的基础。持续集成通过自动化的单元测试来验证每次提交代码的正确性,重构也是通过单元测试来保证重构后的代码能够完成重构前同等的功能;持续集成的流程大致如下:1)         每过指定时间(5分钟)从版本控制系统上拉去最新的工程;2)         如果更新到新的内容,通过自动化编译脚本编译代码;3

2010-10-28 20:09:00 1406 1

原创 组装你的类(一):编译期的装饰模式.

     设计模式中讲到的装饰模式可以用来为某些函数动态的配置行为.追究其本质实际上是利用了一个链表结构保存了一组相同签名的函数指针(或者虚基类指针),然后统一调用它们.调整这个链表结构中函数指针的数目和顺序就可以动态的改变该函数的行为.    但运行期的装饰模式只能为一个类的成员函数添加行为,但不能增加一个新的函数.那么我们如何实现灵活的配置一个类,为类添加函数呢? 这样的功能只有在编译期才

2009-08-23 12:56:00 682

原创 编译期的拓扑排序:实现代码.

这里将整个编译期的拓扑排序的完整代码张贴出来,试验品代码,丑陋不堪,仅仅是描述下想法而已:$(root)/meta/BoolToType.h#ifndef __meta_BoolToType_h__#define __meta_BoolToType_h__namespace meta{ /** * 将一个bool值映射成一个类型,并且通过该类型的val

2009-08-22 17:17:00 1082 1

原创 如何在编译期进行拓扑排序,自动处理模块初始化依赖顺序。

  模块之间的初始化和清理的顺序是很重要的。这个顺序应该可以根据各个模块之间的依赖关系求出。而且在绝大部分情况下,链接进工程的各个模块之间的依赖关系在编译期就可以确定出来。下面我们来讨论一下如何通过模板元编程构造一套方便的机制,让编译器自动帮你完成初始化和清理的排序工作。   为了方便大家理解这部分工作到底能够用于处理什么情况,这里先将实现后的用法说明一下:  假设我们有6个模块,分别

2009-08-22 17:08:00 1070

原创 手工实现RTTI

    运行时的动态类型检查(RTTI,Run Time Type Indentifiation)是c++中提供的一项语言机制,它主要用于判断多态对象的具体类型。     为什么不使用c++提供的RTTI功能     但c++中直接提供的RTTI存在一些缺点。首先它提供了取得类名(typeinfo中的name函数)的功能,这个功能实际上并不是RTTI必须的。很多时候我们不需要取得类的名字,而只是希

2009-08-20 10:47:00 1092

原创 一种并行化游戏引擎的设计方案

需要解决的问题:目前游戏一般都是单线程的,只是在部分系统例如骨骼动画,粒子系统等在数据上运算很独立的部分才使用多线程来执行。或者将系统拆分成几个可以并行的模块进行并行,例如将渲染单独放到一个线程中。但这些解决方法都无法根据CPU数目的继续增长而提高。例如把渲染单独提出来作为一个线程可以有效的利用双核系统,但对于更多的核则无法利用。我们希望能找到一种方法,能够有效的适应CPU数目的增长,并且能足

2009-08-19 13:38:00 862

原创 抽象工厂模式实现的dll插件功能.

    先谈下设计需求.一个可扩展的程序很多地方都希望是可以替换或者是可以扩展的.比如一个游戏引擎,希望渲染部分能够在D3D和OpenGL之间替换,希望shader部分能够在cg,hlsl,glsl之间切换,希望音频部分能够在DS3D和OpenAL之间切换,希望可以选择性的获得读取普通文件和读取zip或者其他输入流的能力,希望能够读取各种不同的模型文件格式的能力--而且这些都不必改变上层接口.  

2009-08-18 12:07:00 2757

原创 如何使用3dmax导出插件导出模型信息

最近研究了下3dmax导出插件的东西.游戏编程精粹2上给过部分代码,但不完整而且我觉得那上面的实现并不好.这里贴下我的实现.    首先定义骨骼的结构:struct Bone{ INode* pNode;//该骨骼的节点 int parent;//父节点序号 typedef std::vector Child_Vec; Child_Vec child

2009-08-18 11:36:00 7109 4

C++名家对话 电子书chm版

C++名家对话.chm 1 auto_ptr再回忆 2 空引用 3 起源 4 谁的代码更易于移植? 5 通过任何其他名字 6 Virtually Yours 7 方形尖塔 8 访问限制 9 重定向 10 关于操纵器的对话 11 根源 12 Abstract Factory, Template Style 13 怎样持久化一个对象 14 The Bind That Ties 15 Back to Base-ics 16 Al-Go-Rithms 17 匈牙利命名 18 我为你准备一切 19 新的起点,第一部分 20 新的起点,第二部分 21 模板特化,缺省参数和其他一些有趣的事情 22 想睡觉,偶然 23 产生真正的hash对象 24 好的,坏的,不赞成的 25 Getting to the Point 26 A Midsummer Night’s Madness 27 Baseless Exceptions 28 Contracts, Promises, and Mere Semantics 29 可怜的bool 30 It's an Object-ful Lifetime 另 与大虾对话: 领悟设计模式

2009-05-11

捉虫历险记 - 常见 C++ Bug 大围剿.pdf

捉虫历险记 - 常见 C++ Bug 大围剿.pdf

2009-05-11

空空如也

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

TA关注的人

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