NASA顶级程序员的10条重要编程原则
极客时间编辑部
讲述:丁婵大小:1.34M时长:02:56
NASA 的开发者是编程界最有挑战性的工作之一,他们编写代码并将开发安全的关键应用程序作为他们主要的关注点。
因此,为了确保代码更清楚、更安全、且更容易理解,NASA 的喷气推进实验室 JPL 制定了 10 条编码规则,这些严格的编码规则主要是聚焦于开发安全。这个规则主要针对于 C 语言而设置,但它也可以很容易地应用到其它程序语言中。这 10 条编程规则分别是:
1. 限制所有代码为极为简单的控制流结构——不用 goto 语句、setjmp 或 longjmp 结构,不用间接或直接的递归调用。
2. 所有循环必须有一个固定的上限值。必须可以被某个检测工具静态证实,该循环不能达到预置的迭代上限值。如果该上限值不能被静态证实,那么可以认为违背该原则。
3. 在初始化后不要使用动态内存分配。
4. 如果用一个语句一行、一个声明一行的标准格式来参考,那么函数的长度不应该超过一张纸的长度,通常这意味着每个函数的代码行不能超过 60。
5. 代码中断言的密度平均低至 每个函数 2 个断言。断言被用于检测那些在实际执行中不可能发生的情况。断言必须没有副作用,并应该定义为布尔测试。当一个断言失败时,应该执行一个明确的恢复动作,例如,把错误情况返回给执行该断言的函数调用者。
6. 必须在最小的范围内声明数据对象。
7. 非 void 函数的返回值在每次函数调用时都必须检查,并且在每个函数内,其参数的有效性都必须进行检查。
8. 预处理器的使用仅限制于包含头文件和简单的宏定义。符号拼接、可变参数列表和递归宏调用都是不允许的。所有的宏必须能够扩展为完整的语法单元。
9. 应该限制指针的使用。特别是不应该有超过一级的解除指针引用。解除指针引用操作不可以隐含在宏定义或类型声明中。还有,不允许使用函数指针。
10. 从开发的第一天起,必须在编译器开启最高级别警告选项的条件下对代码进行编译。在此设置之下,代码必须零警告通过。代码必须利用源代码静态分析工具每天至少检查一次或更多次,且零警告通过。
关于这些规则,NASA 表示,这些规则就像汽车中的安全带一样,刚开始可能感到有一点不适,但是一段时间后就会养成习惯,到时就会无法想象不使用它们的日子。
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
该免费文章来自《极客视点》,如需阅读全部文章,
请先领取课程
请先领取课程
免费领取
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(3)
- 最新
- 精选
- 池建强NASA的要求实在严格啊,看起来是 C 语言的风格。1
- GeekAmI大道至简1
- 多态丶只是不能立竿见影,但很有效
收起评论