论坛首页 入门技术论坛

CodeComplete读后感之隐喻篇

浏览 8621 次
该帖已经被评为新手帖
作者 正文
   发表时间:2009-06-10   最后修改:2009-06-10
本来我是不打算看这个《代码大全》的,同理,也不想看《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.
   发表时间:2009-06-10  
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。
0 请登录后投票
   发表时间:2009-06-10  
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

想直接做架构?我已经搞软件搞了7年了,老人一个。
0 请登录后投票
   发表时间:2009-06-10  
hatedance 写道
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

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


现在架构师,高程一类的区分很模糊。 小公司尤其如是。
0 请登录后投票
   发表时间:2009-06-10  
hatedance 写道
icefishc 写道
又一个想直接做架构的。
做Java真危险, 要是碰上这样的架构师岂不麻烦。

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


说实话...你要干了7年了才发现这些(而且从别人的书中)...真的要为你汗一个哈...
0 请登录后投票
   发表时间:2009-06-21  
代码大全确实是一本让人很爽的书,虽然书很厚,但可以让人废寝忘食读下来,或者找自己感兴趣的章节看。床头必备书
0 请登录后投票
   发表时间:2009-06-21  
hatedance 写道
太对了,开发软件跟建造房子太相像了!!!
理由如下:
1) 所谓的design pattern是源自一位建筑师的思想;
2) 软件开发里用到的词汇:build,construction,architecture,...,源自建筑领域;
3) 造狗屋和造摩天大楼的区别,非常类似开发小软件和大规模软件的区别;
...
一个好的比喻,能让初学者事半功倍,迅速理解软件开发的本质,能在发生问题时循着正确的方向迅速找到答案。我自己之前对软件开发的比喻是雕塑,绘画,类似Donald Knuth的art.但现在发现,建筑是目前为止最好的metaphor.



饿。。。造房子和造软件都属于项目工程,当然象了。。。
0 请登录后投票
   发表时间:2009-06-21   最后修改:2009-06-21
大家有没有想过,摩天大楼重复度非常的高,每层几乎都一样的 …… 这个工程里面能动脑子发挥创造力的只有给外形画草图的那个,打下手的和工人们做的事情都机械重复的很,而且砖块工人(尤其是垒了7年砖的)转职当建筑师的几率非常的渺茫 ……

ps:以上观点只对建筑行业而发,与本帖主题无关。
0 请登录后投票
   发表时间:2009-06-21  
night_stalker 写道
大家有没有想过,摩天大楼重复度非常的高,每层几乎都一样的 …… 这个工程里面能动脑子发挥创造力的只有给外形画草图的那个,打下手的和工人们做的事情都机械重复的很,而且砖块工人(尤其是垒了7年砖的)转职当建筑师的几率非常的渺茫 ……

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


呵呵,未免少了点吧。

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

就是一层来看:玻璃工、泥水工、管子工、电工各司其职,因为更细分才会出现重复度高。
0 请登录后投票
   发表时间:2009-06-21  
造房子和写软件还是有很大区别的
写软件很适合小而精的团队,而造房子动辙几百人,要是摩天大楼,估计建筑师就有一打。
0 请登录后投票
论坛首页 入门技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics