物理设计,在C++语言规范中被忽视的问题_大规模C++程序设计书评-查字典图书网
查字典图书网
当前位置: 查字典 > 图书网 > 编程 > 大规模C++程序设计 > 物理设计,在C++语言规范中被忽视的问题
变成史努比 大规模C++程序设计 的书评 发表时间:2007-08-05 22:08:27

物理设计,在C++语言规范中被忽视的问题

其实lakos这本书讲述的问题很简单,就是包设计原则,这些原则跟OCP、DIP一样,在敏捷软件开发中都论述过,当然不是每个人都看懂了这些后面的原则;
但是,在C++语言中,你找不到包这个抽象概念所对应的东西,而且C++的链接过程有太多初学者没有弄明白的内容,而恰恰是这些内容破坏了文件的物理组织,加上大多数未经训练的软件开发者都没有将文件、目录当作包组织的概念,造成了大多数项目工程中代码组织的混乱,也许他们是好运的,没有遇上lakos它们那样,一个版本要编译一周的厄运;
其实lakos是想在这本书上提出一套规范,大家按照这套规范来设计具有良好物理组织的大规模C++软件,这曾经是老B为了兼容C的同时赋予自由散漫C++程序员的自由,但这些自由却成了C++程序员的噩梦;

稍后在C++基础之上改进的语言中,无不悄悄的加上了物理设计的限制,例如java中:
1、一个类只能放在一个源文件中,而不能像C++那样区分.h和.cpp,要是.h和.cpp的文件名还不一样怎么办,天哪。。。
2、一个.java只能有一个public class,这样的要求强制开发者去严肃对待源文件的物理组织,这个物理单元提供的接口是什么?哪些作为实现?;
3、没有了extern这样的链接指示符,避免了C++中两个毫无关系的obj,莫名的在链接时刻产生了依赖,java中一个import关键字的轻易搞定的依赖声明,在C++中lakos却要先保证.h/.cpp同名,然后还要禁止掉extern声明,他的idep工具才能正常工作,要是再遇到#include后面的大小写有区别。。。idep也不干活了。。。

整本书下来,lakos除了苦口婆心的告诉大家依赖危害性,如何建立起一套规范从物理上来改善依赖,如何从逻辑设计上避免引入依赖,最后的最后还给了一套用来分析依赖、度量依赖和检测循环依赖的idep工具集。

可惜的是,如此工程界大师的作品,却没人关注……

展开全文


推荐文章

猜你喜欢

附近的人在看

推荐阅读

拓展阅读

对“物理设计,在C++语言规范中被忽视的问题”的回应

扫帚的影子 2013-09-04 19:15:44

to ㊣要饭的小猪:编译链接有问题的可以看这本http://book.douban.com/subject/3652388/

㊣要饭的小猪 2013-09-04 09:50:34

是不是对编译链接不熟的人看了很有好处,头疼c++的编译链接。。。。

扫帚的影子 2012-08-09 15:34:55

从最近一段时间的工作中看到,更多的人在用C++时,还只是单纯地为了完成工作而已,至于好坏,更多的人从未注意过

浮德 2009-09-21 19:08:10

我真还没有比较过c.java. 也所知不多,不同的语言各得其所才好
我记得cpp其中有一条语言机制设计的条款: 相信程序员.
cpp确实有点这也要那个也沾.试图尽量支持多种范型.不过它的前进步子是碎步前行,这很明智

[已注销] 2009-09-21 11:36:51

语言应用的取向
真没明白cpp到底是能在系统编程方面跟c抗衡,还是在面向对象的纯正易用性上跟java抗衡.
到底它设计之初的取向是什么?


cpp是个嫖客,这想要那也想要.(C的好思想它想要,面向对象的好思想它也要).

好语言如好的爱情,找一个姑娘,送她回家,一步一步走下去.如此就是最高境界.

浮德 2009-09-21 11:24:35

这里讨论的问题是cpp语言机制的设计思想取向,你去看看那本演化,你就明白我说的是指什么了

[已注销] 2009-09-20 11:00:37

全盘都是理想化论调.
设计依赖于特定应用,未来是宏观,设计是微观的,你混淆了.

浮德 2009-09-13 22:40:05

在语言初期就消除可能性,是优秀设计的开始
- 理想化的论调.以为可以依靠机制设计消除隐患,很多可能是中性的,其未来取决于语言应用的取向.

[已注销] 2009-07-20 09:23:07

  可能性被滥用,责任在于人,并非可能性本身。
----------------------------------------
在语言初期就消除可能性,是优秀设计的开始.

蓝白黑 2009-06-18 11:16:37

真的是苦口婆心

浮德 2008-05-23 14:59:27

可能性被滥用,责任在于人,并非可能性本身。

变成史努比 2008-05-08 21:26:48

可能性的滥用却是噩梦的开始

浮德 2008-05-07 17:52:45

自由不是噩梦,是可能性。