并不是你熟悉了GoF的23种模式就表明你达到了一个层次,只是一个前提,一种必备条件,何况乎这还只是设计模式,此外还有分析模式、测试模式等等软件工程各个环节中前人经验和思想的总结。模式只是一种思想,如果不加灵活运用,具体情况不具体分析,往往就会成为反模式。实际工程中,我们遇到似乎更多的是反模式,这也就是为什么软件项目成功率这么低,造成软件危机的原因。举例来说,软件技术为什么落后硬件技术?人是一个主要的原因。我的观点:目前软件技术还没有发展到需要蓝领工人的程度(或许50年或100年之后会有),许多新思想,新方法都在摸索之中,可以说软件还处在幼年时期。或许大家理解的蓝领与传统行业的蓝领有所区别,那就另当别论。

我觉得真正能达到所谓的软件蓝领的时代真的还挺遥远。
软件工程,软件的生产和其他的我们司空见惯的企业生产有一个明显区别就是他的需求变化莫测。当一个客户让你建造一幢房子的时候,如果最终房子验收时,屋顶的某些设计上没有达到他的要求,他也可能因为代价太大而放弃更改。软件的功能则由于易修改性则可以随心所欲的由他来操控。
很多人因为对计算机的强烈控制愿望而迷上了软件,而这种强烈愿望却反过来注定了人的主动性和参与性,而不是机械的。

设计模式的思想的确不错,我看了以后,感觉这些模式的作者在考虑问题设计会有以下的共同考虑,声明先,以下是个人观点,
1,模式作者在设计问题的时候会更多考虑扩展性,问题的变得时候,如何处理这种变化。
2,考虑耦合性,每个模式中的每个类与类耦合性低
3,具体到实现的话,大家可以看看robert c. martin的几个原则,说白了还是多态和继承

<quot>
公司考虑就用一般的struts+Hibernate,这样的话也可以为客户节约Application成本等,但某各员工说我要根据我的职业生涯考虑,我要使用EJB
</quot>

我就在做一个项目,项目前期的时候讨论大家都建议使用简单的技术,甚至使用jsp+javabean直接去做都可以,而有一个人非要使用struts+hibernate甚至还想要使用ejb什么的,当然最后确实采用了struts+hibernate来做。直接结果是到了现在还没有做完,一个年头了。

作为公司的利益来说,当然是希望所有的工人都是“蓝领”(没有贬义,是说那种干得多,拿的少还不会说坏话的)。很好管理,做什么事情都是生产线似的出来。软件产业,软件工厂,软件流水线,最好是软件自动流水线,这样子才能达到最高效率为公司赚取最大利润。

作为个人而言(不免掺入我个人的想法),认为编程不仅仅是一项工作,还是一门艺术,我可以在这门艺术里面建造各种各样的美。包括软件外观,软件内部架构,甚至软件里面都可以写出哲理来,我认为这样感觉很舒服,有成就感,所以我不但要把编程当作工作来做还要把它当作艺术来享受来创造。

然而,很不幸,所有的精致的艺术品都是时间磨出来的,也许那些大家一生才能够创造一个艺术品,而公司要求的可能是成千上万个非艺术品。这就存在冲突了,公司想要每个人都成为建筑工人,而程序员每个人都想成为建筑学家。如果一个公司里面所有的人都成了程序家,艺术家,估计这个公司饿死的可能性极大。

我相信建筑工人是不需要学习建筑模式的,他们只需要知道怎么砌砖,怎样架粱就好,而至于为什么要这样架,为什么这砌筑就成了天坛的回音壁他们并不关心,因为有建筑学家给他们说。程序员亦然。。。也许今后会有一个职业叫做程序家。。。呵呵。。。

物以稀为贵,一般人干不了的,当然就贵啦.经济学的稀缺性吧,搞咱这一行也不例外拉.社会最需要的就是最抢手的人才.

我觉得会不会模式根会不会C语言和JAVA语言一个意思.用JAVA的完全可以不知道C,而我对程序员的定义和标题一样.就是个技工而已.即使你是一个会设计的程序员,也难逃社会上对你技工的定位.程序员相当于二级木匠.

其实我根本就没有考虑过我究竟是个蓝领还是白领,我只知道用一种适当的模式设计出,可扩展性强、易维护、低耦合的软件(或者一小段程序)的时候,真的会很有成就感(尽管我现在体会的这种感觉不多)。哪种感觉难以用语言表达。
模式和蓝领根本就没有什么必然的联系,何必要强制说到一起说呢?

软件开发是一门艺术,我超级同意这个说法,艺术源于灵感,而灵感并非偶然,需要的是不断的学习和积累。什么才能叫蓝领呢?那些固定模式coding的人就是蓝领吗?那些为了工作而工作的人,不思考,不积累的人算不算呢?就算是设计人员,他们总按照一个模式进行设计,这样是蓝领吗?那些管理人员,总是按照一个模式管理,千篇一律的管理,也算吗?那些做外包的特别规范的程序员算是蓝领吗?他们就没有自己的想法,不想进步吗?根本就没有定义的嘛。。。我更讨厌以学历来断定一个人的能力,这可能和我学历不高有关系。但事实是,工作经历一样的人,而学历低的人也可能在某些方面比另一个人的能力高出很多,正所谓“闻道有先后,术业有专攻”,所以学历也是不能用来区分蓝领白领的标志。。而我个人认为根本就不应该存在这个标志。分工不同,但都很重要。我们软件不需要英雄模范,需要团队。

何必为了一个虚拟的名字而争论不休呢?

我们究竟为了什么?为了高薪吗?为了高社会地位吗?我敢说那些在某些方面具有专长的人大部分都不是为了这些,这些只是其次,它能跟你的的付出报以肯定,而是为了爱好。。。没有比从事自己喜欢做的行业更令人羡慕的了,至少我这样认为。而在软件行业不断的进步着,看到自己每步的成果,着实令我激动不已。

至于个人发展和公司利益,难免会有冲突啊。每个人有权利选择自己愿意做的事情和不愿意做的事情。公司永远是以利润为最终目的。。。如果一个公司有机会要做外包,尽管积累会少,但这样会带来很大的利润,没有几个公司会闲赚钱的机会多,而这样你认为对你没有前途可言(你自认为你的能力不应该仅仅去做外包的coding,而应该可以做更高层次的东西),OK,提出申请,请求更高层次的工作机会。。。什么?没有位置安排你。。那对不起了。。你还是去做外包吧。。什么?不想做。。ok,公司没有机会给你,你可以自己走人了。。。到一个更适合你的地方。。这样也许对你和原来的公司都有好处。我绝对不相信一个人的情绪不会影响一个人的工作(有人说,不管什么情况下,我的个人情绪不会影响我的工作态度,这纯粹是在吹牛),当你不喜欢做一样工作的时候,百分之九十九你都做不好它,最起码你不会那么用心去做它,就算你挺着尽量去做好它,那和你喜欢做的工作做出的质量,肯定不能相比。当你觉得公司没有你的位置,那还不是你应该走的时候吗?

“蓝领”、“建筑工人”什么时候这些词开始出现了贬意呢?“蓝领”、“建筑工人”他们都是好样的!!!现在的世界真奇妙。。居然看不起劳动者。我就是个蓝领,我就是个工人,有什么不妥嘛!这个世界究竟是怎么了?

做软件开发的人都是劳动者,都是工人,全部都是蓝领。。而劳动者都是艺术家。他们在世界每个角落构建着自己不同的理想。

我觉得原因在于人的心态,软件工作者的心态。而导致很多不正常心态的根本原因是不科学的软件人才培养体制。软件工程师(刚毕业的年轻人也这样称呼自己)一般都是大学本科走出来的,而且大多数公司只选择本科的。大学本科毕业的虽然越来越多,但人都在心态上还是很觉得了不起的,至少觉得含辛茹苦读到现在,多不容易,你却让我不断的编码,做蓝领,我不乐意。我想往上,我想做得更好。但实际能力往往又达不到,就是矛盾阿。心理扭曲,呵呵。其实,做个极端的假设,假如中国已经有了蓝领阶层,且都是高中毕业培养的。可能没那么多问题。他们做他们会的,也不会有那么多的不满。管他什么领,阶层在自然中是分得很清楚的。大家都会按照这种规则来行事,不会像现在这样,不满意手头做的,好高无缘,嫌工资低。其实高难的又承担不了。哈哈

其实是不是蓝领我无所谓,我做我喜欢的事,拿我该拿的那份收入,自得其乐,管别人什么事?

对模式而言和是否是技工没有多少关系,就好像你在说将军是否一定要会打枪一样。
学习模式的目的很明确,别人知道的我知道,别人了解的我清楚,别人不知道的我了解,不用过于超前,只要比别人永远快一步,你就是领导者。

别扯淡了,你们一群人拿建筑业跟软件业相比,从根儿上就错了。
建筑业有一个特点,不存在重复建筑!
一模一样的楼,盖在A地就是A楼,盖在B地就是B楼,要雇佣盖两座楼的人月,要收盖两座楼的项目费用。
软件是这样么?
功能一模一样的软件,根本不需要重复开发,直接买来用就是了。
建筑业根软件业根本就是两回事。
软件业只有设计人员,也许有低级设计人员和高级设计人员,有无法避免或者可以避免的低级重复设计,但都是设计,没有蓝领。
蓝领是CPU,是刻录机。
这就是我们的金字塔的基座。

上面说的软件自己生成工具我想说:
现在的代码自动生成工具已经很先进,并且还会不断地改善最终成熟起来。
到时候软件蓝领就会成为软件开发行业的一个单元。
说这样的工具不行的人,我认为你们应该跳出自己的一个小圈子,看看别人用的这些工具是不是真行,自己不行不代表就是不行。当然假如你自己的圈子很高也除外,但我想假如你的圈子很高也不会说出这些话。

至于说懂了模式也是技工这个说法,我认为不是一个充分必要条件。
两者就没有什么关系。
等到软件产业化到很高级的程度以后,只是技工的人都不需要懂模式。
懂了模式的做什么也都不一定。

还有人说OO是正统,
我表示反对,你说说十几年前什么是正统?
你再说说十几年后什么是正统?
我觉得要从发展的角度出发。

总的说来,我觉得出了纯技术的问题可能有一个正确的答案,
想今天这种话题就没有什么正确的答案。
也就是咱们这些搞软件的聊聊而已,
既然是聊聊,也就别太当真。

呵呵。
就说我在JScript编程里说吧。由于经常要做一些东西,面向对象这块少不了吧。再就是为了更合理和更节约代码等等方面而尽量的合理去构造各个类的层次和联结关系,我自然而然的要去想方设法去改进我的代码,在我看了这些设计模式后,发现,原来我或许是我们一直都在用设计模式,只是我或我们没有去总结而己。

我们人类就是要接受现实,我们个人根本就没有办法改变社会的某些东西。那我们只有去适应它,接受它。只有这样我们才能在这里生活。你说是吗?

我没看出模式有多大好处,大家都在提重用,怎摸个重用,我没看到,你把你
关于汽车管理和医院管理给我重用看,核心不同怎摸个重用,除到那点可怜的接口代码外,你其他代码能用吗,我看模式只是让大家把公共不份的代码少写点就是了.
我是新手,看了模式越看越不懂了,java一个框架连一个框架,包来包去,除了少写点代码,有啥用处,要是这样,一个object都可以了,它难到不是一个框架,框架很多都是用限制和前提的,我不看好,80%的核心还是要程序员自己写,却在那20%代码上争来争去,搞不懂