本文書は、クックパッド株式会社での Java コードのスタイル規準を定めるものである。
基本はOracleのスタイルを採用する。Code Conventions for the Java TM Programming Language 次いでGoogleのガイドラインも参照する。 Code Style Guidelines for Contributors
基本的には見やすさ、美しさ、を重視するが、パフォーマンスに影響がある場合はその限りではない。
- [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
- [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];
- [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] リソースのファイル名はスネークケースにすること。