Go

Go実践 #6 テストとデプロイ — httptestとDocker
読了 6分

Go実践 #6 テストとデプロイ — httptestとDocker

httptestでハンドラテスト、結合テストパターン、Dockerマルチステージビルド、小さな運用チェックリスト。

Go実践 #5 ミドルウェアパターン
読了 6分

Go実践 #5 ミドルウェアパターン

http.Handlerアダプタチェーンで作る標準ミドルウェア — ロギング、認証、パニック復旧、リクエストID、CORS。

Go実践 #4 DB連携 — database/sqlとトランザクション
読了 7分

Go実践 #4 DB連携 — database/sqlとトランザクション

database/sqlの基本、prepared statement、トランザクション、コネクションプール設定。そしてsqlc・sqlx・GORMのような上位ツール。

Go実践 #3 JSON入出力と入力検証
読了 6分

Go実践 #3 JSON入出力と入力検証

encoding/jsonのMarshal/Unmarshal、structタグ、デコードエラー処理、そして安全な入力検証パターン。

Go実践 #2 ルーティング — Go 1.22+ ServeMux
読了 5分

Go実践 #2 ルーティング — Go 1.22+ ServeMux

Go 1.22+から入った標準ServeMuxのメソッド/パターンマッチング。chi、gorilla/muxのような外部ルーターが必要な場面も。

Go実践 #1 はじめてのHTTPサーバー
読了 5分

Go実践 #1 はじめてのHTTPサーバー

net/httpパッケージひとつで始める最小のサーバー。ListenAndServe、HandleFunc、ResponseWriter、そしてgraceful shutdown。

Go上級 #7 コード生成 — go generate と stringer
読了 6分

Go上級 #7 コード生成 — go generate と stringer

reflect のランタイムコストを避ける道 — コンパイル時コード生成。go generate ワークフロー、stringer、mockgen のようなツール。

Go上級 #6 プロファイリング — pprof と benchmark
読了 5分

Go上級 #6 プロファイリング — pprof と benchmark

go test -bench、pprof で CPU・メモリ・ゴルーチンプロファイルを取る。性能を推測ではなく計測で扱う方法。

Go上級 #5 unsafe と cgo — 安全領域の外へ
読了 6分

Go上級 #5 unsafe と cgo — 安全領域の外へ

unsafe.Pointer の 4 つのルール、cgo のトレードオフ、そしてどちらもほぼ使ってはいけない理由。

Go上級 #4 reflect パッケージ — ランタイムに型を扱う
読了 6分

Go上級 #4 reflect パッケージ — ランタイムに型を扱う

reflect.Type と reflect.Value、struct タグの読み取り、動的呼び出し。シリアライゼーションライブラリの内側で見かけるツール。

Go上級 #3 ジェネリクス — type parameter と constraint
読了 6分

Go上級 #3 ジェネリクス — type parameter と constraint

Go 1.18 に入ったジェネリクス。type parameter 文法、constraint、comparable と ~ トークン、そしていつ使わないほうが良いか。

Go上級 #2 メモリモデルと sync パッケージ
読了 6分

Go上級 #2 メモリモデルと sync パッケージ

Mutex、RWMutex、WaitGroup、Once、atomic — チャネルではない共有メモリ同期ツール。いつ何を使うか。