忍者ブログ

てんねんのSE備忘録

てんねんのためのSE備忘録 間違い指摘いただけると助かります また、拍手なんかしていただけると喜びます

[PR]

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

java:Javaコーディング標準:ガイドライン

●今回は以下のJavaコーディング標準より「3.ガイドライン」について
http://objectclub.jp/community/codingstandard/CodingStd.pdf

●プログラムの基本型
---------------------------------------------------
/*
*   COPYRIGHT(著作権情報)
*/
package パッケージ名;

import パッケージ名;

/**
 * クラスの説明
 */
public class クラス名{

    /**
     * 変数の説明
     */
    private 型名 変数名;

    /**
     * 関数の説明
     * @author 書いた人(これは必ず入れる)
     * @see 関連項目
     * @param 引数
     * @return 返り値
     */
     public void 関数名(引数) {
         if (条件) {
         
         } else {
         
         }
     }
}
---------------------------------------------------

●その他ルール
①1行は80文字まで

②クラスの「extends」「implements」
 public class クラス名
                 extends 継承クラス名
                 implements インタフェース名
                 
③メソッドの改行
 private setA(double a,double b,
                 double c,double d);
                 
④「import」に「*」はなるべく使用しない(3つ以上の場合はOK)

⑤メソッドは1つのことを行うようにする

⑥引数のタイプによるメソッドのオーバーロードはなるべく避ける
 駄目な例:draw(Line); draw(Rectangle);

⑦Object.equals()メソッドをオーバーライドするとき
コンテナクラス(Hashtable)に対応するため、
hashCodeもオーバーライドする(逆も同じ)。

⑧Objectのcloneを使用するとき、「cloneable」で明示(深いコピー)
理由:浅いコピー(sliceやconcat)ではコピー元を変えてしまう場合がある

⑨できる限りデフォルトコンストラクタを作成
Class.newInstance()でインスタンスの作成ができる

※デフォルトコンストラクタ
引数なしのコンストラクタ

⑩同値比較はequals()を使用する
理由:ユニットテスト時にassertEqualsを使用できて楽

⑪ローカル変数は宣言時に初期化・再利用はしない
例:for(int i=0;i<10;i++){}
    for(int i=0;i<20;i++){}

⑫条件文の条件には「=」を使わない
バグが発生しやすい??

⑬「<」「<=」を使う
右側が大きいほうと統一しておく

⑭キャストはできる限りinstanceofの条件文で囲む

C cx = null;
if(x instanceof C){
    cx = (C)x;         //キャスト
}else{
    //インスタンスができない場合の処理
}

⑮JDKの標準の例外クラスを使う
積極的に利用したい例外クラスたち
→IOException
なんらかの入出力例外の発生を通知するシグナルを発生
→NoSuchFileExpection
ファイルがないときの例外スロー
→IllegalArgumentExpection
不正な引数、または不適切な引数をメソッドに渡したことを示すためにスロー

⑯メソッドの引数は変更しない
理由:突然値が変更されることになるため

⑰toString()メソッドはできる限り実装する
理由:テストをするときに表示できる

⑱「switch」「if/else」を繰り返さない
繰り返すと同じプログラムを書くことが多くなる
FactoryMethod・Prototypeパターン・NullObjectパターンを考える

※FactoryMethodパターン
http://www.techscore.com/tech/DesignPattern/FactoryMethod.html/

※Prototypeパターン
http://www.techscore.com/tech/DesignPattern/Prototype.html/

※NullObjectパターン
http://www.hyuki.com/dp/dpinfo.html#NullObject

⑲Stringと基本型の変換
String s = String.valueOf(i);
int i = Integer.parseInt(s)

拍手[0回]

PR

コメント

お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード Vodafone絵文字 i-mode絵文字 Ezweb絵文字

カレンダー

03 2024/04 05
S M T W T F S
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

フリーエリア

最新CM

最新TB

プロフィール

HN:
てんねん
性別:
非公開

バーコード

ブログ内検索

P R

カウンター

忍者アナライズ