- 最好的设计,就是能适应外界尽可能多的变化,而软件自身的变化要尽可能少。
- 在你的程序中,真正需要关注速度的部分,应该局限于你可以证明的、真正让用户体会到有性能问题的那些部分。对程序的其他部分,最主要关心的还是灵活和简洁,而不是速度。
- 理想情况下,任何系统里的任何信息,都应当只存在一次。
- 某一部分的代码越简洁,未来进行变化的难度就越低。这条法则并不关心整个系统的简洁性,只是谈到了各个部分的简洁性。原因在于,一般的计算机程序已经足够复杂了,没有人可以一次性全面理解它,大家都只能部分逐步了解。
- 降低代码学习难度的方法有很多:简洁的注释,简单的设计,循序渐进的引导,等等。
- 理想的命名应该这样:名字应当足够长,能够完整表达其意义或描述其功能,但不能太长,以免影响阅读。同时,还应当考虑函数、变量等的使用频率。比如,如果有个函数只会在某一行由你自己调用一次(而且这一行没有其他代码),它的名字可以很长。不过,如果某个函数会经常在复杂的表达式中用到,大概就该取个短一些的名字(但还是要足够长,能够描述它的功能)。
- 复杂性是会叠加的,而不是简单的线性叠加。原有功能越多,新增功能的成本就越高。
- 初次发布不应当设定过高的目标,而应当先让程序抛弃了,再持续改进。
- 最受用户喜欢的软件是专注而简洁的,并且始终执着于基本用途。
- 应对复杂性,每个步骤都应该足够小,比如给某个变量取个更好的名字,或是给难看懂的代码增加一些注释。更常见的做法是在每个步骤中把一个复杂的部分拆分成若干个简单的部分。
- 请记住,你自己的精力也是一种资源,必须慎重分配。
- 测试法则:你对软件行为的了解程度,等于你真正测试它的程度。
- 你在测试时真正知道的是,软件的行为是否符合预期,所以,你必须清楚地知道预期的行为。
- 你还必须保证测试程序是准确的。
《简约之美:软件设计之道》学习笔记(四)
最新推荐文章于 2023-07-01 00:41:58 发布