メソッド分解とクリーンコード
問題を小さく、わかりやすい名前のメソッドに分割します。重複を減らし、純粋なヘルパーを優先し、パラメータリストをシンプルに保ちます。
「メソッド分解とクリーンコード」は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フィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- Javaの値渡し
- staticメソッドとインスタンスメソッド
- メソッド分解とクリーンコード