Skip to content

3.4. コード記述規則

3.4.1. アクセス修飾子

  • クラスフィールドは private を基本とします。
  • 外部公開が必要な場合にのみ public メソッドを提供します。
  • パッケージ内部でのみ使用されるクラスはパッケージプライベート(アクセス修飾子省略)で宣言します。

3.4.2. import 規則

  • ワイルドカード import (import java.util.*) は使用しません。
  • 使用していない import は必ず削除します。
  • Google Java Format が import の並び替えを自動的に処理します。

3.4.3. マジックナンバーの禁止

リテラル値をコードに直接使用しません。定数として定義し、意味を明確にします。

java
// 悪い例
if (retryCount > 3) { ... }

// 良い例
private static final int MAX_RETRY_COUNT = 3;

if (retryCount > MAX_RETRY_COUNT) { ... }

3.4.4. Optional 使用規則

  • 戻り値の型として Optional を使用します。フィールドやパラメータには使用しません。
  • Optional.get() を直接呼び出しません。orElseThrow()orElse()ifPresent() を使用します。
java
// 悪い例
UsersRecord record = userRepository.findById(id).get();

// 良い例
UsersRecord record = userRepository.findById(id)
    .orElseThrow(() -> new UserNotFoundException(id));

3.4.5. Null 処理

  • null を返却しません。空のコレクション(Collections.emptyList())または Optional を使用します。
  • パラメータの null チェックは Objects.requireNonNull() を使用します。
  • @Nullable@NonNull アノテーションを積極的に活用します。

3.4.6. 文字列処理

  • 文字列結合は + 演算子の代わりに String.format() またはテキストブロック(""")を使用します。
  • 空文字列の比較は String.isEmpty() または String.isBlank() を使用します。

TIENIPIA QUALIFIED STANDARD