スタイル
コメント
ファイルの先頭にコピーライト、およびシステム名等を記述する。なお「javadocコメント」を使用せず、/* (コメント) */の形式を用いる。
* $Id$
* Copyright (c) 2006 PRIME CO.,LTD All Rights Reserved.
*
* システム名: プロジェクト管理システム
* サブシステム名: 日報・月報管理
*
* 作成者: t.sugahara
* 日付: $Date$
* バージョン: $Revision$
* メモ:
*
* 履歴:
* 変更ID 変更日 変更者 変更理由
* -----------------------------------------------------
* A001 2006/05/23 t.sugahara 新規作成
* -----------------------------------------------------
*/
publicクラス、およびメソッドのコメントでは「javadocコメント」を活用する。
・「/**」ではじめ、「*/」で終わる。
基本的には1行目を「/**」とし、2行目以降を「*」ではじめる。最終行を「*/」で終わる。
@author [作成者]
クラスの作成者を明記する。
@param [パラメータ名] [説明]
メソッドにパラメータがある場合、そのパラメータの名称と説明を明記する。
@return [戻り値]
メソッドに戻り値がある場合、その戻り値の説明を明記する。
@exception [例外名]
メソッド内で発生する例外がある場合、その例外名を明記する。
@version [バージョン]
クラスのバージョンを明記する。
上記以外のタグもあるが、適宜、必要なものを記述する。
クラス、およびメソッドの定義が始まる直前にコメント行を配置し、そのクラスの機能概要、外部インタフェースについて記述する。
なお、最初の1行目はHTMLのメソッドインデックスに使用されるため、外部へ公開するための要約した短い説明にとどめ、その行は半角ピリオド(.)、または<br>HTMLタグで閉じる。
詳細については「javadoc」のドキュメントを参照のこと。
* プロジェクト日報に関するデータアクセスクラス.
* 日報データの読み書き機能を提供する.
*
* @author t.sugahara
* @version 1.0
*/
public class PmsDailyLog {
/**
* 日報データ管理情報からタグ名を取得する.
* @param kind 管理情報区分
* @return タグ名
* @exception PmsException システム障害を返却する
*/
public String getTagName(int kind)
throws PmsExcption {
<省略>
return m_mngData.tagName;
}
}
改行のルール
プログラムの見やすさを考慮した場合、1行の長さを適度に制限する必要がある。基本的には80桁以内を目安とし、それを超える場合は行を分割する。行を分割するには、「,(カンマ)」の位置での改行、または演算子(複数の演算子を使用している場合は優先順位の低い演算子)の前で改行を入れる。このような考慮をするだけで、コードの可読性が高まる。
package宣言とimport宣言
ファイルの先頭に書いたコメント(コピーライト、およびシステム名等)の下にpackageの宣言を記述する。次に1行空けてimportの宣言を記述する。また、import宣言では「*」を使わない。(「*」を使用すると実際に使用しているパッケージが不明確になってしまう)
* $Id$
* Copyright (c) 2006 PRIME CO.,LTD All Rights Reserved.
*
* システム名: プロジェクト管理システム
* サブシステム名: 日報・月報管理
*
* 作成者: t.sugahara
* 日付: $Date$
* バージョン: $Revision$
* メモ:
*
* 履歴:
* 変更ID 変更日 変更者 変更理由
* -----------------------------------------------------
* A001 2006/05/23 t.sugahara 新規作成
* -----------------------------------------------------
*/
package jp.co.prime97.Pms.manage
import java.util.Date;
import java.util.HashMap;
import java.util.Vector;
不要メソッド・変数の削除
プログラム内で使用していない変数(インスタンス変数、ローカル変数)は必ず削除する。不要な変数があると、プログラムの可読性が低くなる。同様にメソッドについても使用しないものについては実装しない。後々必要と思えるものについても、必要となったときに実装する。
フォーマット
見た目のフォーマットは非常に大切である。技術者の感性は様々であり、統一は困難であるが基本方針について記述する。
・1行の文字数を最大80桁とする。
・インデントは空白4文字分とする。その際、タブは使用せず空白文字を使用する。
・1行に複数のステートメント(式)を記述しない。
(変数定義も同様に、1行1変数の宣言とする)
・不等号の向きは左向き(「<」、「<=」)にする。
(定数と比較する場合は右向きでも可)
・不等号で使用する定数は右側に配置する。
・カンマの後には空白文字を入れる。
・for文の「;(セミコロン)」の後には空白文字を入れる。
・算術演算子(「+」、「-」、「*」、「/」、「%」)の前後には空白文字を入れる。
・算術演算子(「++」、「--」)とオペランドの間には空白文字を入れない。
・代入演算子(「=」、「+=」、「-=」、「*=」、「/=」、「%=」)の前後には空白文字を入れる。
・比較演算子(「<」、「<=」、「==」、「>」、「>=」、「!=」)の前後には空白文字を入れる。
・条件演算子(「||」、「&&」、「|」、「&」、「^」、「!」)の前後には空白文字を入れる。
・シフト演算子(「<<」、「>>」、「>>>」)の前後には空白文字を入れる。
・ビット演算子(「|」、「&」、「^」、「~」)の前後には空白文字を入れる。
・return文では括弧を使用しない。
(メソッドでなく式であることを明確にする)
文法の基本形
文法の書式・形式についてもフォーマットと同様、技術者の感性に依存する部分である。基本方針について記述する。
・for文で使用するカウンタはfor文のカウンタ宣言にて行なう。
(for文の外側で宣言しない)
・for文とwhile文の使用用途を明確にする。
(カウンタを利用する規則的な繰り返しの場合はfor文、それ以外はwhile文を使用する)
・for文で使用するカウンタの初期値は「0」を基本とする。
(配列の添字は「0」からである.カウンタはインデックスの役割で使用する場合が多い)
・制御文(「if」、「else」、「while」、「for」、「do while」)での「{}」は省略しない。
(1行の式でも省略しない.機能追加時のバグ発生を避けられる)
・ローカル変数は利用する直前で宣言する。
(C言語のように関数の入り口で宣言しない)
2009年6月17日 18:21
