读《编程珠玑》
目录
最近从信阅上借了两本书:《编程珠玑》和《代码大全》,这两本书以前都看过的,只是那时经验尚浅,这次阅读属于温故而知新,这里记录《编程珠玑》中一些我觉得比较重要的内容。
第1章 开篇
- 正确的问题。编程活动中,如果能够正确理解并定义了问题,这场战役就成功了90%。什么是问题?问题就是想要的目标状态和目前的实际状态之间的差异,所以要从这几个角度来思考:目标是什么?现状是什么?有哪些约束条件?
- 时间-空间折中与双赢。通常我们会认为时间和空间效率不可兼得,需要做trade-off。但是有时这个假设是不正确的,在某些情况下,减少程序的空间需求也会减少其运行时间。这可能是因为:需要处理的数据变少了,意味着处理这些数据所需的时间也减少了;同时将这些数据保存在内存中而不是磁盘上,进一步避免了磁盘访问的时间。所以,应尽可能寻找时空双赢的方案。
- 简单的设计。Antoine de Saint-Exupéry是法国作家(《小王子》的作者)兼飞机设计师,曾说:“设计者确定其设计已经达到了完美的标准不是不能再增加任何东西,而是不能再减少任何东西”。程序设计亦然。