编程语⾔通常能提供以下三种⾃动检查的⽅法:
l 静态检查: bug在程序运⾏前发现
l 动态检查: bug在程序运⾏中发现
l ⽆检查: 编程语⾔本⾝不帮助你发现错误,你必须通过特定的条件(例如输出的结果)检查代码的正确性。
静态检查好于动态检查好于不检查。
⿊客派的编程⻛格的缺点: 在已经编写⼤量代码以后才测试它们,将所有的细节都放在脑⼦⾥, 以为⾃⼰可以永远记住所有的代码, ⽽不是将它们编写在代码中,认为 BUG 都不存在或者它们都⾮常容易发现和被修复。
⼯程派的优点: ⼀次只写⼀点点, ⼀边写⼀边测试,记录代码的设想、意图,静态代码检查将会保护你的代码不沦为“愚蠢的代码”。
我们的目标是⽣产具有如下属性的软件:远离bug,易读性,可改动性。当然也有其他的⾮常重要的关于软件的性质(例如: 性能, 实⽤性以及安全性), 并且他们可能会和上述三种性质是互相⽭盾的。