`
hatedance
  • 浏览: 59691 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

CodeComplete读后感之隐喻篇

阅读更多
本来我是不打算看这个《代码大全》的,同理,也不想看《effective java》的。总觉得我的目标是做个架构师,做设计。这2本书显然是以coder为对象的。
不知道为什么,我还是决定拿起来随便看看。才看了个头,就觉得很值了。

metaphor,直译就是隐喻。说实话,咱们中文里似乎以前不怎么用这个词,还是译成比喻比较通俗。作者真的是看过很多书,他例举了很多其他大师对软件开发的比喻:
引用

Fred Brooks says that writing software is like farming, hunting
werewolves, or drowning with dinosaurs in a tar pit (1995). David Gries says it’s a science (1981). Donald Knuth says it’s an art (1998). Watts Humphrey says it’s a process (1989). P.J. Plauger and Kent Beck say it’s like driving a car (Plauger 1993, Beck 2000). Alistair Cockburn says it’s a game (2001). Eric Raymond says it’s like a bazaar (2000). Paul Heckel says it’s like filming Snow White and the Seven Dwarfs (1994).

种田,打猎,艺术,过程,开车,游戏,买卖,白雪公主和7个小矮人,以上海阔天空的比喻都对我不起任何共鸣和产生实质帮助。

接着作者说出了我认为对我最有价值的比喻:建筑。
太对了,开发软件跟建造房子太相像了!!!
理由如下:
1) 所谓的design pattern是源自一位建筑师的思想;
2) 软件开发里用到的词汇:build,construction,architecture,...,源自建筑领域;
3) 造狗屋和造摩天大楼的区别,非常类似开发小软件和大规模软件的区别;
...
一个好的比喻,能让初学者事半功倍,迅速理解软件开发的本质,能在发生问题时循着正确的方向迅速找到答案。我自己之前对软件开发的比喻是雕塑,绘画,类似Donald Knuth的art.但现在发现,建筑是目前为止最好的metaphor.
分享到:
评论
34 楼 hatedance 2009-07-01  
elinor 写道
我才看了一点点.敢问lz是看的英文原版的吗?

现在看了些英文原版的之后,才发现,中国有些书翻译的确实不好.

是的。最近几年学英语的努力大过学技术本身了。
33 楼 elinor 2009-06-30  
我才看了一点点.敢问lz是看的英文原版的吗?

现在看了些英文原版的之后,才发现,中国有些书翻译的确实不好.
32 楼 surpass 2009-06-28  
treblesoftware 写道
架构师来自最好的程序员。


名词也不重要,软件行业起步比较晚,COPY别的行业的名词也算很正常哦。
如果架构师连一个方法都写不好,连一个类都写的不能重构,那还怎么架构呢?
就跟经济学一样,先学微观,在学宏观。只有微观好了,才能步全大局呀。对吧?

完全同意,我就吃这样的所谓架构师的黄连。还在水深火热中的人。。。。。
31 楼 treblesoftware 2009-06-27  
架构师来自最好的程序员。


名词也不重要,软件行业起步比较晚,COPY别的行业的名词也算很正常哦。
如果架构师连一个方法都写不好,连一个类都写的不能重构,那还怎么架构呢?
就跟经济学一样,先学微观,在学宏观。只有微观好了,才能步全大局呀。对吧?
30 楼 happyforever82 2009-06-25  
在"造房子"的过程中, 你可以很直观的看到 房子现在是什么样了.
而"写软件"的过程中, 虽然你可以写报告, 看代码, 单元测试, 但没到可以交出一份差不多的项目之前, 谁也不知道最终它是个什么情况.

如果"造房子"的过程中, 需要 添加/修改/删除 掉一些东西, 拿个模型一比就知道会造成哪些后果.
而"写软件"的时候...拿到或者修改一些东西所"可能"带来的后果...这个就不用我说了.
29 楼 fkpwolf 2009-06-25  
维特根斯坦说过,好的隐喻胜过千言万语(大概如此,原话忘了)

null=sex 写道
CodeComplete这本书是我在写代码最疯狂的时候看完的,共鸣感真得很大,至于提到的隐喻,根本没留意到,至今还在推荐这本书给新人看。
DesignPattern这本书是做设计最多的时候看的,看完就把书扔掉了,基本上和江太上皇的三个代表一样的忽悠,通篇的比喻和毫无说服力的设计策略只能说明作者是IT届的余秋雨。

这是一个充满邪恶,欺骗,异常的外部世界,只有充满质疑,理想和自信的人才能真正成为软件架构师,一根筋(单线程)的脑袋,还是适合去炒股票/关系型的商业交易专家


说的好啊

28 楼 null=sex 2009-06-25  
CodeComplete这本书是我在写代码最疯狂的时候看完的,共鸣感真得很大,至于提到的隐喻,根本没留意到,至今还在推荐这本书给新人看。
DesignPattern这本书是做设计最多的时候看的,看完就把书扔掉了,基本上和江太上皇的三个代表一样的忽悠,通篇的比喻和毫无说服力的设计策略只能说明作者是IT届的余秋雨。

这是一个充满邪恶,欺骗,异常的外部世界,只有充满质疑,理想和自信的人才能真正成为软件架构师,一根筋(单线程)的脑袋,还是适合去炒股票/关系型的商业交易专家
27 楼 tuti 2009-06-25  
phpxer 写道
tuti 写道

Alistair Cockburn的《敏捷软件开发》也有一些隐喻,传播还不太广,非常富有洞见,有兴趣可以去看看那本书的几篇附录。

当楼主觉得"建筑"隐喻的不足,并能发展出属于个人的“软件开发”隐喻的时候,也就是楼主更为精进的时候。


对《敏捷软件开发》中的那些附录,也曾看过,但是不曾记得有什么印象很深刻的隐喻。但是《代码大全》中有关建筑的隐喻却印象很深刻。


再去看看
26 楼 phpxer 2009-06-24  
tuti 写道

Alistair Cockburn的《敏捷软件开发》也有一些隐喻,传播还不太广,非常富有洞见,有兴趣可以去看看那本书的几篇附录。

当楼主觉得"建筑"隐喻的不足,并能发展出属于个人的“软件开发”隐喻的时候,也就是楼主更为精进的时候。


对《敏捷软件开发》中的那些附录,也曾看过,但是不曾记得有什么印象很深刻的隐喻。但是《代码大全》中有关建筑的隐喻却印象很深刻。
25 楼 night_stalker 2009-06-24  
文学点缀一下可以获得欢乐的效果 …… 但是没啥实质内容。
24 楼 hatedance 2009-06-24  
发现我很喜欢CC的作者的比喻,比如:
1 需求就像水,只有冻结以后才容易在其上面构建东西。
2 看没有文档/注释的代码,就像看没有字幕的外语电影。(我自己乱译的,译得不好)

不知道有多少人跟我一样,喜欢用隐喻/比喻去理解软件?
23 楼 抛出异常的爱 2009-06-24  
不喜欢隐喻........
因为隐喻只对外国人有用
他们用的专业名词太长太难记


我们用的是中文.
本身选词已经含有意义了
望文生意就可以了...不要乱用隐喻


另造狗窝与造软件是本质上不同的活计
用建筑业的名词主要还是历史上的失误
千万不要用建筑学或机械工程去套软件工程

根本上没意义...
常说的没有银弹也是指软件不能用已知的工程学方式来管理.
22 楼 phpxer 2009-06-24  
我读了很多好书,但其实理解得不好。可能跟读得太多太快太随意有关系。

经验不足可能也是其中一个原因。
21 楼 lg_techie 2009-06-23  
当时看《代码大全II》时候,还专门查了什么隐喻,其实我们平时在开发中,在与客户的沟通交流过程中很多时候都用到了隐喻!!
20 楼 tuti 2009-06-23  
hatedance 写道

总觉得我的目标是做个架构师,做设计。
...
现在发现,建筑是目前为止最好的metaphor.


我想这就是为什么楼主觉得这个隐喻好的原因。

《代码大全》的隐喻都比较老,大家基本都知道。
Alistair Cockburn的《敏捷软件开发》也有一些隐喻,传播还不太广,非常富有洞见,有兴趣可以去看看那本书的几篇附录。

当楼主觉得"建筑"隐喻的不足,并能发展出属于个人的“软件开发”隐喻的时候,也就是楼主更为精进的时候。
19 楼 iaimstar 2009-06-23  
hatedance 写道
ls批评得对。我没看过effective java,也没看过effctive c++。现在一年平均都看不到3本书。最近几年主要看的书也就是DDD和martin fowler的几本书而已。代码大全也未必今年能坚持读完。

PS,虽然我混得不算太差,但很“7年砖工”是个好id,我要定了。


别听别人瞎扯扯
不同的人读书的体会不同,没写过几行代码的读了设计模式也是白读,当然某些特定天才除外(确实见过几个变态)
更加丰富的阅历和经验后,读书的感觉是不同的,即便是读过的书回头再看理解也不一样,读书不在早晚,只要读了后有收获,读这个书就不晚。

有的时候读书,啃不动还继续啃,啃完完全没有感觉,那啃的再早也没有用
18 楼 logicgate 2009-06-23  
写代码只能慢慢让你的能力产生量变,多读好书才能让你更快的质变,完成从砖工到建筑师的飞跃。
17 楼 hatedance 2009-06-22  
ls批评得对。我没看过effective java,也没看过effctive c++。现在一年平均都看不到3本书。最近几年主要看的书也就是DDD和martin fowler的几本书而已。代码大全也未必今年能坚持读完。

PS,虽然我混得不算太差,但很“7年砖工”是个好id,我要定了。
16 楼 whaosoft 2009-06-22  
[quote="hatedance]
接着作者说出了我认为对我最有价值的比喻:建筑。
太对了,开发软件跟建造房子太相像了!!!
理由如下:
1) 所谓的design pattern是源自一位建筑师的思想;
2) 软件开发里用到的词汇:build,construction,architecture,...,源自建筑领域;
3) 造狗屋和造摩天大楼的区别,非常类似开发小软件和大规模软件的区别;
...
一个好的比喻,能让初学者事半功倍,迅速理解软件开发的本质,能在发生问题时循着正确的方向迅速找到答案。我自己之前对软件开发的比喻是雕塑,绘画,类似Donald Knuth的art.但现在发现,建筑是目前为止最好的metaphor.[/

-----------------------------------------
给你鼓个掌
15 楼 徐风子 2009-06-21  
hatedance 写道
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

想直接做架构?我已经搞软件搞了7年了,老人一个。

7年了,真的不应该才看《代码大全》的,而且没看过《effective java》的。

相关推荐

    codecomplete代码大全 codecomplete代码大全 codecomplete代码大全

    codecomplete代码大全 codecomplete代码大全 codecomplete代码大全

    Code Complete, 2nd Edition.pdf

    《Code Complete, 2nd Edition》由Steve McConnell编写,是软件开发领域内一本备受赞誉的书籍,它被广泛认为是软件构建方面的经典之作。 首先,标题和描述中提到的“Code Complete, 2nd Edition.pdf”和“完备的...

    code complete 英文第二版,PDF格式

    标题中提到的“Code Complete 英文第二版,PDF格式”指的是Steve McConnell编著的软件开发领域经典著作《代码大全》的英文第二版的电子书版本。这部书被广泛认为是软件工程和编程实践方面的权威指导书,介绍了编写高...

    code complete2.mobi

    code complete2.mobi

    Code Complete (2nd)

    ### 《Code Complete (2nd)》核心知识点详解 #### 一、书籍概览与适用对象 《Code Complete (2nd)》是一本由Steven C. McConnell编写的经典软件工程书籍,出版于2004年。该书是微软员工的一门必读书籍,旨在帮助...

    code complete(2nd Edition)

    《Code Complete(第二版)》是一本在软件开发领域内被广泛推崇的经典之作,由史蒂文·麦克康奈尔(Steven C. McConnell)撰写。本书深入探讨了软件构建过程中的核心理念、实用技巧和最佳实践,对于软件工程师、项目...

    Code Complete

    ### Code Complete:软件构造的最佳实践 #### 书籍概述 《Code Complete》(代码大全)第二版是由Steve McConnell编写的经典著作,由Microsoft Press出版于2004年6月9日,ISBN为0-7356-1967-0,全书共960页。这...

    code complete 2 english

    根据提供的文件内容,以下是关于《Code Complete 第二版》的相关知识点,这本书由Steven C. McConnell所著。 1. 优秀软件工程实践与普遍实践之间的差距非常大,在所有工程学科中可能是最宽的。这一点强调了技术知识...

    Code Complete 代码完全英文原版

    Code Complete 2nd edition. 代码完全英文原版第二版

    Code Complete代码大全

    ( Code Complete(代码大全)中文第二版。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    代码大全 Code Complete 中文版 软件开发人员必备工具书

    代码大全 Code Complete 中文版 软件开发人员必备工具书

    Code Complete 代码大全2

    不是代码库 只是中译为代码大全 英文书名叫Code Complete 这是讲软件方面的书 很经典

    code complete 中提到的各个checklist

    ### Code Complete 中提到的各个Checklist #### 一、概述 《Code Complete》是一本经典的软件工程书籍,由Steven C. McConnell撰写。本书通过一系列详尽的检查清单(checklists),帮助开发者在软件生命周期的不同...

    Code Complete 2nd(代码大全 英文版)

    代码大全 英文版,code complete second edition

    Code Complete 2nd_代码大全_completecode_CodeComplete_

    Code complete 2 Edition

    Code Complete第二版(中文版)2/8

    Code Complete第二版(中文版),共8部分。下载完全后解压即可

Global site tag (gtag.js) - Google Analytics