c++中设计模式这个词--痛苦的当代程序员--人生规划

来源:互联网 发布:东兴证券交易软件下载 编辑:程序博客网 时间:2024/06/08 15:49

设计模式这个词,不仅仅在c++语言中有,在其他各种计算机编程语言中也广泛的被使用。

著名的设计模式之书《head first》已经卖的相当之好。《大话设计模式》也卖的不错。

目前搞计算机编程的朋友们想想真是挺苦,学了个c++语言之后,麻烦就不断出现了,先要学习个“设计模式”,请注意,啥实用的东西都没学,就先学这么个东西,还的有初学者上来就学什么boost,编译都要N个小时的东西初学者都要去学,甚至很大一部分去读里边的源代码,我有种要哭的感觉,我们的程序员真辛苦,一大堆编程概念,什么“框架”,“结构”,“复用”,“跨平台”,许多人竟然把这些当成是时髦的用语。

看看看看,啥实际的东西还没干呢,就先学一大堆这个东西,我们中国的程序员辛苦不辛苦,已经不用多说了吧?

说设计模式重要不重要?复用、框架这些概念重要不重要?当然没有人否认它们的重要性,这些都是老外在多年的工作经验基础之上提出来的一些东西,肯定有其存在的合理性,但是,重要不等于你就必须去学,也不等于你当前就需要去学,因为人的精力是有限的,学任何一个东西都要投入时间的,我们必须计算投入/产出比,觉得划算才应该去学。

我是学c语言出身,一直就感觉c++语言不厚道,越整越复杂,当然这句话许多年轻辈的c++程序员不以为然,因为他们可能没学习过c语言,上来学的就是c++,那么我为什么说c++语言不厚道,我举个例子,比如我说:

“你是个人”,这句话很简单,你肯定马上就明白,甚至不需要思考就明白了,我要是说“你不是不是个人”,这句话你就要琢磨一下才明白了,但我要说“你不是不是不是不是个人”,我估计你就糊涂了。

那c语言,就好比第一句话,简单,让人容易懂,而c++语言就好比第二甚至第三句话,你需要思考,加重了思考的负担。但是呢,作为年轻的程序人,你要天天和他说“你不是不是个人”,听久了他也就不需要思考就反映过来了,这说明他适应c++了,这个时候你如果再和他说“你是个人”,也许他还要反映一下才能明白意思了呢?

c++语言搞这么复杂,当代语言搞出这么多概念,有其存在的道理,但我们国人学习的时候往往陷入其中,不明白其存在的道理,却硬着头皮去学,把概念当时髦,却不知,c++这个巨兽,用好的了自然有其强大威力,若用不好,就要吃相当大的苦头。

仅设计模式这个东西,我就提出了质疑,老外的设计模式是所谓的四人帮搞的吧?为什么搞这个,因为老外在开发大型程序的时候遇到了需要灵活架构程序以方便拓展的实际需求,也就是说,这几个老外写的程序非常之庞大,而且,要求内部设计的要十分灵活,想拓展哪部分要非常容易拓展,这个时候,他们不断实践,总结出设计模式这个概念和一些具体的程序写法,请注意,人家老外是“先有需求,后有技术总结归纳而成的设计模式”,这种设计模式技术的出现无疑这几个老外感受很深,他们认为非常好,非常实用”。

而国内程序员学习设计模式的时候,没啥实际的需求,就是捧一本书看,看明白了做个例子巩固理解所学习到的设计模式,最终出现个什么怪现象,为了使用设计模式而使用设计模式,这是相当怪异的事情,老外是遇到问题寻求解决办法而总结出来设计模式这个技术,国人是为了赶时髦而使用设计模式,这必然导致设计模式被滥用,许多一目了然的东西,却被你封装成各种设计模式用法,增加了问题的复杂性,增加了后续维护人员的成本,大家想想是不是这样?就好象你想杀死一只蚊子,你一巴掌就可以把它拍死,但你非抬一个大炮来打蚊子,固然可以打死,但是大炮很沉,你抬大炮付出了很多体力成本。

我们国人写的程序,有多少是巨大到使后续的维护升级必须用到设计模式来规范的?真值得我们好好反思,本来我们学习各种计算机语言来找工作,解决实际问题,应该是短平快,学以致用,现在可到好,就光什么设计模式,复用,boost库等东西,就增加了每个程序员至少1年的学习时间成本,1年啊,让人心疼的1年宝贵时间,有些人花1年学习之固然有用(也许项目越大越复杂越有用),但我相信绝大部分人,多花出这1年时间学习,用处不大,浪费时间。

所以,任何技术性的知识,都应该选择性的学习,先明白自己要做什么,才有目标的学习。

这么多年的技术生涯过去了,有一句话我发自内心的认同,我宁可用5年时间思考这句话的真谛,也比花1年时间学习各种乱七八糟的技术来的值得,这句话如果你不理解,那是因为你年少无知,那么我认为,你一定会有伤心,后悔,痛苦的一天:

人的一生需要规划,需要设立目标,5年目标,10年目标,20年目标,我们要把这些目标分解成每一年,甚至每一个月,每一天,每一天都要检查自己的是否实现了自己当天的目标,每一天都要不断审视自己的人生目标定的是否合理,是否能跟上时代的发展,是否能使自己在激烈的竞争中立于不败之地,不断调整这些小的目标,持续向自己大的人生目标迈进,每天,每时,每刻都不要放松,向着自己长久的目标前进,再前进。

我以一个写了15年程序的程序员身份,向各位后辈写出点自己的这些感受,人的一生要做的事情太多,千万不要钻到技术的海洋中去而不自知,而不知自拔。