モジュールの戻り値の設計について
Webアプリケーションを作成しているのですが、moduleの戻り値の設計についてどうすれば良いのか悩んでいます。
「usersモデルのuser_nameを更新する」という単純なmoduleを作成することを例にしてみます。
module UserNameUpdate
def update(user, user_name)
if user.blank?
return xxx
end
if user_name.blank?
return xxx
end
user.update!(user_name: user_name)
end
end
引数がnilでないことや、必要であれば型もチェックするかもしれません。
hashで返してみることやstringで返すことも考えてみましたが、奥が深くて指針となるようなドキュメントを読んでみたいです。
module UserNameUpdate
def update(user, user_name)
hash = {
code: 1,
message: nil
}
if user.blank?
hash['message'] = '引数のmessageがnilです'
return hash
end
if user_name.blank?
hash['message'] = '引数のuser_nameがnilです'
return hash
end
user.update!(user_name: user_name)
end
end
戻り値はどう設計するのがベストでしょうか。Ruby/Railsに関係なく普遍的な問題かと思っていますので、言語/FWは特に限定はしないです。
ドキュメントや良いアイディアがあれば教えていただけますでしょうか。
あと、タグって何を付けるのが適切ですかね。。それっぽいタグが無く。。