【美】阿甘斯
第3章 理解系统
2017-04-07
你必须掌握系统的工作原理以及它是如何设计的。在某些情况下,还要知道为什么这样设计。如果你没有理解系统中的某个部分,那么这通常就是出问题的地方。(这不仅仅是“墨菲定律”的问题,如果你不能理解你所设计的系统,你的工作可能会变得一团糟。)
3.1 阅读手册
2017-04-07
如果你是一位工程师,正在调试自己公司的产品,那么你需要读一读内部手册。工程师们设计它是用来做什么的?读一下功能说明以及所有的设计规范,研究一下图表、时序图和状态机。分析它们的代码,还要读一下注释。(是的,读一下注释,这非常重要。)一定要检查产品的设计。查明构建它的工程师们打算用它来做什么(除了用它来赚钱买辆宝马车以外)。
注意,手册上的信息也不可全信。手册(以及那些只想着赚钱买宝马车的工程师们)可能也是错的,很多难以发现的bug就出现在这里。但你仍需要了解他们的想法,哪怕其中有些信息是很难接受的。
3.2 逐字逐句阅读整个手册
2017-04-07
参考设计和样本程序给出了产品的一种使用方式,有时这些就是能获得的全部文档了。但是,在使用这些设计时一定要注意,创建它们的人往往只了解他们的产品,而没有遵循好的设计实践,或者不是为真实应用而设计的(最常见的缺点是不能进行错误恢复)。不要照搬这些设计,如果你没有在开始的时候发现bug,那么将来也会发现。此外,即使是最好的参考设计可能也不会完全符合应用程序的特定需求,而不符合的地方可能就是出问题的地方。当我照搬了朋友的微处理器设计时,就发生了问题,因为他的设计无法处理中