写C++程序要清楚自己的角色

原创 2006年05月25日 11:06:00
今天跟一些朋友在信件里讨论C++的使用。一个还在学习C++的朋友,认为要把重点放在虚函数、多态性、STL上。我认为学习的时候这样考虑肯定是对的,但是真正开发的时候,不能因为你掌握了OO、generic这些先进武器,就非要用上这些东西,以示区别不可。谨慎合理地使用语言的机制是开发良好C++程序的关键,至少在心态上是关键。

下面是信件内容的摘选:

你写C++的时候,一定要想清楚,你是在做基础设施还是在应用。如果是基础设施,比如类库、框架、底层功能的class wrapper,那么可以允许你大胆地使用C++中的各种技巧,关键的要求是你得暴露出来一个clean的interface,让别人好用。这一点并不容易,特别是有的时候你觉得很好用的接口人家就觉得很别扭。所以比较省心的做法就是把接口设计成流行的风格。比如模仿STL的风格,模仿Java的风格,模仿COM的风格,甚至模仿MFC的风格,可能都比你自己发明一种新风格要“好用”。

可是做应用开发的时候,手就要把紧点,别自鸣得意地滥用高级技巧。应用开发很大程度上受基础设施的制约,总的来说,使用函数、POD对象、concrete class,从framework中派生出来的class,再加上一点点用来节省打字的template,足以满足应用开发的需要。特别是当你的下面没有很完备的class library或者framework的时候,千万不要一边写应用,一边又想着怎么让自己的这些东西“为万世开太平”,那样的话很容易就会把程序结构作的过于复杂。最后往往是应用没写好,也没有可复用性。以前我没有经验的时候,最容易犯的错误就是这个。

做基础设施的开发,那叫“设计”,是要为以后考虑的,为了长远利益可以牺牲眼前的进度、简单性。可是做应用,那眼前利益是第一位的,你先把手头的东西又快又稳地run起来,才谈得上以后有复用的可能。眼前的东西作的一塌糊涂,说里面有的模块设计得超级棒,绝对能复用,你自己都不相信。代码要一丝不苟,该写注释写注释,该写assert写assert,该怎么样怎么样,不能因为想着“反正也就是一锤子买卖”就马马虎虎。至于能不能复用,那是以后的事情。所谓Design for today, code for tomorrow,就是这个意思。
版权声明:本文为博主原创文章,未经博主允许不得转载。

产品构架图

什么是产品架构图 产品架构图是产品经理用来表达自己产品设计机制的一张概念图: 它将可视化的具象产品功能,抽象成信息化、模块化、层次清晰的...
  • yixiantian7
  • yixiantian7
  • 2017年09月21日 16:59
  • 379

C++实现推箱子游戏

一,项目简介 用两天闲余时间回顾了推箱子这款经典的小游戏,目前设置了5关,只能实现基本的人物移动。判断胜利条件,其他功能还未实现(例:撤回到上一步,自由选择关卡等),也顺便复习了C++的相关知识。 ...
  • Amumu12138
  • Amumu12138
  • 2018年01月12日 11:00
  • 119

写C++程序要清楚自己的角色(孟岩)

今 天跟一些朋友在信件里讨论C++的使用。一个还在学习C++的朋友,认为要把重点放在虚函数、多态性、STL上。我认为学习的时候这样考虑肯定是对的,但 是真正开发的时候,不能因为你掌握了OO、ge...
  • lao_mage
  • lao_mage
  • 2006年05月25日 15:46
  • 714

转写C++程序要清楚自己的角色

今天跟一些朋友在信件里讨论C++的使用。一个还在学习C++的朋友,认为要把重点放在虚函数、多态性、STL上。我认为学习的时候这样考虑肯定是对的,但是真正开发的时候,不能因为你掌握了OO、generic...
  • laoyinfl
  • laoyinfl
  • 2006年05月25日 20:59
  • 423

公共组件使用手册

该文档为国家电网PMS2.0开发手册 公共组件使用手册                                     PMS2.0项目组 2...
  • jiejie11080
  • jiejie11080
  • 2017年01月03日 14:40
  • 1542

大型网站技术架构:核心原理与案例分析(PDF)

  • 2016年03月21日 09:00
  • 49.6MB
  • 下载

怎样编写自己的C++头文件

下面就非常简洁明了地谈谈头文件(.h)和源文件(.cpp)应该怎么写。    头文件(.h):     写类的声明(包括类里面的成员和方法的声明)、函数原型、#define常数等,但一般来说不...
  • cyp331203
  • cyp331203
  • 2014年03月30日 20:42
  • 1889

手把手教你写个微信小程序

手把手教你写个微信小程序 很多人看完bmob快速入门,并完成了基本配置之后依然不知道如何下手去写自己的代码,那么跟着我一起来一步一步做个小程序吧。 工具:Bmob后端云...
  • myself2015a
  • myself2015a
  • 2017年12月08日 11:48
  • 102
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写C++程序要清楚自己的角色
举报原因:
原因补充:

(最多只允许输入30个字)