`

中国设计人员的悲哀

阅读更多
最近写了一本书,免费放在网上(漫谈设计模式)供大家讨论,两个星期过去了,没有任何人反馈。作者翻看了中国人写的几本关于设计模式的书籍,感慨万千,有的没有参考书籍和文献,有的一些概念完全讲错了(例如IoC,老是只和实例化撤在一起),几乎清一色没有严谨论述,不知道看完对OO能理解几分,和国外的几本书籍相去甚远。

难道中国技术设计人员都如此浮躁?那些OO的大师们,没有一个是没有经过数十年如一日的历练才造就的,中国人都想在一两年或者甚至一个下午把设计模式和OO搞懂,是太聪明了还是太愚昧了?

大家看到技术,往往向技术扑过去,觉得会使用spring,Android就很了不起,可惜看看写的代码,就明白他们还没有理解为什么,也不知道真正能作什么就开始,实用这些技术写的代码,避免重复和扩展性,可伸缩性始终是个遥不可及的神话。

唉,浮躁的社会,每一个技术人员学习两年开发和技术都想爬向管理,我们中国永远不会出现和理解像martin同学,eric evens同学,eric gammar同学等这样的人才。设计方面的经验和技巧,对OO的领会和运用,岂是两三年就能弄懂的!

没事歪歪了几句,惹得多数开发人员不高兴了,先在这里诚挚地道歉了!

发现大家多数都在评论我的书籍,我只是感慨现状而已,至于我的书籍,我觉得最适合的人群是:
1.重复代码照样出现,而且时间总是你和老板的理由。
2.多个模式间你不知道如何选取,感觉都可以。
3.并且你在开发中对模式仍然念念不忘,为了使用模式而设计,不是自然而然由内而发。
4.仍然自负的告诉客户,我们做的就是这样,你的需求无法实现。
5.最后,扪心自问下:什么是OO,OO带给你的什么,你在设计中如何使用OO的,它的封装和粗粒度给你带来了什么,如果这些你懂得话,那你没必要看我的这本书籍了,因为我就是想让大家知道什么是OO,而不是设计模式。
6.如果觉得你现在解决的问题最麻烦的是给领域问题建模,而不是模式,因为你是由内而发,使用/创造模式的,根据问题来的,那么,你的水平高于本书的水平,这里有兴趣我们可以做其他讨论。
分享到:
评论
18 楼 redhat 2011-05-05  
yyqhs 写道
楼主说得好,我要把楼主写的设计模式分析下下来好好学习学习,我做J2EE的,我觉得设计、架构才是J2EE的核心,不过我菜鸟,估计没法给楼主提什么建议。

软件的核心是模型,这是公认的,也就是使用OO语言设计中对问题域建模,设计模式不是。你说的不错——“设计、架构是J2EE的核”,这个可以认为是上述“软件的核心是模型”的一个推导。
17 楼 redhat 2011-05-05  
logicgate 写道
redhat 写道
最近写了一本书,免费放在网上(http://redhat.iteye.com/admin/blogs/1007884)供大家讨论,两个星期过去了,没有任何人反馈。作者翻看了中国人写的几本关于设计模式的书籍,感慨万千,有的没有参考书籍和文献,有的一些概念完全讲错了(例如IoC,老是只和实例化撤在一起),几乎清一色没有严谨论述,不知道看完对OO能理解几分,和国外的几本书籍相去甚远。

呵呵,好像很多新书的作者都喜欢这样评论以前同类书籍。你确定下一本设计模式书的作者不会这么评论你?

写书很好,值得尊敬,如果能不用攻击别人就更好了。不然你在感慨悲哀的同时,自己也成为了悲哀的一部分。


为了摆脱说打击别人的嫌疑,我在写的过程中,略去了这些书籍的名称,就怕落得说我“都喜欢这样评论以前同类书籍”,如果真的是这样,我会和其中的某些书籍一样,连GOF的书说的一文不值,在写作此书过程中,参考书籍一大摞,但是,看了很多国人写的书籍,确实不敢拿过来做参考,就是太不严谨,读者有兴趣可以去市面找找这些书籍在做评论。我文中的推荐书里,对一些“大家”写的书籍,不仅是公认的,而且是我喜欢的,都给了推荐和参考理由,如果只是泄私愤,1.我何必免费让大家观看呢,何不在出版时说明呢?2.我和不把国内目前最流行热卖的模式书籍:head first的design patterns等来个抨击呢?
16 楼 redhat 2011-05-05  
kjj 写道
以打击别人来抬高自己,本身就很难被人认同!!!

我没有打击别人,只是多年开发的年龄大点的“人”的深有体会而已。我也没有必要为打击大家而如此花这么多时间写这么几百字,何况要打击大家,使用此手段也未免水平太低了。
15 楼 redhat 2011-05-05  
peterwei 写道
redhat 写道
最近写了一本书,免费放在网上(http://redhat.iteye.com/admin/blogs/1007884)供大家讨论,两个星期过去了,没有任何人反馈。作者翻看了中国人写的几本关于设计模式的书籍,感慨万千,有的没有参考书籍和文献,有的一些概念完全讲错了(例如IoC,老是只和实例化撤在一起),几乎清一色没有严谨论述,不知道看完对OO能理解几分,和国外的几本书籍相去甚远。

难道中国技术设计人员都如此浮躁?那些OO的大师们,没有一个是没有经过数十年如一日的历练才造就的,中国人都想在一两年或者甚至一个下午把设计模式和OO搞懂,是太聪明了还是太愚昧了?

大家看到技术,往往向技术扑过去,觉得会使用spring,Android就很了不起,可惜看看写的代码,就明白他们还没有理解为什么,也不知道真正能作什么就开始,实用这些技术写的代码,避免重复和扩展性,可伸缩性始终是个遥不可及的神话。

唉,浮躁的社会,每一个技术人员学习两年开发和技术都想爬向管理,我们中国永远不会出现和理解像martin同学,eric evens同学,eric gammar同学等这样的人才。设计方面的经验和技巧,对OO的领会和运用,岂是两三年就能弄懂的!

没事歪歪了几句,惹得多数开发人员不高兴了,先在这里诚挚地道歉了!

首先我要为楼主的行为叫好,虽然不大卖座,但还是非常积极的行为的。

关于浮躁,不想多说,中国的大环境如此。

我花了40多分钟,过了一下楼主的书。发表一下个人愚见。好的地方就不多说,说一下我认为不大好的地方:

1.做为设计的老鸟,我想大家多多少少都读过设计模式的书。但大多数设计模式的书都是比较泛泛,缺少实际项目中的例子,不好理解。而比较好的java设计模式的书,毕定是head first design pattern.搭配head first ooad来看,是提高内功的比较好的方法。从你的书中,我也看到很多head first系列的影子,想必你也一定研究过。那么你这本比之head first design pattern,有什么出彩之处?

2.你加入了很多新的东西,比如什么泛型、enum、hibernate注解、ioc、aop等新的内容。好的方面是有新的东西,但坏的方面也比较明显,容易显得太杂,设计这种东西,还是简单点,容易理解的好。毕竟东西一多,人容易分心,吸收的思想反而不好。

3.还是缺少实际开发中的例子,国外的很多书也是如此,不单你的。一切都没有比落地的代码更能说明设计模式的思想。毕竟设计的人,都是有多年工作经验的人,怎么也看过一些设计的书的,没有代码融会贯通,很难往上提高层次。至于工作几年,没什么经验的人来说,就更加难理解,很容易陷入泛泛。我认为设计这种东西是这样的:codding-阅读-应用-思考,反复以上。

4.很多牛人,看不上楼主写的东西。菜鸟初哥又不大关注。所以出现了不卖座的现象。

厚积而薄发,与楼主共勉!



你说的有些不敢苟同,有些深有体会,回复见下:
引用
我花了40多分钟,过了一下楼主的书
再次感到无语,“对OO的领会和运用,岂是两三年就能弄懂的!”再次重申一下,我不知道您这么快看了多少?我没有将全部示例来自我自己的项目,是由于觉得项目的示例虽好,但是讲述起来太过麻烦,不够精练,但是其中一些示例却是我我具体项目的真实经历,例如装饰器模式。
引用
你加入了很多新的东西,比如什么泛型、enum、hibernate注解、ioc、aop等新的内容
对不起,请认真看完我的书籍再说,我的书籍不是一本语法书籍,也不是一本JLS书籍,这方面介绍很少,示例代码有用到这方面,只是稍微辅助说明而已,并为作为语法解析,至于hibernate注解等等,却全未说明,像enum或者annotation是在解释我的内容时,结合我的意图重点说明,比如enum,难道Java1.4就不能使用了?所以我指出java enum的本质,却未详细阐述enum的语法,以及如何使用,其他的,请您看完再说。
引用
很多牛人,看不上楼主写的东西。菜鸟初哥又不大关注。所以出现了不卖座的现象。
卖不卖座,不是我的关注,是的Java eye上有很多牛人,我周围也有很多牛人,不乏工作10年有余,架构师一大片一大片的,他们很多技术上等等都是我们认可的,但是尽管在这样的环境中,我们出现的问题依然如此,在中国,很少看到有人真正会使用OO进行开发的,即便是他们,是很少,不是全部没有。

很多人自以为会了一点设计模式的故事,自己完全掌握了设计模式,如果你没有OO的眼光,设计模式你是永远不会使用的,你会了OO设计,那么模式就是很自然的事情,模式也就不再重要了,这也是为什么在eric evans的DDD设计一书中,使用模式只是很小一章。
不要40分钟就想把OO完全理解了,这种神人比较少见,作为国外的大师,我只记得他们说“他们花了20年才在这上面走出了一步”,mf也感概,“eric是为数不多的能够快速给复杂领域建模的专家”。这里不是打击您(或许,比一般人,你是老鸟,不管怎样,时间上还是水平上,如果你真正学会了OO的眼光做自己的设计,并且会避免OO本身的问题,那么您很厉害了,否则,自诩或者时间,我都不认为如是也!),只是这里在评论浮躁问题,您正好撞在枪口上了,不好意思。

引用
你这本比之head first design pattern,有什么出彩之处
head first design pattern我是写在推荐书里的,确实是一本好书,其实在第一章我在解释模式定义时,我就指出了,为了回答他们指出普遍的模式定义,我给出了我的回答,请参详。这本书或许是圣经,自是不敢比,只是人无完人,书无完书,我的书籍比它多的是一些流行的概念,OO的不足,如何使用OO的眼光分析这些问题(这也是书籍的重点,我不是只在歪歪设计模式,我是歪歪这个),我的书籍对这些常用的模式纵向扩展了很多,把大家经常能在J2EE开发过程中遇到的常用模式也综合进来了,这便是我的亮点。

引用
厚积而薄发,与楼主共勉
先生说的是,我们大家都应该记在心里。

末了,关于卖座,再歪歪两句,我看见下载次数很多,却未见犹如您老人家如此花时间指正的,这是我的关注点,还是非常感谢您的回复!
14 楼 logicgate 2011-05-05  
redhat 写道
最近写了一本书,免费放在网上(http://redhat.iteye.com/admin/blogs/1007884)供大家讨论,两个星期过去了,没有任何人反馈。作者翻看了中国人写的几本关于设计模式的书籍,感慨万千,有的没有参考书籍和文献,有的一些概念完全讲错了(例如IoC,老是只和实例化撤在一起),几乎清一色没有严谨论述,不知道看完对OO能理解几分,和国外的几本书籍相去甚远。

呵呵,好像很多新书的作者都喜欢这样评论以前同类书籍。你确定下一本设计模式书的作者不会这么评论你?

写书很好,值得尊敬,如果能不用攻击别人就更好了。不然你在感慨悲哀的同时,自己也成为了悲哀的一部分。
13 楼 haiyupeter 2011-05-04  
    一句话,需要沉淀,不是什么都能够一下就能够出来的,都是需要长时间的沉淀,而且需创新。
    希望楼主的书可以有突破。
12 楼 leibos 2011-05-04  
ite已非当年之je
11 楼 lifeier 2011-05-04  
jjyy,好像自已很厉害。你那个也就算一总结。不用打击别人,别人不比你差。会赚钱的员工才是好员工。
10 楼 kjj 2011-05-04  
以打击别人来抬高自己,本身就很难被人认同!!!
9 楼 Tank03 2011-05-04  
<div class="quote_title">CaryGao 写道</div>
<div class="quote_div">中国目前的大环境下,浮躁是必然的趋势,技术人员无论在待遇还有地位上都得不到重视.你谈论的设计模式很好很优雅,但是现实的情况是你没有办法把牛刀用在杀鸡上.很多公司不需要所谓多么优雅的代码设计,这就好像你在落后的乡村硬要推广你的别墅高尚生活.国外的技术氛围很好,但你没看到人家起步比我们有多早,很多东西需要时间的积累.</div>
<p> </p>
<p> 说的实在啊!</p>
8 楼 madbluesky 2011-05-04  
这软文写的太简单了点吧
7 楼 peterwei 2011-05-04  
redhat 写道
最近写了一本书,免费放在网上(http://redhat.iteye.com/admin/blogs/1007884)供大家讨论,两个星期过去了,没有任何人反馈。作者翻看了中国人写的几本关于设计模式的书籍,感慨万千,有的没有参考书籍和文献,有的一些概念完全讲错了(例如IoC,老是只和实例化撤在一起),几乎清一色没有严谨论述,不知道看完对OO能理解几分,和国外的几本书籍相去甚远。

难道中国技术设计人员都如此浮躁?那些OO的大师们,没有一个是没有经过数十年如一日的历练才造就的,中国人都想在一两年或者甚至一个下午把设计模式和OO搞懂,是太聪明了还是太愚昧了?

大家看到技术,往往向技术扑过去,觉得会使用spring,Android就很了不起,可惜看看写的代码,就明白他们还没有理解为什么,也不知道真正能作什么就开始,实用这些技术写的代码,避免重复和扩展性,可伸缩性始终是个遥不可及的神话。

唉,浮躁的社会,每一个技术人员学习两年开发和技术都想爬向管理,我们中国永远不会出现和理解像martin同学,eric evens同学,eric gammar同学等这样的人才。设计方面的经验和技巧,对OO的领会和运用,岂是两三年就能弄懂的!

没事歪歪了几句,惹得多数开发人员不高兴了,先在这里诚挚地道歉了!

首先我要为楼主的行为叫好,虽然不大卖座,但还是非常积极的行为的。

关于浮躁,不想多说,中国的大环境如此。

我花了40多分钟,过了一下楼主的书。发表一下个人愚见。好的地方就不多说,说一下我认为不大好的地方:

1.做为设计的老鸟,我想大家多多少少都读过设计模式的书。但大多数设计模式的书都是比较泛泛,缺少实际项目中的例子,不好理解。而比较好的java设计模式的书,毕定是head first design pattern.搭配head first ooad来看,是提高内功的比较好的方法。从你的书中,我也看到很多head first系列的影子,想必你也一定研究过。那么你这本比之head first design pattern,有什么出彩之处?

2.你加入了很多新的东西,比如什么泛型、enum、hibernate注解、ioc、aop等新的内容。好的方面是有新的东西,但坏的方面也比较明显,容易显得太杂,设计这种东西,还是简单点,容易理解的好。毕竟东西一多,人容易分心,吸收的思想反而不好。

3.还是缺少实际开发中的例子,国外的很多书也是如此,不单你的。一切都没有比落地的代码更能说明设计模式的思想。毕竟设计的人,都是有多年工作经验的人,怎么也看过一些设计的书的,没有代码融会贯通,很难往上提高层次。至于工作几年,没什么经验的人来说,就更加难理解,很容易陷入泛泛。我认为设计这种东西是这样的:codding-阅读-应用-思考,反复以上。

4.很多牛人,看不上楼主写的东西。菜鸟初哥又不大关注。所以出现了不卖座的现象。

厚积而薄发,与楼主共勉!
6 楼 yyqhs 2011-05-04  
楼主说得好,我要把楼主写的设计模式分析下下来好好学习学习,我做J2EE的,我觉得设计、架构才是J2EE的核心,不过我菜鸟,估计没法给楼主提什么建议。
5 楼 redhat 2011-05-04  
CaryGao 写道
中国目前的大环境下,浮躁是必然的趋势,技术人员无论在待遇还有地位上都得不到重视.你谈论的设计模式很好很优雅,但是现实的情况是你没有办法把牛刀用在杀鸡上.很多公司不需要所谓多么优雅的代码设计,这就好像你在落后的乡村硬要推广你的别墅高尚生活.国外的技术氛围很好,但你没看到人家起步比我们有多早,很多东西需要时间的积累.


其实我们现在最缺的就是这类技术人才,记起我们很久之前做过的一个项目,使用贫血模型设计复杂领域的问题,早就得结果就是service写了一些逻辑,然后大量的逻辑写在pl/sql上,号称是速度快了,但是,花了那么大的代价维护,加之重复的代码,拿出1/10的钱花在硬件上完全可以解决所有问题(当然没有测算过,一个函数使用pl/sql是快了,但是几万个pl/sql写的逻辑真的比java实现的逻辑快吗?如果一两个处理数据出了问题,我们可以专门为其实现更快的方式——使用pl/sql,这里不再讨论),后来另外一家公司要我们的代码,但是要使用DB2,结果就是根本不可能使用,因为我们大概500左右核心的pl/sql包,有人拿了其中2个packages做重写,写了2个礼拜才重写完,里面的错误不计其数。

相信现在这样的代码在电信/金融保险等领域出现很多(使用贫血模型,大量逻辑都是pl/sql或者其他存储过程实现的)。

国外没有看见在60-70年代,大多数开发人就想做个管理人员发大财,只是我们目前确实太浮躁了。

另外,你说的对,杀鸡用牛刀,其实不是杀鸡用牛刀,是杀牛用牛刀,但是老板不懂,往往告诉你,那是鸡,不是牛。
4 楼 CaryGao 2011-05-04  
中国目前的大环境下,浮躁是必然的趋势,技术人员无论在待遇还有地位上都得不到重视.你谈论的设计模式很好很优雅,但是现实的情况是你没有办法把牛刀用在杀鸡上.很多公司不需要所谓多么优雅的代码设计,这就好像你在落后的乡村硬要推广你的别墅高尚生活.国外的技术氛围很好,但你没看到人家起步比我们有多早,很多东西需要时间的积累.
3 楼 redhat 2011-05-04  
yangyi 写道
这标题打击面也太大了,改一下比较好,像您的书里的知识虽然有用,说实话也没有超出google的范围,和原创性的原理,方法,工具比,还是不及的。单从软件工程的角度也是这样,比如Martin Fowler同学,Eric Evans同学,Eric Gammar同学。当然即使是他们也不需要迷信。为什么呢?因为软件工程属于工程管理的范畴,并不是纯粹的数学逻辑,没有完全的对与错,只是一些方案或方法论的集合

看来你没有仔细看完书籍,虽然讲的全是老掉牙的设计模式,我承认任何人讲这些设计模式都是拿前人总结的那23个在说,“网上可以搜到?” 这句我颇有异议:
1.诚然讲的是老掉牙的设计模式,我从OO的眼光来看它们,我没发现每一个和别人写的相同,包括我分析问题的方式。
2.我扩展了一些设计模式,不管是讲解还是把它们综合,比如像State模式,给出了Enum方式的State模式,我认为你都没办法把它们抄回来。
3.我在文章的结尾对OO设计的看法,请问您,这些您去哪里抄写去,哪里可以google到?

请不要读GoF写的23个模式设计,就告诉他们:“你们写的我们早就可以找到,因为你们就是把我们大家OO开发的一些解决方案综合起来,我们大家早就告诉你们四个人了!”

中国人写书的悲哀在于,要么把别人的书完全抄过来做些低级的修改,要么总是臆想别人写书就是把书抄过来,随便做些低级的修改。
2 楼 yangyi 2011-05-04  
这标题打击面也太大了,改一下比较好,像您的书里的知识虽然有用,说实话也没有超出google的范围,和原创性的原理,方法,工具比,还是不及的。单从软件工程的角度也是这样,比如Martin Fowler同学,Eric Evans同学,Eric Gammar同学。当然即使是他们也不需要迷信。为什么呢?因为软件工程属于工程管理的范畴,并不是纯粹的数学逻辑,没有完全的对与错,只是一些方案或方法论的集合
1 楼 redhat 2011-05-04  
发了总觉得有点不妥,再道歉!

相关推荐

Global site tag (gtag.js) - Google Analytics