我只是碰上了这个问题有关初始化局部变量.许多答案都争论简单/可读性与稳健性.作为(远程部署)嵌入式系统的开发者,我总是喜欢稳健性,并倾向于遵循几个看似相互冲突的规则:
以允许设备继续运行的方式尽可能地处理每个错误.
在编程或致命错误发生后,尽快将代码设计为失败.
我们都经过培训,可以验证输入,防止设备因用户(或其他外部)输入而损坏; 总是假设数据可能无效并相应地进行测试.
您还遵循哪些其他具体做法来确保稳健性? 示例很有帮助,但我也对普遍适用的技术感兴趣.
我是" 实用程序员 "中描述的技术的粉丝.我也使用TDD而不是DBC,因为我觉得它更灵活,更有效率.例如,'pragprog'中描述的一些技术包括:
经常测试.早点测试.自动测试
不要重复自己
使用破坏者来测试您的测试
对异常问题使用例外
不要和破窗户住在一起
不要使用手动程序
它们看起来都是常识,但令人惊讶的是,当面临最后期限时,团队如何迅速偏离这些基础原则.
我喜欢第二双眼睛的方法:在我编写并测试了一些关键代码之后,我有时会要求同事专门审查它,以寻找打破它的方法.
以这种方式展现人们的创造力很有趣.:-)
听起来你已经有了这两个:
快速失败.http://en.wikipedia.org/wiki/Fail-fast
失败安全.http://en.wikipedia.org/wiki/Fail-safe
这三个可能比任何其他人更好地服务于我:
尽可能避免状态.创建和使用不可变对象 - 它们更容易测试,更不容易背叛你.
不要写不必要的代码.这个很难.查看最近由Strunk和White 撰写的关于" 风格元素 "的文章.
每10分钟左右问自己:"这个笨吗?" 说实话.这个更难.
-Jason