设为首页收藏本站

LUPA开源社区

 找回密码
 注册
文章 帖子 博客
LUPA开源社区 首页 业界资讯 开源资讯 查看内容

「毁灭战士3」源码就是“保持简洁”的证明

2015-1-25 14:56| 发布者: joejoe0332| 查看: 3150| 评论: 0|原作者: 威士忌|来自: 伯乐在线

摘要: 假如你在网上搜最好的C++源代码。「毁灭战士3 | Doom 3」的源代码肯定会被提到好多次,这篇就来证明此事。我花了一些时间通读了 DOOM3 的源代码。这可能是我见过的最干净最漂亮的代码了。 ...


  其开发者的一些有趣的选择,帮助我们理解它的奥秘:

1-为有用的服务提供公用的基础类。

许多类是从idClass继承下来的:


idClass提供如下服务:

  1. 创建实例化
  2. 类型管理
  3. 事件管理

 


2-方便的字符串操作

  一般来说,字符串是一个项目里用的最多的对象,许多地方需要使用它,并且需要函数来对其进行操作。

  DOOM3定义了idstr类,几乎包含了所有用的字符串操作函数,无需再自己定义函数来接受其它框架所提供的字符串类。


3-源代码与GUI框架(MFC)高度解耦

  很多工程用了MFC后,它的代码就会与MFC类型高度耦合,并且在代码的任何一处都能发现MFC类型。

  在DOOM3里,代码和MFC是高度解耦的,只有GUI类才会直接依赖它。下面的CQLinq查询可以展示这点:

 

  这样的选择对生产力有很大的影响。事实上,只有GUI开发者才会关心MFC框架,其它开发者不应该被强制在MFC上浪费时间。


4-提供了非常好的公共函数库(idlib)

  几乎在所有项目中都会用到公共工具类,就如以下查询的结果:

  正如我们所看到经常使用的就是公共工具类。假如C++开发者不使用一个良好的公共工具框架,那就会为解决技术层面问题花费大部分的开发时间。

  idlib提供了很多有用的类用于字符串处理,容器和内存。有效促进了开发者的工作,并且能让他们更多的关注在游戏逻辑上。



酷毙

雷人

鲜花

鸡蛋

漂亮
  • 快毕业了,没工作经验,
    找份工作好难啊?
    赶紧去人才芯片公司磨练吧!!

最新评论

关于LUPA|人才芯片工程|人才招聘|LUPA认证|LUPA教育|LUPA开源社区 ( 浙B2-20090187 浙公网安备 33010602006705号   

返回顶部