ソフトウェア

命に関わるコードを書く時の10個のルール


ミス一つで命に関わったり数年の努力が失われたりするような重大なコードを書く場合、どのような点に気を使うべきなのかを、NASAで働くコンピューター技術者のGerard J. Holzmannさんが「The Power of 10」としてまとめています。

The Power of 10: Rules for Developing Safety-Critical Code - Wikipedia
https://en.wikipedia.org/wiki/The_Power_of_10:_Rules_for_Developing_Safety-Critical_Code

1. Gotoや再帰など複雑なフローは避ける

By atsunori kohsaki

2. 暴走を阻止するため、全てのループに回数上限を設定する

By Woplu

3. ヒープ領域のメモリを割り当てない


これは、使用済みメモリがうまく開放されずにメモリリークを引き起こす可能性があるためです。

4. 関数を1枚のページに表せるほど小さくまとめる


5. 関数1つにつき最低2つのアサーションを付ける


想定外の入力を拒否することでエラーを引き起こす可能性を下げることができます。

6. スコープをできる限り小さくまとめる


7. 戻り値がvoid以外の場合はチェックを付け、また戻り値に意味がない時はvoidを返すようにする


8. プリプロセッサの使用は控えめにする


プリプロセッサの使用は、言ってみれば1回で済む翻訳を2回行うようなもの。プリプロセッサの詳細な挙動を把握していないと意図せぬバグを引き起こす危険があります。

9. ポインタの使用は単一の逆参照までにし、関数ポインタは使用しない


10. コンパイルは可能な限り警告を出す設定で行い、リリースの時までに修正する


全体として、「可読性」が非常に重要視されているようです。

・関連記事
半年間無名だったのに突然爆発的大ヒットで1日500万円を得たが消滅した「Flappy Bird」とは?そして人気絶頂でアプリを削除した作者へのインタビュー - GIGAZINE

結果を出すためには「質」よりも「量」をこなして学習することが重要 - GIGAZINE

インドのプログラマーでちゃんと自動コンパイルできるコードを書いているのは36% - GIGAZINE

怠け者で愚かな人間ほど優秀なプログラマーに向いている理由 - GIGAZINE

社員全員が世界各地でリモートで働く「GitLab」はなぜ創業2年で160人まで規模を拡大できたのか? - GIGAZINE

GitHub生誕10周年、これまでの功績を振り返るとこんな感じ - GIGAZINE

生死をも左右するソフトウェアの設計・構築はどうすれば完璧に近づけられるのか? - GIGAZINE

in ソフトウェア,   メモ, Posted by log1d_ts