今週やったこと
API設計
入力項目が多めなページで使う情報を含んだAPIの設計を行いました。
テーブル設計の依存関係をそのままレスポンスで表現したところJSONの階層が深くなっていたのでそれぞれのキーを同じ階層に移すように指摘をもらったりしましたが、あとは大体OKだったのでこれから実装に入ります。
クローリング処理にログを追加
既存のクローリング処理がエラーになった際にそれがロジックで問題があるのかクローリング時のレスポンスが想定外なのかログ出力してなくて調査に時間がかかっていたので、ログを追加して調査を効率化できるようにしました。
これまでログを読む経験はけっこうありましたが、ログを追加していくことはあまりなかったので、いろいろ参考記事など読みながら進めたいと思います。
今のところCloudWatchからその日のバッチ処理のログを見ていますが、S3に吐き出す方法もあると思いますので、やりながらより良い方法を探りたいと思います。
Good Code, Bad Code買った
評判が良かったこちらの書籍を買いました。
仕事がいろいろ山積みなので一気に読むことはできないのですが、休憩時間とか使って少しずつ読もうと思います。
今週学んだこと
文字列の中のランダムに生成される部分以外をテストする方法
現場の他のメンバーのプルリクエストで、S3にアップロードされたファイルパスをテストする方法としてPythonのreライブラリを使ってpresigned URLのランダムに生成される部分を除外しているのが勉強になりました。
テストの中で生成されるpresigned URLは以下のようになっており
https://バケット名.s3.amazonaws.com/ファイルパス?X-Amz-Algorithm=AWS4-HMAC~~~
ファイルパスまでをテストしたいので?以降を空文字に変換することで、固定で生成されるファイルパスをテストできる。
dict["key"] = re.sub("\?.*", "", dict["key"])
面白かった記事など
ログ関連の記事をいろいろ読んでみて、まだ自分の知見が浅い部分なので勉強になりました。