プログラマーへの道 #128 の補足説明
こんにちは、プログラマー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/42/files
現時点でのソースコードは以下です。
https://github.com/tio-iis/memo-server/tree/9e6bbfffe2c21f32289defe57d5b1893b4c6ff3a
補足内容
構造体をポインタにするかどうかの基準について
私の動画では構造体を常にポインタで扱う方針に倒していますが、ポインタではない方がいいケースもあります。
判断基準は以下に載っています。
https://github.com/golang/go/wiki/CodeReviewComments#receiver-type
日本語訳は以下です。
https://qiita.com/knsh14/items/8b73b31822c109d4c497#receiver-type
本来であれば、このような基準を元に判断すべきですが、メモ帳アプリを作る程度では気にしなくて良い問題なので、一旦ポインタで扱おうと思っています。
関数とメソッドの命名について
関数とメソッドは「xxxをする」という処理を実行するための仕組みです。 なので、命名規則として動詞を先頭に持ってくるのが一般的です。 例えば"AddUser() = ユーザーを追加する", "DeleteUser() = ユーザーを削除する" という感じになります。 これは英語の文法としての正しさを意識する必要があるということです。
私が実装したエラーレスポンスを出力する関数は "ResponseError()" という名前でした。 Responseは名詞なので、動詞にする必要があります。 動詞にすると"RespondError() = エラーをレスポンスする(返す)"という意味になるので、より自然ですね。