`
hatedance
  • 浏览: 59438 次
  • 性别: 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.
分享到:
评论
14 楼 night_stalker 2009-06-21  
是时候发挥一下狗窝大师的实力了


13 楼 ray_linn 2009-06-21  
night_stalker 写道
做了个狗窝分形,似乎比较像群居生物的地洞,不像盒子大楼。






象地衣。。。。
12 楼 night_stalker 2009-06-21  
做了个狗窝分形,似乎比较像群居生物的地洞,不像盒子大楼。



11 楼 ray_linn 2009-06-21  
night_stalker 写道
小软件5人队,大一点5小队,再大5个大队 …… 摩天大楼无非是结实的狗窝


狗窝是摩天楼的子集吧。
10 楼 night_stalker 2009-06-21  
小软件5人队,大一点5小队,再大5个大队 …… 摩天大楼无非是结实的狗窝分形

随想:

组织军师旅团营连排 5^7 = 78125 人,每人写一千行,一行一块钱,8000万鼓捣半个月就能写出个完整的 win XP 了,还盈余 200 万给营长以上分点油水。

如果引入质量管理,投资加倍,组建影子团队,一一对应的写测试抓虫即可 ……

当然系统是不完备的(潜规则的数列无穷大),人心是非理性的,素质是有分布的,成功与否就看这个系综能不能刚好演化到那个成功的世界里了。

9 楼 幸存者 2009-06-21  
造房子和写软件还是有很大区别的
写软件很适合小而精的团队,而造房子动辙几百人,要是摩天大楼,估计建筑师就有一打。
8 楼 ray_linn 2009-06-21  
night_stalker 写道
大家有没有想过,摩天大楼重复度非常的高,每层几乎都一样的 …… 这个工程里面能动脑子发挥创造力的只有给外形画草图的那个,打下手的和工人们做的事情都机械重复的很,而且砖块工人(尤其是垒了7年砖的)转职当建筑师的几率非常的渺茫 ……

ps:以上观点只对建筑行业而发,与本帖主题无关。


呵呵,未免少了点吧。

只能说明建筑业的行业分工更细,外观设计的只是很小一部分,管线、应力、给水、电梯、造价、质量、电路、火灾这些都是细分的工程师负责的。

就是一层来看:玻璃工、泥水工、管子工、电工各司其职,因为更细分才会出现重复度高。
7 楼 night_stalker 2009-06-21  
大家有没有想过,摩天大楼重复度非常的高,每层几乎都一样的 …… 这个工程里面能动脑子发挥创造力的只有给外形画草图的那个,打下手的和工人们做的事情都机械重复的很,而且砖块工人(尤其是垒了7年砖的)转职当建筑师的几率非常的渺茫 ……

ps:以上观点只对建筑行业而发,与本帖主题无关。
6 楼 ray_linn 2009-06-21  
hatedance 写道
太对了,开发软件跟建造房子太相像了!!!
理由如下:
1) 所谓的design pattern是源自一位建筑师的思想;
2) 软件开发里用到的词汇:build,construction,architecture,...,源自建筑领域;
3) 造狗屋和造摩天大楼的区别,非常类似开发小软件和大规模软件的区别;
...
一个好的比喻,能让初学者事半功倍,迅速理解软件开发的本质,能在发生问题时循着正确的方向迅速找到答案。我自己之前对软件开发的比喻是雕塑,绘画,类似Donald Knuth的art.但现在发现,建筑是目前为止最好的metaphor.



饿。。。造房子和造软件都属于项目工程,当然象了。。。
5 楼 leon_a 2009-06-21  
代码大全确实是一本让人很爽的书,虽然书很厚,但可以让人废寝忘食读下来,或者找自己感兴趣的章节看。床头必备书
4 楼 wg351 2009-06-10  
hatedance 写道
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

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


说实话...你要干了7年了才发现这些(而且从别人的书中)...真的要为你汗一个哈...
3 楼 mathgl 2009-06-10  
hatedance 写道
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

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


现在架构师,高程一类的区分很模糊。 小公司尤其如是。
2 楼 hatedance 2009-06-10  
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

想直接做架构?我已经搞软件搞了7年了,老人一个。
1 楼 icefishc 2009-06-10  
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

相关推荐

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

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

    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部分。下载完全后解压即可

    代码大全 ( Code Complete )

    《代码大全》的英文版名称是 Code Complete: A Practical Handbook of Software Construction。 它获得1993年美国软件开发杂志Jolt大奖,被美国包括MIT在内的十多所大学作为计算机软件学科的教材。 <br>...

Global site tag (gtag.js) - Google Analytics