《代码大全》中的Metaphors

Metaphor大概可以翻译成隐喻,在software construction中提供一个“启发式”的思路,书中的举例说,metaphor的意义,大概就像类似日心说这样的模型一样。
 
Metaphor和Algorithm不同,Algorithm更具操作意义,而Metaphor则更一般化。可以说Metaphor, Pattern, Algorithm都是对于开发中可以被复用的部分的不同层次的抽象,他们可以适应不同层次上的具体问题的变动。
 
Metaphor具有更多的,是思路上的意义,通过生活中更为熟悉的东西,来对比的认识软件开发,我们很难找到那种具有完美一一映射的形势的Metaphor,但是不同的metaphor,可以给我们带来不同思路,不同的思维方式,最后认识虽然不同,但是对于帮助理解来说,可以很清晰的了解到目标问题的关键的特点,这就是为什么Metaphor在《代码大全》十分重要了。
 
下面列举部分Metaphors
1)Penmanship
书写代码就像书写新建一样,你不需要作很形式化的准备,按照你的感觉写就可以,不过这样的书写更多是一个人的开发,而不是规模化的(写信不易修改,却不难完成,而软件很容易做一个修改,但是完成它却很难很难...)
 
2)Software Farming: Growing a System
想种田一样,一点一点的来完成你的软件,春天播种,秋天收获,不过这似乎很难把握一个体系复杂的系统,对于可以在设计时就把系统划分成一块一块的软件来说,似乎和这样的metaphor更融洽。
 
3)Software Oyster Farming: System Accretion
像培育珍珠一样来开发软件,培育珍珠需要你一点一点的向贝壳里加入一些东西,最后成长成美丽的珍珠。这个启示我们增量的来开发软件,也是一点一点的来完成,不过和种田不一样的是,这个不是把软件平行的划分的很多块。我们从一个简单的框架开始,然后不断给软件加入新的设计,新的代码,逐步走向最后的软件。
 
4)Software Construction: Building Software
Building,建造,像造房子一样来开发软件(注意不是建造一个狗窝大小的房子),这是一个很具体的metaphor,你要考虑建造时顺序的部分和并行的部分,考虑整体的结构和细节的问题,考虑怎样来确保安全等等,和软件的构建有着十分相似的地方,应该这个也是软件作为工程的起源吧。
 
5)Applying Software Techniques: The Intellectual Toolbox
就像IDE一样,要考虑如何把成熟的技术结合起来。
 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

socratescli

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值