关于NASA的10条编程规则,他们曾表示:这些规则的作用就像汽车上的安全带:最初,它们可能有点不舒服,但过了一会儿,它们的使用就变成了第二天性,而没有使用它们就变得不可想象。
Gerard J. Holzmann
10条编码规则
goto
和recursion
2、所有循环都必须有固定的边界(这可以防止代码错乱)
3、避免堆内存分配
4、将函数限制为单个打印页面
5、每个函数至少使用两个运行时断言
6、将数据的范围限制在尽可能小的范围内
7、检查所有非void函数的返回值,或将其强制转换为void以指示该返回值无用
8、谨慎使用预处理器
9、将指针使用限制为单引用,并且不使用函数指针
10、编译所有可能的警告活动;所有的警告都应该在软件发布之前解决
#1.避免使用复杂的流程构造,例如Goto和递归
recursion
如果不需要执行简单任务for
可以完成的任务,我将不会使用递归的方式。在你无法直接访问机器的地方,例如在火星,月球或海底,进行递归是非常危险的行为!#2.所有循环必须有固定边界(这可以防止代码错乱)
#4.将函数限制为单个打印页面
如果超过此长度,则表明你在代码中添加了太多冗余的内容。
另一个问题可能是你没有将函数分割为更小的函数防止代码重复。
#6.将数据范围限制到最小
var
-总是喜欢使用let
来防止变量泄漏或覆盖,甚至重影。其他语言也应该这样做,比如c#。对变量使用最受保护和最小的作用域,例如private或protected。
对于其他语言也应该遵循这样的规则,例如C#。对变量使用最大保护和最小作用域,例如
private
或protected
。#10.编译所有可能的警告活动;所有的警告都应该在软件发布之前解决
然后,即使你认为它们没有用,但也应删除并修复它们。
现在我们已经准备好将我们的代码发射到火星了!