YAGNI

1 件の記事

Contents

Do not add variables or functions that the specification does not require (YAGNI principle). (仕様に必要のない変数や関数を追加しない(YAGNI原則))

解説

YAGNI(You Aren’t Gonna Need It)原則は、現時点で必要のない機能を実装しないという考え方です。将来必要になるかもしれないと予測して実装した機能の多くは、実際には使われず、コードの複雑性を増すだけです。未使用のコードはメンテナンスコストを増加させ、バグの温床となります。仕様に明記された要件のみを実装することで、シンプルで保守しやすいコードベースを維持できます。

具体例

// 悪い例(仕様にない機能を実装)
type User struct {
    Name  string
    Email string
    Age   int           // 仕様に不要
    Phone string        // 仕様に不要
}

func (u *User) GetFullProfile() map[string]interface{} {
    // 仕様に不要な複雑な処理
    return map[string]interface{}{
        "name":  u.Name,
        "email": u.Email,
        "age":   u.Age,
        "phone": u.Phone,
    }
}

// 良い例(仕様に必要な要素のみ)
type User struct {
    Name  string
    Email string
}

func (u *User) GetEmail() string {
    return u.Email
}

参考リンク