仕事振り返り その3

簡単な振り返り

  • group_byでは2カラムセットをキーにしてグループ化できる
  • stateful_enumを使ったtransitionはevent名にcanをつけて呼び出すと、対象のインスタンスが遷移可能なステータスなのかを教えてくれる
  • ハッシュに対して、{}.defaultでkeyが無い場合のvalueのセットができる

設計手法について

context変数

人の設計をみて思ったことですが、SeriveClassやFormObjectなどを作るときに、「主責務からは逸脱するものの、処理の都合上必要なデータ」などをcontextというハッシュにまとめてしまう、という手法を見かけましたが、かなり良いなと思いました。

ViewObject

ViewObjectを使ったSVGの描画が良いなと思いました。 SVGって、動的なものをベタ書きしようとすると、かなりごちゃついてしまうので、ViewObjectにすることで、要素を置く位置を計算するメソッドをViewObjectにまとめてしまって、さらに各要素のVIewObjectをその中で生成していくことで、ViewとViewHelperだけでは複雑になりがちなメソッドを要素ごとにまとめることができます。

例えば、飲食店などで席のVIewをレンダリングして、一つ一つの席のObjectはhighlightメソッドを持っている。そこに人が座ったときにクリックすることでhighlightメソッドがtrueを返し、その席が埋まっていることをホームページなどで知らせることができるシステムなどに使えますね。