プログラマーへの道 #139 の補足説明
こんにちは、プログラマーVTuberの衣亥栖ティオです。
この記事はYouTubeに投稿した動画の補足ブログです。
投稿した動画
今回は以下の動画の補足説明をします。
GitHub のURL
私のGitHubは以下です。
https://github.com/tio-iis
Gist のURL
私のGitst(メモ書きみたいなもの)のURLは以下です。
https://gist.github.com/tio-iis
今回の動画で実装したソースコード
今回の実装は以下です。
https://github.com/tio-iis/memo-server/pull/52/files
現時点でのソースコードは以下です。
https://github.com/tio-iis/memo-server/tree/7eb1422c79d53c6169cbd8129bfe4c26fad64ee7
補足内容
GoにおけるHTTP関連の定数について
GoにはHTTP関連の定数が存在します。
https://pkg.go.dev/net/http#pkg-constants
直接プログラム上に500やGETという値を記載するのではなく、上記の定数を利用しましょう。
バリデーションのコピペについて
今回の動画では、以下のようにHTTP Methodに対するバリデーションを実装しました。
https://github.com/tio-iis/memo-server/pull/52/files#diff-2873f79a86c0d8b3335cd7731b0ecf7dd4301eb19a82ef7a1cba7589b5252261R242-R252
この実装は各エンドポイントで似たような実装になるので、関数にまとめてもよかったかもしれません。 あとでリファクタリングしようかなと思っています。
ErrorMessage構造体の管理について
バックエンドサーバの実装ではErrorMessage構造体によって、クライアントに返すエラーレスポンスを管理しています。
https://github.com/tio-iis/memo-server/pull/52/files#diff-2873f79a86c0d8b3335cd7731b0ecf7dd4301eb19a82ef7a1cba7589b5252261R272-R275
これも少しバラバラに管理してしまっているので、リファクタリングしないといけないなと思っています。