0. 隐喻的重要性
通过把不熟悉的东西隐射到熟悉的东西,对不太熟悉的东西产生更深刻的理解,这种方式叫做建模,也是对概念进行内在化和抽象。抽象的程度越大,应用的范围也就越广。
1. 软件隐喻的使用
软件的隐喻更像是 Heuristic(启发法) 而不是 Algorithm(算法), 书中只对启发法做了概括和举例,并没有真正概念性的解释什么是启发法,感兴趣的朋友可以看看Heuristic 的维基百科。
Heuristic(启发法) 和 Algorithm(算法) 的差别:
- 算法直接给你解决问题的指导
- 启发式方法告诉你如何寻找这些指导信息
善于使用隐喻的人对编程的理解也会更好,并能更快的写出更好的代码
2.常见的隐喻
隐喻 | 优点 | 缺点 |
---|---|---|
写作代码 | 适用个人规模和小型项目 | 1. 只涉及到个人活动 2. 写作的试错不适合表示软件 3. 低估了软件修改的时间 |
培植系统 | 能够反映出增量技术 | 暗示人们无法对软件开发的过程和方式进行直接控制 |
系统成长 | 反映出软件开发的 增量、迭代、自适应等特性同时未做过多承诺 | |
建造软件 | 体现了软件开发的多个阶段 |
我们不能百分百的依赖于某个方法论,你需要不同的方式去看待世界,同时也要学会组合各个隐喻