본문으로 건너뛰기
cccskills
무료GitHub에 공개

java-coding-standards

Spring Bootサービスのためのコーディング規約: 命名規則、イミュータビリティ、Optional使用法、ストリーム、例外、ジェネリクス、プロジェクト構成。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md4.7 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

Javaコーディング規約

Spring Bootサービスにおける可読性と保守性の高いJava(17以上)コードの規約。

アクティベーション条件

  • Spring BootプロジェクトでJavaコードを書くまたはレビューする時
  • 命名規則、イミュータビリティ、例外処理の規約を適用する時
  • records、sealed classes、パターンマッチング(Java 17以上)を扱う時
  • Optional、ストリーム、ジェネリクスの使用をレビューする時
  • パッケージ構成とプロジェクトレイアウトを設計する時

コア原則

  • 巧妙さより明確さを優先
  • デフォルトでイミュータブル。共有ミュータブル状態を最小化
  • 意味のある例外で早期失敗
  • 一貫した命名規則とパッケージ構成

命名規則

// ✅ Classes/Records: PascalCase
public class MarketService {}
public record Money(BigDecimal amount, Currency currency) {}

// ✅ Methods/fields: camelCase
private final MarketRepository marketRepository;
public Market findBySlug(String slug) {}

// ✅ Constants: UPPER_SNAKE_CASE
private static final int MAX_PAGE_SIZE = 100;

イミュータビリティ

// ✅ recordsとfinalフィールドを優先
public record MarketDto(Long id, String name, MarketStatus status) {}

public class Market {
  private final Long id;
  private final String name;
  // getterのみ、setterなし
}

Optionalの使い方

// ✅ find*メソッドからOptionalを返す
Optional<Market> market = marketRepository.findBySlug(slug);

// ✅ get()の代わりにmap/flatMapを使用
return market
    .map(MarketResponse::from)
    .orElseThrow(() -> new EntityNotFoundException("Market not found"));

ストリームのベストプラクティス

// ✅ 変換にストリームを使用し、パイプラインは短く保つ
List<String> names = markets.stream()
    .map(Market::name)
    .filter(Objects::nonNull)
    .toList();

// ❌ 複雑なネストされたストリームは避ける。明確さのためループを優先

例外処理

  • ドメインエラーには非チェック例外を使用。技術的例外はコンテキスト付きでラップ
  • ドメイン固有の例外を作成(例: MarketNotFoundException)
  • 再スローやロギングの集中処理でない限り、広範なcatch (Exception ex)を避ける
throw new MarketNotFoundException(slug);

ジェネリクスと型安全性

  • raw型を避ける。ジェネリックパラメータを宣言
  • 再利用可能なユーティリティには境界付きジェネリクスを優先
public <T extends Identifiable> Map<Long, T> indexById(Collection<T> items) { ... }

プロジェクト構成(Maven/Gradle)

src/main/java/com/example/app/
  config/
  controller/
  service/
  repository/
  domain/
  dto/
  util/
src/main/resources/
  application.yml
src/test/java/... (mainを反映)

フォーマットとスタイル

  • 2スペースまたは4スペースを一貫して使用(プロジェクト標準に従う)
  • ファイルごとに1つのpublicトップレベル型
  • メソッドは短く焦点を絞る。ヘルパーを抽出
  • メンバーの順序:定数、フィールド、コンストラクタ、publicメソッド、protected、private

避けるべきコードスメル

  • 長いパラメータリスト → DTO/ビルダーを使用
  • 深いネスト → 早期リターン
  • マジックナンバー → 名前付き定数
  • static ミュータブル状態 → 依存性注入を優先
  • サイレントcatchブロック → ログを記録して対処、または再スロー

ロギング

private static final Logger log = LoggerFactory.getLogger(MarketService.class);
log.info("fetch_market slug={}", slug);
log.error("failed_fetch_market slug={}", slug, ex);

Null処理

  • 不可避な場合のみ@Nullableを受け入れる。それ以外は@NonNullを使用
  • 入力にはBean Validation(@NotNull、@NotBlank)を使用

テストの期待事項

  • JUnit 5 + AssertJで流暢なアサーション
  • モックにはMockito。可能な限りパーシャルモックを避ける
  • 決定論的なテストを優先。隠れたsleepを使用しない

留意事項: コードは意図的で、型付けされ、観測可能であるべき。必要性が証明されない限り、マイクロ最適化より保守性を優先。

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

コーディングエージェント(Claude Code、Aider、Codexなど)のカスタムタスクによる直接比較。合格率、コスト、時間、一貫性メトリクスを測定

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

AIエージェントのアクションスペース、ツール定義、オブザベーションフォーマットを設計・最適化し、タスク完了率を向上させる

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

評価ファーストの実行、分解、コスト考慮型モデルルーティングによるエージェンティックエンジニアとしての運用

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

AIエージェントが実装出力の大部分を生成するチームのためのエンジニアリング運用モデル

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

AI支援開発のためのリグレッションテスト戦略。データベース依存なしのサンドボックスモードAPIテスト、自動バグチェックワークフロー、同一モデルがコードの作成とレビューを行う際のAIの盲点を検出するパターン。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

AndroidおよびKotlin Multiplatformプロジェクトのためのクリーンアーキテクチャパターン — モジュール構成、依存関係ルール、UseCase、Repository、データレイヤーパターン

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

hage-oyaji/everything-claude-code-jp-local32026년 3월 29일 업데이트

hage-oyaji의 스킬 모두 보기

이 스킬의 문제 신고