KONOEコーディングコンベンション


1.ディレクトリ構成

ファイルを配置するディレクトリの構成について、例えばkonoe サブディレクトリの下に、 のように配置します。srcの下はクラスライブラリの構造に 従い、パッケージに対応してsystem、daq、analysis、uiを 準備します。その下はクラスカテゴリーに対応します。

includeはインクルードファイルを配置します。KONOE全体で 共用するもの(KonoePrimitives.hhなど)以外はsrcと同様 パッケージ毎にサブディレクトリを置きます。 開発初期には 保守の手間を考えるとシンボリックリンクを配置したほうが 効率的かも知れません。クラステンプレートはメソッドの 記述された.ccファイルもインクルードディレクトリに置かれる 必要があります。

docには文書を配置しますが、基本的にhtmlで記述することに して、個人のpublic_htmlの下の適当なところからリンク することが望ましいでしょう。

2.ファイル名

ファイル名はクラス名と一致させます。サフィックスとして C++ソースは.cc、ヘッダファイルは.hhです。オブジェクトは .oとなります。該当する解説ファイルは.htmlを付けます。

ライブラリファイルはlibKonoe.aを標準とします。

テンプレートデータベースはlibの下に用意します。ただしテンプレートの 扱いは一筋縄にはいかないようなので、パッケージ毎にテンプレート データベースを管理することにします。

メークファイルはMakefileとします。

Javaによって書かれたファイルに関してはJavaの命名規則に従い、 ソースは.java、オブジェクトは.classとなります。

3.シンボル名

クラス名はKonoeを先頭に付け、各単語の先頭文字を大文字とします。

定数はクラス内部でenumもしくはconstで定義します。定数は すべての文字を大文字で表現します。

publicな変数は小文字で始め、単語の頭を大文字とします。privateな 変数は全て小文字で、単語の間を_で接続します。関数名もこの規則に 従います。

ローカル変数は取りあえず任意にします。

4.プリミティブ型

プリミティブ型はKonoePrimitives.hhで定義します。大文字Kに続けて 型を、大文字ではじめて小文字を続けます。

KonoeプリミティブC++型備考
KIntlong32ビット符号付き
KUIntunsigned longJavaでは定義できない
KShortshort16ビット符号付き
KUShortunsigned shortJavaでは定義できない
KCharchar8ビット符号付き
KUCharunsigned char
KFloatdouble

Javaでは符号なし整数の扱いはできません。注意が必要です。

5.Makefile

メークファイルはソフトウエア作成の手順を記述するもので、ソース ファイルの一部と考えられます。そのため、出来るだけ機種依存の 部分はその外部で定義することにより、ソース互換性を高める 必要があります。

環境変数で次のものを定義します。

6.実行時関数とシステムコール

コードの互換性を高めるため、通常のソースの中にはできるだけ これらの名前を組み込むことは避けるべきです。開発の段階では 直接システムコールを呼ぶこともやむをえませんが、次の段階で システムサービスクラスカテゴリーに該当するものを用意すべきです。

また、これらを用いる場合、それを定義するヘッダーファイルの名前などに いくつかの流儀があります。例えばunistd.hを使うかどうか。

7.const

コードの安全性を確保するためconstを正しく使用します。(現状では あまり一貫しているとは言えません。)

8.Javaパッケージ

Javaは日々更新されている言語で、色々と版による互換性の問題も 生じますが、KONOEでは、JDK1.1.*に準拠します。そのため、1998年 前半時点ではNetscapeなども標準では一部機能をサポートしていません。 閲覧にはHotJavaなどを用いる必要があります。(これはまもなく解消する 問題だと考えられます。)

KONOEではUI部分を中心にJava言語も利用します。生成されたクラスファイルは ユーザが書いたアプリケーションとリンクしたり、アプレットとして呼び出す ために参照位置をCLASSPATH環境変数に設定する必要があります。そのために KONOEではクラスファイルを次のように管理します。



[collaboration/convention.html] Last Modified : 29-Jun-1998.

KONOEコラボレーション konoe-req@konoe.kek.jp