隐喻--启发 更深刻的理解

隐喻--启发 更深刻的理解

早晨一上班就想起了隐喻, 不知道是不是我那位找到工作的缘故,世界上有的东西是不可预测的,但又是可以隐隐约约可见的,记得在敏捷软件开改里有这么一个概念(MetaPhor),又想起我的毕设,不值得一提。我觉得这个概念有点像那个探险游戏,就是不知道下一步做什么,但知道下一步一定是找某个东西,才知道将来要做什么,就这样一步一步,最终完成探险。
 
软件隐喻更像是一束搜索灯光,而不是一张地图,它并不会告诉你去哪里寻找答案;它只给你启发,教你如何寻找答案,而不是像数学算法一样规定出到哪里找答案。一个公式是一套完整建立的、进行某一些任务的规则。它的结果是可预测的、确定的,并不取决于运气。公式会告诉你直接从 A 点走到 B 点,中间不准绕路,不准随意顺便访问C、D、E 或 F 点,也不准停下来闻一下玫瑰花香或者喝杯咖啡什么的,一切必须按规定来。启发是一种帮助你寻求答案的技术。它的结果往往和运气有关,因为它只告诉你如何去找,而并未告诉你应该找到些什么。它不会告诉你怎样直接从点 A 到点 B.甚至很可能它根本就不知道点 A 和点 B 在哪里。事实上,可以认为启发是一个穿着外套的公式。它往往不可预测,更富有趣味,不会保证一定会发生或不会发生什么。
 
公式和启发之间的区别是微妙的,这两个例子或许会说明一些问题。它们之间的主要区别是:它们与答案之间的直接程度。公式给予直接指令;而启发则告诉你该怎样找到这些指令,或者至少告诉你到哪里寻找它们。
 
如果有一套指令告诉你该如何解决程序中的问题,这当然会使编程变得很容易,而且结果也可以预测了。但是编程科学目前还没有那样发达,也许永远也不会。编程中最富于挑战性的问题便是将问题概念化,编程中许多错误往往都是概念性错误,因为每个程序在概念上都是独特的,所以创立一套可以指导每一个问题的规则是非常困难,甚至是不可能的。这样,从总体上知道该如何解决问题,便几乎和知道某一特定问题的答案一样重要了。
 
隐喻仅仅是启发,而不是公式,因此,它更倾向于比较随便,无拘无束。隐喻通过把软件开发与你所熟知的事情联系在一起,从而使你对其有更深刻的理解。一些隐喻要好于其它隐喻。把软件创建与建造建筑物类比,表明开发软件前要精心准备,并表明了大规模项目与小规模项目之间的差别。认为软件开发实践是智能工具箱中的工具进一步表明,每个程序员都有许多自己的工具,没有任何一种工具是万能的。为每件工作选择合适的工具,是成为一个优秀程序员的首要素质之一。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值