「結局のところ、webアプリはデータをユーザーフレンドリーに加工・出力するだけ」という言葉を強いエンジニアの口から聞いたことがある。 一理あると思う。だからこそ入力されるデータこそに価値がある、ともいえる。
でエンジニアとしてはデータの加工能力が大事になるわけだが、いまの自分にとってはこれが課題だ。
このテーブルにあるこのカラムの値が同じレコードの場合は、CSVに格納する値をまとめて'[A|B]'のようにしてくれ、などの仕様があったりする。 RailsのActiveRecordのクエリを使って何とかデータを引き出して、Rubyのメソッドを使って加工する能力が求められる。 Railsの方はなんとかなる(groupの使い方がまだ腹落ちしていないけれど)が、Rubyの方がまだたどたどしい。 配列なら何とかやりようはあるのだけれど、配列じゃ難しいときがある。
このようなときは方針がいくつか挙がるけれど、その方針の採択にも同じく迷う。
- 実はActiveRecordでもっと求める形に近いデータを用意できる
- hashを上手く使う
今日のタスクは2が有力な気がしている。なので明日ゴニョゴニョしてみる予定。
いっとき競プロに挑戦した経験があるが、それが役立つことはある。flattanで配列のネストをなくしたり、concatで配列をくっつけたりと。 少しだけでもかじっていてよかったと思う。
モデルメソッドまたはインスタンスメソッドが適しているのか、というのも迷う。何が基準なんだろうか。 N+1は意識しているけど、パフォーマンスの基準の手持ちもない。
これはおそらく教科書となるコードのストック不足なのかと考えている。 有名なgemとかを読んで美しいコードを見とく・写経したほうがよいかもしれない。
あとは実地で訓練して、PRレビューで指摘してもらうとかかな。
(了)