螺旋式前进,重复有时是个主题

本文通过讨论《C语言接口与实现》一书与STL的关系,探讨了软件开发中的重复与创新问题,并延伸到架构与设计的重要性及成长路径。

       空虚时候我喜欢看书,上次看云风的博客看到一篇他谈论《C语言接口与实现:创建可重用软件的技术》,我也看过这本书,感觉自己理解不是那么深刻。反正闲在家里没事,就在图书馆借了这本书再看一遍,加上工作这两年把STL搞得比较熟,看了很多相关的书,这一次发现自己以前看书遗漏的东西的太多。不过我扯淡的目标不是这本书,而是重复,看看软件界都在这些问题上做了些什么。

      从这本书中提供的接口可以看出很多和STL中一样,还指出了空接口(不含数据信息,我忘记了那个术语名词)的好处。当然这不是本文的重点。我想说的是既然C语言已经提供了一套完美的接口,STL在做什么呢,显然是泛型的实现,提供更多类型的支持和面向对象式的思维。说白了还是用新的语言和技术来实现一遍,如此的还有很多,java、C#等其他的语言中肯定也有类似的接口,也许不仅仅是重复,而是借鉴,STL就是从Ada中借鉴而来,C++本身就是借鉴C、smalltalk等语言,过程语言、面向对象、面向函数语言之间互相学习,很多内容不断重复,每次重复都会有一些调整和改进。所以才说创新是不断积累。

    谈谈架构和设计,我现阶段的目标是成为一个出色的设计师,乃至架构师。我渐渐觉得这也是一个不断重复不断积累的过程,出现合适的架构应该是理所当然的一件事。不是有人说操作系统就是炒作的一个概念,其实大家只需要一个文件系统和相关的一些辅助软件而已,不需要巨无霸的OS。OS架构还不是那些出色的工程师在不断实现类似的机器控制系统逐渐提出来的;编译器的架构也是如此,一时间出了多少编译器,大家都在不断重复中,螺旋的前进,每次都是一小点进步,科学界和工程界都是如此的。谈到这,我的梦想似乎一下就完了,根本没有办法,只有把一个系统做了一遍又一遍,才能自己成为设计师和架构师,那么这个经验能用于其他的系统吗,不能的话,我还是成不了一个对绝大多数出色的设计师,最多只对一个系统。不过幸运的是我们看到一些牛人在一个系统NB的同时,在类似甚至不类似的系统一样很NB,所以设计的理念还是相通的,只不过,一切都是重复中进步,螺旋式前进,没有捷径可循。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值