[[Program/Java]]

*Java コーディング規約 [#ycdd084d]

** 規約自動チェック&自動フォーマット [#nad5303a]
-Google ベースの Check Style 設定ファイル
--&ref(JavaChecks.xml);
-Google ベースの フォーマッター設定ファイル
--&ref(JavaFormat.xml);
-Google ベースの保存時のアクション設定
以下、Eclipse 「設定」の Java→エディター→保存アクションの設定
 ■ソース・コードのフォーマット(S)
  ●すべての行をフォーマット(L)
  ○編集した行をフォーマット(E)
  フォーマッターページでフォーマッター設定を構成してください。
 ■インポートの編成(I)
  インポートの編成ページでインポートの編成設定を構成してください。
 ■追加アクション(T)
   ・非修飾フィールド・アクセスに 'this' 修飾子を追加します
   ・制御ステートメント本文をブロックに変換します
   ・Convert 'for' loops to enhanced 'for' loops
   ・private フィールドへ final 修飾子を追加
   ・final 修飾子をメソッド・パラメーターに追加
   ・final 修飾子をローカル変数に追加
   ・可能な場合はラムダを使用
   ・丸括弧内に式を入れます
   ・欠落している '@Override' 注釈を追加
   ・欠落している '@Override' 注釈をインターフェース・メソッドの実装へ追加
   ・欠落している '@Deprecated' 注釈を追加
   ・不要なキャストの除去
   ・不要な '$NON0-NLS$' タグを除去
   ・すべての行末の空白を除去
   ・インデントの訂正

Java のコーディング規約として

----
**Java のコーディング規約 [#rb9252c6]
+Code Conventions for the Java Programming Language (Sun が 1999年に作成)
+Google Java Style
が有名。Sun の規約は古く、Google のものをベースとした方が良いと思われる。

が有名であり、いずれも checkstyle (規約エラーを検出できるツール)用の
設定ファイルが用意されています。

2018年現在、Google Java Style を基本とし、
同 checkstyle の設定ファイルを利用した方が良いと思いますが、
世の中のコードを見て若干、変更した方が良い点があります。
(いくつかは、意見が分かれますが・・・)

そこで、Google Java Style をベースに少し設定を変更した
ファイルを置いておきます。

&ref(JavaChecks.xml);

**Check Style の設定について [#q6228327]
本ページで公開している Check Style の設定ファイルは、
Google Java Style より、下記点を変更している。
** Google Java Style からの変更点 [#hac1c196]
| ''グループ''            | ''項目'' | ''変更前'' | ''変更後'' | ''変更理由'' |
|Javadoc コメント->Summary Javadoc |period | - |設定OFF|日本語の場合、「。」を使用するため。 |
|サイズ違反->行の最大長   |tabWidth  | 8| 4                |(※1) |
|空白->File Tab Character |-         |- |設定OFF           |(※1) |
|その他->TreeWalker       |tabWithd  | 8| 4                |(※1) |
|その他->インデント       |全般      |- |2->4, 4->8 に変更 |(※1) |

※1) インデントとして4タブ利用のため。(Google Checks は 2空白)





----

** Tab vs 空白 について [#pbe91c0e]

-Tab のメリット
--入力が早い。
--ファイルサイズが小さい。
--インデントが正しく構成される。
---空白の場合、空白の過不足等が発生する可能性あり
---タブ、空白を表示させた際、タブは1つの表記で明確。空白の場合は個数を数える必要あり。

-空白のメリット
--エディタによらず、同じ表示となる。
--Excel にコードを張り付けやすい。(タブだとカラムが変わってしまう。)
--github 上 空白のコードが若干多い。
--空白を使う人は年収が高め(らしい。)

-その他
--2空白のコードは汚くなる傾向にあるように見える(※1)

※1) OSS を見ると(統計までは取れていないが)
2空白を使用しているコードは、ネストが深く、1関数が長くなる傾向にある。
トップ   差分 バックアップ リロード   一覧 検索 最終更新   ヘルプ   最終更新のRSS