コーディング規約

2004年JavaのWebシステムの構築が盛んな時期に今のように優良書籍や優良サイトがとても少なかったです。
そんな時代に日本のJavaエンジニアに基本的なコーディングルールを無償で提供されました。

2017年時点13年経た今でも十分通用する「コーディング規約」について説明します。
内容に関しては、Java1.4系をベースに記載されていますが、
java5~8の新しい構文に対するコーディング規約だけ自分達で補足する必要はあります。
私は、13年経た今でもJava経験の浅いエンジニアには、毎回勧めています。
大規模なWebシステムの共通チームや先行チームなどでコーディングルールが無い時に、
私は、迷わずこれをベースに新しい内容を追記して展開しています。

日本におけるJavaの巻物

「Java コーディング規約 2004 」©株式会社 電通国際情報サービス
「Java コーディング規約 2004 」©株式会社 電通国際情報サービス より引用

書籍版としては、下部の広告に掲載しています。

本頁下部の書籍に「実践Javaコーディング作法 プロが知るべき、112の規約と21の心得」は、java7/8に対応しています。

予約語

プログラムでは、Javaに問わずプログラムの構文を構成する単語及び記号を変数、クラス名、メソッド名に利用することはできません。
以下にJavaの本家サイトの予約語のリンクを掲載しておきます。

日本語では、「予約語」と呼びます。Javaの本家サイトやJCP試験には、「キーワード」と呼ぶのが正式名称です。

日本語のJava

如何にコーディング規約が重要か次のサンプルを見て頂けたらご理解頂けるかと思います。

Javaの書き方.java
/**
 * Copyright 2017 hoge.
 * 本ソースファイルの著作権は株式会社hogeに所属します。
 * 株式会社hogeの許可なくして、本ソースファイルの
 * 配布、改修、コピー、利用を禁止します。
 * 会社名               :株式会社hoge
 * 組織名               :システム開発部
 * プロジェクトコード   :education
 * バージョン           :1.0
 * 最終更新日時         :2017/02/10 17:21
 */

//package宣言部
package jp.co.yourcompany.education.samples;

//import 宣言部

/**
 *
 * このクラスは、Javaの全体の構成を分かり易くした
 * 標準出力にメッセージを出力するクラスです。
 *
 * @author Raita.Kuwabara
 *
 */
public class Javaの書き方 {

    //定数宣言部

    /**
     * デフォルト値として設定されるメッセージ
     */
    public static final String 固定値_デフォルト_メッセージ = "こんにちは 日本へ";

    /**
     * エラーメッセージ
     */
    public static final String 固定値_エラー_メッセージ = "メッセージが指定されていません。";

    /**
     * 主処理の終了メッセージ
     */
    public static final String 固定値_終了_メッセージ = "-------- END outputMessage method------------";


    //static実行部 今は気にしない

    //クラスのメンバ変数宣言部
    private String メッセージ;

    /**
     * デフォルトコンストラクタ
     */
    public Javaの書き方() {
        メッセージ = 固定値_デフォルト_メッセージ;
    }

    /**
     * デフォルトコンストラクタ
     * 指定したメッセージをmessageプロパティに初期設定する。
     *
     * @param message 出力するメッセージ
     */
    public Javaの書き方( String メッセージ ) {
        //クラスのプライベートメソッドに値を設定しています。
        this.メッセージ = メッセージ;
    }

    /**
     * 主処理
     * messageプロパティに設定されたメッセージを出力します。
     */
    public void メッセージ出力() {

        if( メッセージの値設定有() ){
            現状のメッセージ出力();
        } else {
            エラーメッセージ出力();
        }

        終了メッセージ出力();

    }

    /**
     * メッセージを初期化する。
     */
    private void 初期化(){
        メッセージ = null;
    }

    /**
     * プライベートプロパティのメッセージがnullでないことをチェックする。
     * @return true:値あり false:値なし
     */
    private boolean メッセージの値設定有(){
        return (メッセージ != null);
    }

    /**
     * messageプロパティに設定された文字列を出力する。
     */
    private void 現状のメッセージ出力(){
        System.out.println( メッセージ );
    }

    /**
     * エラーメッセージを出力する。
     */
    private void エラーメッセージ出力(){
        System.out.println( 固定値_エラー_メッセージ );
    }

    /**
     * 主処理終了時のメッセージを出力する。
     * @return true:値あり false:値なし
     */
    private void 終了メッセージ出力(){
        System.out.println( 固定値_終了_メッセージ );
    }

    /**
     * 決まったユーティリティのような定型の関数のようなメソッドだけをstaticにする。
     * クラスメソッド(静的メソッドの例)の例
     * messageプロパティに設定されたメッセージを出力します。
     */
    public static void クラスメッセージ出力() {

        System.out.println( Javaの書き方.固定値_デフォルト_メッセージ );
    }

    /**
     * javaコマンドで起動されるmainメソッド
     * @param args
     */
    public static void main(String[] args) {
        //sample1-1 デフォルトのメッセージ
        Javaの書き方 インスタンス1 = new Javaの書き方( );
        インスタンス1.メッセージ出力();

        //sample1-2 outputErrorMessageが実行されるケース
        インスタンス1.初期化();
        インスタンス1.メッセージ出力();

        //sample2 引数を渡すケース
        Javaの書き方 インスタンス2 = new Javaの書き方("インスタンス2のHello");
        インスタンス2.メッセージ出力();

        //sample3
        Javaの書き方.クラスメッセージ出力();
    }
}

このソースファイルはコンパイルも通り、実行も可能です。警告、エラーも一切表示されません。
ただこの方法、文法上許されているのに日本ではお目に掛かりません。

日本のエンジニアが、プログラムファイル上にコメント以外に日本語を記載しないように、
各会社のコーディング規約を徹底しているからです。

日本語にすると大文字、小文字の区別ができなくなり可読性も一気に落ちました。
如何にコーディング規約が重要かをご理解頂きたいため作成しました。

本頁サンプルのダウンロードと実行方法

java_sample3.zipファイルを「c:¥download¥java¥samples¥」に保存して下さい。

java_sample3.zipファイルを「c:¥projects」配下に展開して下さい。

コマンドプロンプトを起動して、「sample3.bat」を実行して下さい。
先のJavaの書き方.javaがコンパイルされ、実行されます。

Linux,Unix,iOSの方はバッチファイルはお手数ですが作成して下さい。改行コードが「CRLF」の点ご留意ください。

このサンプルは、Javaの予約語やコーディングルールの重要性を理解するための教材であり、
開発現場でこの日本語方式を決して真似しないで下さい。