看到这篇文章,深有感触,c++又不是附庸风雅的东西,被滥用也就罢了,还要。。。
转自http://www.cppblog.com/cool-liangbing/archive/2009/03/28/78116.html
问起c与c++区别,常常从语法上回答,c++是带类的c,再深入可能提到设计方面,面向对象设计支持,范型设计等等。
问起为什么使用c++?能使用面向对象设计来取代过程式设计,可能是最多的回答;还有就是c++可以写大项目,在控制大系统上有优势。
以上回答有问题吗?不知道,别人若问我,我也这么回答。
从2月份开始,一直在开发网络行为审计系统高性能版,我们也叫大流量版本。是在以前普通版上进行重新设计,采用分布式、多进程、多线程来最大化利用memory、CPU,提高系统吞吐量。
在架构设计确定以后,就是进行详细设计和开发,因为有普通版,当然是进行重构或重写。普通版也是使用c++编写的,g++编译,我使用VIM开发。
设计风格呢?有class无OO设计,还是个过程式的东西----这种风格太常见了,大文件、大函数、废代码成堆出现,不安全的指针操作,忘记资源释放等等。
这种现象我在所工作几家公司都发现了,让我头痛,也让我练就了一手好的重构技术,现在基本上面对这种代码,我能处乱不惊了。
----这种现象,让维护成本成倍增加以至于系统腐烂。是c的错,还是c++的错?是面向过程的错?还是面向对象的错?
开发语言没有错,用c开发,我既可以进行过程式设计,也可以进行面向对象设计,即结构体+函数指针来表达类,函数指针来表达多态等。
设计风格没有错,其实不管面向过程设计还是面向对象设计,系统架构设计、模块化首先要做好,对功能内聚性理解要清楚;不然,时髦的面向对象设计也没有什么用。
现实中,我们所设计的类,不会是图形Shape与圆,马与白马关系那么简单,你不可能很容易得出一个唯一的设计答案。
why use c++? 我感觉最简单的答案就是公司已经用它,那进公司就得用它,没有那么多废话,这就是最最简单的管理----服从。
用了c++就能写出好系统、大系统吗?不能。语言解决不了设计人员和开发人员本身素质问题。