关键的“构建”决策1
- Sapir-Whorf假说:你思考的能力取决于你是否知道能够表达该思想的词汇。
- 成功编程的一个关键就在于避免随意地变化,这样你的大脑可以专注于那些真正需要的变化。
- 程序员应首先决定他要表达的思想是什么,然后决定如何使用特定语言提供的工具来表达这些思想,而不是将思想限制于”语言直接支持的那些构件“,因为如果语言工具是初级的,那么程序员的思想也是初级的。
- 如果你使用的语言缺乏你希望用的构件,那就应该试着去弥补它。发明你自己的编码约定、标准、类库以及其他改进措施。
- 大项目的架构只是解决了系统级的事项,而特意把大部分的设计工作留到构建阶段去做。
设计中的挑战1
- 设计是一个险恶的问题,即只有通过解决或部分解决才能被明确的问题。暗示你必须首先把这个问题“解决”一遍以便能够明确地定义它,然后再次解决该问题,从而形成一个可行的方案。
- 任何规模的程序开发不可能用一种不会犯错的方式从需求说明中推导出设计。
- 设计是个没有章法的过程,因为在此过程中你会多次误入歧途,并且优、劣设计之间的差异往往非常微妙,还因为设计是永无止境的,你很难判断设计何时算是“足够好”了。
- “软件设计”一词意味着去构思、创造或发明一套方案,把一份计算机软件的架构转变为可实际运行的软件。
- 设计者工作的一个关键内容便是去衡量互相冲突的各项设计特性。
- 设计就是确定取舍和调整顺序的过程。
- 设计受到诸多限制。
- 设计是不确定的,一千个人有一千种设计方法。
- 设计是一个探索的过程,而不是保证能产生预期结果的可重复过程。没有任何工具是用之四海皆灵的。
- 设计是在不断设计、试验、修改的过程中演化和完善出来的,不是从谁的头脑中直接跳出来的。
- 好的设计源于对一小批关键设计概念的理解。