写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,就是这个意思。
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

日军偷袭珍珠港的一些细节——兼评1970和2001年版电影

 1. 机动舰队在夏威夷时间1941年12月7日晨3:30到达预定地点——珍珠港以北200海里。当时风大浪急,一些浪头甚至能够打到航空母舰的甲板上。我们从两部电影中都看不到这一天气状况的反映。由于这一...
  • myan
  • myan
  • 2004年04月26日 11:02
  • 9187

Java Build工具Ant与Maven之比较(大谈Maven缺点)

没有一件东西能满足你的全部想法除非你自己创造一个出来。同样对于Build工具来说,也许最好的就是你自己写的。每个项目的Build过程都是独特的,而且通常你的项目要用多种方式构建。对Build工具的作者...
  • psiitoy
  • psiitoy
  • 2014年05月14日 10:35
  • 2096

如何在C++中调用C程序?(讲的比较清楚)

转自:如何在C++中调用C程序? C++和C是两种完全不同的编译链接处理方式,如果直接在C++里面调用C函数,会找不到函数体,报链接错误。要解决这个问题,就要在 C++文件里面显示声明一下哪些函数是C...

Visual C++角色扮演游戏程序

  • 2007年05月04日 12:54
  • 7.62MB
  • 下载

Visual C++角色扮演游戏程序设计

  • 2008年01月18日 08:30
  • 9.13MB
  • 下载

Android 在安装完成界面,点击打开应用程序。在应用程序点击home键,再从桌面打开程序导致产生多个实例或者说程序被重复打开。(为了把问题写清楚,标题一定要长长长........)

本博纯属个人开发记录, 转载请注明出处:        问题标题都已经写明了,就是在普通的安装apk完成之后,会遇到的一种情况。基本上在程序的AndroidManifest.xml里...

visual c++角色扮演游戏程序设计.rar

  • 2008年07月16日 13:23
  • 9.12MB
  • 下载

清楚缓冲函数fflush()及结构化程序设计方法

以前总是在博客上面找学习资料,那时就有想法自己也试试写写博客,不管是原创、转载还是翻译,相信只要自己坚持都会有收获的。刚好目前正在学习C语言,学习过程中遇到许多问题,就想乘此机会记录下来,以后时常看看...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:写C++程序要清楚自己的角色
举报原因:
原因补充:

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