プログラマー VTuber 衣亥栖ティオのちょっとした話

Youtubeに投稿したプログラミング学習動画の補足説明をするためのブログです。

プログラマーへの道 #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

これも少しバラバラに管理してしまっているので、リファクタリングしないといけないなと思っています。