第二章是关于算法和数据结构的,一开始提出了三个思考的问题,提并不算难,只要仔细思考就能得出。我觉得其中重要的是,数据决定程序结构。恰当的数据视图实际上决定了程序的结构。我们常常可以通过重新组织内部数据来使程序变得小而美。 发明家悖论:更一般性的问题也许更容易解决。程序员在节省空间方面无计可施时,将自己从代码中解脱出来,退回起点并集中心力研究数据,常常能有奇效。数据的表示形式是程序设计的根本。
下面是退回起点警醒思考的几条原则:
使用数组重新编写重复代码。冗长的相似代码常常课可以使用最简单的数据结构--数组来更好的表述。
封装复杂结构。当需要非常复杂的数据结构时,使用抽象术语进行定义,并将操作表示为类。
尽可能使用高级工机具。超文本,键值对应,电子表格,数据库,编程语言等都是特定问题领域中的强大工具。
从数据得出程序的结构。在动手编写代码之前,优秀的程序员会彻底理解输入,输入和中间数据结构,并围绕这些结构创建程序。