Go言語でドメインオブジェクト自体がバリデーションを行う
Go言語では、ドメインオブジェクトの検証 (バリデーション) を行うために、自分自身に対して定義された関数を使用することができます。
このバリデーション関数では、ドメインオブジェクトが有効かどうかを判断し、バリデーションが成功した場合に true
を返し、失敗した場合に false
を返すようにします。
また、その関数の名前はIsValid
などが分かりやすくておすすめです。
バリデーション関数の具体的なコード例
例えば、次のような User
ドメインオブジェクトがあり、このUserオブジェクトに対するバリデーション関数は以下のようになります。
type User struct {
Name string
Email string
}
func (u *User) IsValid() bool {
if u.Name == "" || u.Email == "" {
return false
}
return true
}
上記の例だと、UserのNameとEmailが空文字である場合にバリデーションで弾くようにしています。