0Pricing
Java Academy · レッスン

メソッド分解とクリーンコード

問題を小さく、わかりやすい名前のメソッドに分割します。重複を減らし、純粋なヘルパーを優先し、パラメータリストをシンプルに保ちます。

「メソッド分解とクリーンコード」はCoddyKit上の無料Java Academyレッスンです。 これはレッスン3/3です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはJava Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Java Academyコースには全3レッスンが含まれています。

メソッドを分解する理由

なぜ分解するのでしょうか。小さなメソッドは読みやすく、テストしやすく、再利用しやすいからです。意図を明確にし、詳細を隠すことで、main の処理の流れを物語のように読めるようにします。

単一責任

1つのメソッドに1つの目的。メソッドが計算と出力の両方を行う場合は、分割します。本体は短く(おおよそ5~15行)、名前は動詞にします。

名前とパラメーター

名前で意図を伝えます。calc1 より applyDiscount を優先します。パラメーターは少数で意味のあるものにし、動作を隠してしまう boolean フラグは避けます。

重複をなくす

DRY。同じ数行をコピー&ペーストしているなら、ヘルパーとして切り出し、両方の場所から呼び出します。これにより、ルールが変わったときのバグを減らせます。

純粋なヘルパー

純粋なメソッドは入力だけに依存し、結果を返します。再利用やテストが簡単です。入出力や出力処理は外側に置きます。

デモ:ヘルパーへの分解

小さく説明的なヘルパー(applyDiscount、addTax、round2)に注目してください。ロジックは再利用とテストが可能で、出力処理は分離されています。

public class Main {
  // Entry point: reads like a story using small helpers
  public static void main(String[] args) {
    double subtotal = 120.00;
    double discountRate = 0.10; // 10% off
    double taxRate = 0.08;      // 8% tax

    double discounted = applyDiscount(subtotal, discountRate); // pure
    double taxed = addTax(discounted, taxRate);                 // pure
    double total = round2(taxed);                               // pure

    printReceipt(subtotal, discountRate, taxRate, total);       // I/O kept at edge
  }

  // Apply a percentage discount (pure)
  static double applyDiscount(double amount, double rate) {
    return amount - (amount * rate);
  }

  // Add a percentage tax (pure)
  static double addTax(double amount, double rate) {
    return amount + (amount * rate);
  }

  // Round to 2 decimals (pure)
  static double round2(double x) {
    return Math.round(x * 100.0) / 100.0;
  }

  // Handle printing separately (side effect)
  static void printReceipt(double subtotal, double discountRate, double taxRate, double total) {
    System.out.println("Subtotal: " + subtotal);
    System.out.println("Discount: " + (int)(discountRate * 100) + "%");
    System.out.println("Tax: " + (int)(taxRate * 100) + "%");
    System.out.println("Total: " + total);
  }
}

クリーンな設計の確認

クイックチェック:クリーンなメソッド設計を最もよく表す選択肢はどれですか。

復習

復習:タスクを分解し、明確な名前を選び、重複をなくし、副作用を外側に置いて、中心部分には純粋なヘルパーを保ちます。

よくある質問

「メソッド分解とクリーンコード」レッスンは無料ですか?

はい。「メソッド分解とクリーンコード」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Java Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Java Academyコースには全3レッスンが含まれています。

「メソッド分解とクリーンコード」で何を学びますか?

問題を小さく、わかりやすい名前のメソッドに分割します。重複を減らし、純粋なヘルパーを優先し、パラメータリストをシンプルに保ちます。 ブラウザで直接実行するハンズオンコードでJava Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Java Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのJava Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/3です。

「メソッド分解とクリーンコード」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このJava Academyレッスンでコードを書いて実行できますか?

はい。すべてのJava Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. Javaの値渡し
  2. staticメソッドとインスタンスメソッド
  3. メソッド分解とクリーンコード
← Java Academyに戻る