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
}
