Chinaunix首页 | 论坛 | 博客
  • 博客访问: 205616
  • 博文数量: 264
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 2740
  • 用 户 组: 普通用户
  • 注册时间: 2009-06-03 13:25
文章分类

全部博文(264)

文章存档

2011年(1)

2009年(263)

我的朋友

分类: C/C++

2009-06-04 12:39:18

C++程序员经常碰到以下两个问题:& F0 W* e$ N+ F
  (1)随着系统越来越大,编译越来越慢
1 n9 i# q( T. J  X' z' \/ u  (2)程序莫名其妙的崩溃,rebuild all 以后正常。' I7 T' p# I% \( Q
  0 ~' ^" B; ^" L/ x1 t
  如何正确,快速地编译程序呢?这个问题太复杂了。这里只简单地说两点。5 z" D8 X9 c) R5 ~& H, |9 ?
  (1)GOF的设计原则:面向接口编程,而不是面向实现编程。
0 ^7 i! F7 Y  r: X6 i   不要把上述的两个问题怪罪于你的 IDE,它归根结底很可能是以下原因:模块不清晰,接口不明确。因为如果你修改了一个头文件中的类的数据结构,则所有包含该文件的实现文件必须重新编译。而这个头文件如果又包含在其它头文件中,那就只有 rebuild all 。
+ Y5 y& I9 K. V2 ]# }   一个Java 高手总是言必谈设计模式,好象C++程序员在这一方面欠缺一些。要做到模块清晰与接口分离,设计模式的应用是必不可少的。详细的就不说了,有很多书都说到 这个。个人经验:( i ) 尝试DDT(测试驱动开发),它强迫你将程序模块化。( ii ) 使用一个自动化的内存管理设施,如boost::shared_ptr,甚至一个gc,可以减轻对象管理的负担。; [1 T+ L& e; S# K+ d% b9 |: a
  (2)关于预编译头文件。
2 f# w) I1 v0 J, t( g; _  预编译头文件是在 Visual C++中广泛使用的一个技术 (经常见到的stdafx.h),用于加速编译。但使用不当,反而会使编译更慢。它还会引起一些其它的问题,比如违背了设计原则。一位C++牛人甚至说, 预编译头文件是万恶之源。虽然有些夸张,但至少告诉我们,应该小心地使用这个东西。
阅读(262) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~