Closed11
詳解Go言語Webアプリケーション開発メモ
golangでホットリロードするためのツールair
Github Actionsでgoのlintを使うなら必須のツール
参考にする完成ソースコード
Linuxから出るSIGTERMというシグナルを検知してグレースフルシャットダウンをする。
os/signalパッケージのsignal.NotifyContextで実現可能
testingのCleanupはテスト、サブテストが終わったあとに呼び出す処理を登録する。
じゃあdeferでいいじゃんと思ったら、Goの仕様でサブテスト実行前にdeferが実行されるらしい。
なのでサブテストを動かすときにdeferしたい処理があるなら代わりにCleanupを使おうということになる。
testingパッケージのHelper() はテストがコケたときに原因調査がしやすくなる。
ヘルパー関数の定義は言語、フレームワークによって色々あるが、主関数から呼び出される補助関数、特定に関数だけで使う作業用関数らしい。ゴールデンテスト
過去に実行したテストの結果をファイルに保存(= Golden Files)し、再度実行するときはそのファイルと同じ結果が返ってきているかどうかをチェックするテスト手法のことを Golden Test と呼びます1。
Goではテストに使用する入力や期待値を*.json.goldenで保存する。
validationのStructStructCtx違いがわからない。
goroutineのためにやってると思うけどわからない。
curl post時に@を使うとファイルとして認識されるっぽい
curl -i -XPOST localhost:11111/tasks -d @./handler/testdata/add_task/ok_req.json.golden
インターフェースの実装チェックがすぐに理解できなかった
var (
// インターフェイスが期待通りに宣言されているか確認
_ Beginner = (*sqlx.DB)(nil)
_ Preparer = (*sqlx.DB)(nil)
_ Queryer = (*sqlx.DB)(nil)
_ Execer = (*sqlx.DB)(nil)
_ Execer = (*sqlx.Tx)(nil)
)
このスクラップは2023/03/31にクローズされました