Googleが様々な言語のコーディング規約(Style Guide)を公開していることを最近知りました。Javaのコーディング規約についてざっと見てみて、興味深かった点をまとめてみました。
2 Source files basics
非ASCII文字をコード中に記述するときにUnicodeエスケープするかどうかは、どちらの方が理解しやすいかによる。(2.3.3 Non-ASCII characters)
String unitAbbrev = "μs"; // "\u03bcs"とすると理解しにくいためUnicodeのまま記述する。
3 Source file structure
ワイルドカード *
を使ったimport
は static
かどうかに関わらず使わない。(3.3.1 No wildcard imports)
4 Formatting
if
や for
などで使うブレース {}
は中身がからであっても省略しない。(4.1.1 Braces are used where optional)
空でないブロックは下記のようにK&Rスタイルで記述する。(4.1.2 Nonempty blocks: K&R style)
if (condition()) {
method();
} else if (condition()) {
method();
}
if
、try
などで複数ブロックで構成されていない限り、空のブロックは {}
と簡略化できる。(4.1.3 Empty Blocks: may be concise)
インデントには2つのスペースを用いる。(4.2 Block indentation: +2 spaces)
1行は100文字以内に収まるようにする。(4.4 Colum limit: 100)
1行が長い場合に改行するときは4文字以上のスペースを入れる。(4.5.2 Indent continuation lines at least +4 spaces)
予約語 ( for
など) と (
の間、}
と予約語 ( else
など) の間、{
の前にはスペースを入れる。(4.6.2 Horizontal whitespaces)
5 Naming
特別な意味を持つプレフィックスやサフィックスは使わない。例:name_
、mName
(5.1 Rules common to all identifiers)
略語など一般的に大文字で構成される単語もキャメルケースにする。例:XmlHttpRequest
(5.3 Camel case: defined)
既にキャメルケースで広まっている名称はそのまま残してもよい。例:YouTubeImporter
(5.3 Camel case: defined)