《代码大全》学习笔记(2):利用隐喻对编程进行更深刻的理解
来源:互联网 发布:js 字符串数组排序 编辑:程序博客网 时间:2024/06/05 05:15
2.1 隐喻的重要性
重大发现往往是从类比中产生的。通过把一个你所陌生的事物与你所熟知的事物比较,你会对它有进一步的认识,从而形成你对它的独到的深刻理解,这种隐喻方法被称之为“模型化”。
模型的力量在于它能提供生动形象的概念而易被人整个接受。
2.2 如何使用软件隐喻
一个公式是一套完整建立的、进行某一些任务的规则;它的结果是可以预测的、确定的,并不取决于运气。
启发是一种帮助你寻求答案的技术,它的结果往往和运气有关。
公式和启发之间的主要区别是:它们与答案之间的直接程度;公式给予直接指令;而启发则告诉你该怎样找到这些指令,或者至少告诉你到哪里寻找它们。
编程中最富于挑战性的问题便是将问题概念化,编程中许多错误往往都是概念性错误,因为每个程序在概念上都是独特的,所以创立一套可以指导每一个问题的规则是非常困难,甚至是不可能的;这样,从总体上知道该如何解决问题,便几乎和知道某一特定问题的答案一样重要了。
怎样使用软件隐喻的呢?应该用它来帮助你获得关于编程过程的内在理解,利用它们来帮助你考虑编程活动,想象解决问题的更好办法。
2.3 通常的软件隐喻
2.3.1 软件书写:写代码(Writing Code)
几乎有50%的软件开发工作量是在软件最初发行之后才进行的。编写软件,主要工作量集中在初始阶段。在软件创建中,把精力集中于初始阶段往往不如在初始工作完成后,再集中精力进行代码的重新调整工作。
2.3.2 软件播种:生成系统(Growing a System)
你设计一小部分,编码一小部分,测试一小部分,然后在某个时候把它加到系统上,通过小步走,你减少了每次可能遇到的错误。
2.3.3 软件珍珠培植法:系统积累(System Accretion)
增量设计、构造、测试是软件开发的最强有力工具之一。
2.3.4 软件创建:建造软件(building software)
较大的规模和复杂性往往意味着可以产生较大的成果。
2.3.5 实用软件技术:智能工具箱(The Intellectual Toolbox)
把方法和技巧当作工具是很有益处的,因为这样可以使我们对其有一个正确的态度。
2.3.6 复合隐喻(Combing Metaphors)
使用隐喻是一项模糊的事情。
2.4 小结
(1) 隐喻通过把软件开发与你所熟知的事情联系在一起,从而使你对其有更深刻的理解。
(2) 一些隐喻要好于其它隐喻。
(3)把软件创建与建造建筑物类比,表明开发软件前要精心准备,并表明了大规模项目与小规模项目之间的差别。
(4) 认为软件开发实践是智能工具箱中的工具进一步表明,每个程序员都有许多自己的工具,没有任何一种工具是万能的;为每件工作选择合适的工具,是成为一个优秀程序员的首要素质之一。
本章小结:
本章的主题是“隐喻”。
我个人认为,这里的“隐喻”,其实就是一个“模型”的概念。我们可以把很多生活中的东西搬到软件开发中。例如,面向过程和面向对象,瀑布模型、数据挖掘等。善于总结规律,将事物抽象出一个共同的特征,是软件开发人员必备的素质。
- 《代码大全》学习笔记(2):利用隐喻对编程进行更深刻的理解
- [读书笔记] Code Complete 第二章 利用隐喻对编程进行更深刻的理解
- 隐喻--启发 更深刻的理解
- 《代码大全》学习-第2章 用隐喻来更充分地理解软件开发
- 《代码大全》阅读笔记____[第二章] 用隐喻来更充分地理解软件开发
- 【代码大全】第2章 用隐喻来更充分地理解软件开发
- 代码大全2-用隐喻来更充分地理解软件开发
- 代码大全2笔记-第二章-隐喻
- 用隐喻来更充分地理解软件开发——代码大全读书笔记【摘录】
- 代码大全中提到的软件隐喻
- 代码大全之隐喻
- 代码大全-隐喻
- CODE COMPLETE NOTES 代码大全笔记 软件中的隐喻
- 理解dll,lib,cpp,h(很好的东西,对程序理解得更深刻了一些)
- 对String的深刻理解
- 对String的深刻理解
- 对SAP的深刻理解
- 对sed 的深刻理解。
- hdu2831
- 第一辑 回家的路--看不见的财富
- Homework2_2.java
- 人脸检测之Haar分类器
- DOM方式与SAX方式的异同
- 《代码大全》学习笔记(2):利用隐喻对编程进行更深刻的理解
- 自定义实现Hadoop Key-Value
- 8、王爽《汇编语言》笔记_子程序一
- Yii: 如何在CGridView通过Ajax方式刷新数据后执行JS脚本
- SQL定义联合主键
- 开发者使用JasperReport——查询数据库
- powerDesigner15 导入PL/SQL表
- java设计模式之建造者模式
- 2243