一旦程序里出现了“无法解决的复杂性”,就说明设计中有些深层次的基本错误。如果问题在这个层面上无法解决,应当回过头看看产生问题的真正原因是什么。
问题复杂,解法不一定会复杂。大多数麻烦的设计问题,都可以用在纸上画图或写出来的办法找到答案。
重新设计的每个步骤都应该足够小,比如给变量取个更好的名字,或是给难懂的代码加些注释。更常见的做法是在每个步骤中都把一个复杂的部分拆分成若干个简单的部分。