Permalink
Switch branches/tags
Nothing to show
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
206 lines (147 sloc) 4.35 KB

目次

Java コーディング規約

はじめに

本文書は、クックパッド株式会社での Java コードのスタイル規準を定めるものである。

基本はOracleのスタイルを採用する。Code Conventions for the Java TM Programming Language 次いでGoogleのガイドラインも参照する。 Code Style Guidelines for Contributors

基本的には見やすさ、美しさ、を重視するが、パフォーマンスに影響がある場合はその限りではない。

Java 全般のルール

インポート

  • [MUST] 不要なimport文は削除すること。
  • [MUST] 可能な限り * での import 文は書かないこと。

インデント

  • [MUST] ブロックのインデントにはスペース4つを使うこと。
  • [MUST] 関数呼び出しと引数を含んだ行の折り返しは、スペース8つでインデントすること。
// good
Instrument i
        = someLongExpression(that, wouldNotFit, on, one, line);

// bad
Instrument i
    = someLongExpression(that, wouldNotFit, on, one, line);

空白

  • [MUST] 行末に空白を置いてはならない。
  • [MUST] カンマ、セミコロン、キャスト演算子の直後には空白を置くこと。

空行

  • [MUST] ファイルの末尾に空行を置いてはならない。

改行

  • [MUST] ファイルの末尾は空白を置いてはならない。
  • [MUST] 行の途中で改行するときには演算子の直前で改行すること。

中括弧

  • [MUST] 直前にトークンがある場合は中括弧で行を始めてならない。中括弧はそのトークンと同じ行に置くようにすること。
// good
class MyClass {
    int func() {
        if (something) {
            // ...
        } else if (somethingElse) {
            // ...
        } else {
            // ...
        }
    }
}

// bad
class MyClass
{
    int func()
    {
        if (something)
        {
            // ...
        }
        else if (somethingElse)
        {
            // ...
        }
        else
        {
            // ...
        }
    }
}
  • [MUST] 条件文には中括弧を付けること。
// good
if (condition) {
    body();
}

// bad
if (condition)
    body();

名前における頭字語 (アクロニム)

  • [MUST] 頭字語や略語は単語として扱うこと。
// good
XmlHttpRequest
getCustomerId

// bad
XMLHTTPRequest
getCustomerID

TODOのスタイル

  • [MUST] TODOにはすべて大文字のTODOにコロンを続けたものにすること。
// TODO: Remove this code after the UrlTable2 has been checked in.
// TODO: Change this to use a flag instead of a constant.

配列

  • [MUST] 配列のブラケットは型のすぐ後ろに書かなければならない。
// good
int[] array = new int[10];
int[][] array = new int[10][10];

// bad
int array[] = new int[10];
int array[][] = new int[10][10];
int[] array[] = new int[10][10];

Androidのルール

フィールド名

  • [MUST] フィールドにプレフィックスは付けないものとする。
// good
public class MyClass {
    private static MyClass singleton;
    int packagePrivate;
    private int private;
    protected int protected;
}


// bad
public class MyClass {
    private static MyClass sSingleton;
    int mPackagePrivate;
    private int mPrivate;
    protected int mProtected;
}

リソース

  • [MUST] リソースのファイル名はスネークケースにすること。