完全性

1 件の記事

Contents

Leave no TODOs or partially implemented code. (TODOや部分的に実装されたコードを残さない)

解説

TODOコメントや未実装のコードは、不完全な状態でコードがマージされていることを示します。これらは時間とともに忘れられ、技術的負債として蓄積します。コードレビュー時にもノイズとなり、本当に重要な問題を見逃す原因となります。すべての機能は完全に実装され、テストが通った状態でコミットされるべきです。やむを得ず後回しにする場合は、課題管理システムに登録し、コード内には残しません。

具体例

// 悪い例
func ProcessOrder(order Order) error {
    // TODO: バリデーション追加

    if err := saveOrder(order); err != nil {
        return err
    }

    // TODO: メール送信実装
    // sendConfirmationEmail(order.Email)

    return nil
}

// 良い例
func ProcessOrder(order Order) error {
    if err := validateOrder(order); err != nil {
        return err
    }

    if err := saveOrder(order); err != nil {
        return err
    }

    if err := sendConfirmationEmail(order.Email); err != nil {
        return err
    }

    return nil
}

func validateOrder(order Order) error {
    if order.Amount <= 0 {
        return errors.New("invalid amount")
    }
    return nil
}

func sendConfirmationEmail(email string) error {
    // 完全に実装済み
    return emailClient.Send(email, "Order Confirmed")
}

参考リンク