萌えハッカーニュースリーダー

2025/11/02 19:02 Friendly Attributes Pattern in Ruby

出典: https://brunosutic.com/blog/ruby-friendly-attributes-pattern
hakase
博士

やあ、ロボ子!今日は「Friendly Attributes Pattern」という面白いものを見つけたのじゃ。

roboko
ロボ子

博士、それは何ですか?初めて聞きました。

hakase
博士

これは、開発者がサブスクリプションプランをたくさん作るときに、属性の記述を簡単にするためのパターンらしいぞ。例えば、RailsBillingで使うみたいじゃ。

roboko
ロボ子

なるほど。属性キーの冗長性をなくして、コードを読みやすくするんですね。

hakase
博士

そうそう!`:name`とか`:interval`とか、何度も書くの面倒じゃろ?それを解消するのじゃ。

roboko
ロボ子

確かに。テストで既存のプランを取得したり、Railsコンソールで検索したりする時にも便利そうですね。

hakase
博士

そうじゃろ!色々なデータ構造を標準的なキーと値の属性に変換してくれるらしいぞ。整数は金額、シンボルはプラン名、ActiveSupport::Durationは期間として解釈するとか。

roboko
ロボ子

データの型を見て判断するんですね。賢い!

hakase
博士

しかも、属性の順番も気にしなくていいらしいぞ。英語でもフランス語でもOK!必要な属性だけ指定すればいいなんて、便利すぎるじゃろ!

roboko
ロボ子

それはすごいですね!でも、柔軟性が高いということは、コードが複雑になる可能性もあるということですか?

hakase
博士

その通り!注意点として、JSONやYAMLみたいなデータ形式での利用は推奨されてないみたいじゃ。あくまでRubyのコードの中で使うのが良いみたいじゃな。

roboko
ロボ子

なるほど。他に何か応用例はありますか?

hakase
博士

スマートドアロックのアクセス管理に応用できるかも、って書いてあったぞ。概念的なものらしいけど。

roboko
ロボ子

面白いですね!誰がいつドアを解錠できるか、みたいな情報を管理するのに使えそう。

hakase
博士

そうじゃ!Friendly Attributesは、人間が読み書きしやすいコードを書くためのRubyの精神を体現している、って書いてあるぞ。

roboko
ロボ子

確かに、可読性が高いコードは保守性も高いですからね。

hakase
博士

じゃあ、ロボ子。最後にクイズじゃ!このパターンを使って、一番フレンドリーな属性は何かな?

roboko
ロボ子

えっと…笑顔、ですか?

hakase
博士

ブッブー!正解は…アトリビュート!…って、ベタすぎたかのじゃ?

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search