コーディングルール

本プロジェクトNegitoro OS Projectのカーネル部(ディレクトリkernel以下)においてのコーディングルールについて述べます。

総記

注意: このページの内容は承認されましたが、あくまで暫定的なものです

また、以下のすべての規則は原則であり、適切な状況下では例外を認めます。
あくまで、本コーディングルールの目標は理解・管理しやすいソースコードを書くことです。

本コーディングルールに関するご意見・ご感想は随時受け付けます。改善案も大歓迎です。

コーディング全体に関して

  1. 分かりやすいコードを書く
    1. 分かりにくいデータ構造・アルゴリズムを使うならば、コメントでしっかり説明をする
    2. 分かりやすい/分かりにくいの基準はあえて設定しない
    3. したがって、コードが分かりにくいと感じるならばそのコードの書き手に説明を求める権利があるし、そのような問い合わせを嫌うプログラマは防衛的にコードを書くことを勧める
  2. コメントを積極的に付ける

命名規則

  1. 変数・関数名はアルファベット小文字・数字・アンダーライン'_'のみで構成し、単語の区切りをアンダーラインで示す
  2. 定数・構造体タグ名はアルファベット大文字・数字・アンダーラインのみで構成し、単語の区切りをアンダーラインで示す
  3. それぞれの構造体タグ名にtypedefで別名を与えることは原則としてしない
  4. グローバルスコープの変数名は接頭辞'global_'をもつ

ドキュメンテーションコメント

  1. グローバルスコープの関数・変数にはドキュメンテーションコメントを付ける
  2. コメントのスタイルが一定していなくても、誰かが標準の形式に直すであろう
    1. その際、元のコメントがもつ情報が失われないよう配慮することは義務である
    2. しかし、標準の形式が規定する特記事項に配慮することは義務である
  3. ドキュメンテーションコメントの形式はDoxygenスタイルが標準である
    1. しかし、既存のコードへのコメント付けはまだ終わっていない
    2. (特記) このスタイルに従わないコメントは次にあげる3文字のいずれで始まってもならない: /**, /*!, ///, //!
    3. Doxygenスタイルのコメントに関して以上で規定のない点はhttp://www.denshin8.jp/den8dev/doxygen.htmlに準じる