毎日やったことを記録していく(2019/5/16 39日目)

今日やったこと

英語

TOEIC® L&R テスト 文法問題 でる1000問
  • 回答数:5問
iKnow
  • 新規:0個
  • 復習:150個
スタディサプリENGLISH
  • クイックワードクイズ:1サブセクション

読書

ノンデザイナーズ・デザインブック
  • 21ページ

開発

danime-nico-tools
  • fixturesの更新
案件1
  • 画像アップロード機能の作成

知ったこと

RailsのControllerでの例外のrescueの方法

ruby本来のrescueを使うのではなく、rescue_fromを使う。

APIにおけるパラメータのバリデーション

APIで受け取るパラメータのバリデーションをする場合、下記の2つがある。

  • StrongParameterのrequireで検証する
  • ModelやParameterオブジェクトにバリデーションを定義する

最初は前者で実装していたのだが、検討した結果後者の方がいいのではという結論になった。
理由は2つある。
まず、前者だと必須パラメータの検証しかできない(formatの検証とかができない)から。
もう1つはrequireにはkeyを1つしか渡せないので複数検証する場合は複数行書く必要があるのだけど、パラメータの不足がわかった時点で例外をraiseするので複数不足があったとしても最初に検出された不足項目しかエラーとして返せないから。

感想等

クラスの責務の分割

今関わってる案件でRailsでよく使われるデザインパターンのうちいくつかを採用してみた。
今回使ったのはViewModelとParameter。
クラスの責務とか考えるの楽しいけど、もっとまとまった情報とかほしいので今週のKyoto.rbで話題に上げてみよう。(採用されるかはわからないけど)