きっかけ
最近でいちばんなるほどと思ったこと、検索してもあまり出てこない情報だなと感じたのでまとめる。
出来事
ActiveModelSerializerでJSONを出力する際、Rubyの命名規則でカラム名を書こうとした。
たとえば、ユーザーが自身のアイコン画像があるかのフラグを真偽値で返したいときの命名。
class UserSerializer < ActiveModel::Serializer
attributes :id,
:name,
:registered_avatar
def registered_avatar
...
end
end
最初はavatar_registered?
と命名しようとしたが、
他のserializerのコードを見ても語尾に?
をつけた命名をしていなかったので、
何でだろうと思いながらも一応空気を読んでregistered_avatar
と命名してPRを出した。
すると
avatar_exist
の方がいいかも。
Serializer内での命名はJSONに反映され、特に他の言語の開発者の目に触れるので
Rubyの命名規則ではない方が他言語の開発者にとってわかりやすい。
JSやSwiftなど有名どころの言語の命名習慣を見ておくといいよ!
とレビューをもらった。
まとめ
「なるほど、たしかに語尾に?
付ける命名するのはRubyだけだしな」とかなり腑に落ちた!
API作るときなど、ネイティブ側へのこういう細かい配慮まで考えて開発できるエンジニアになりたいと強く思いました。
↓最終的なコード
class UserSerializer < ActiveModel::Serializer
attributes :id,
:name,
:avatar_exist
def avatar_exist
...
end
end