それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context¶
チェック¶
- [ ] 本文を確認した
- [ ] 概要を確認した
- [ ] タグを確認した
- [ ]
inbox/直下へ移行した
概要¶
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context のスライド資料。スライド由来のため全文逐語ではなく、構成と実務上の要点を後で確認する。関連タグ: go, go/context, web-clip。
本文¶
それでも私はContextに値を詰めたい | Go Conference 2025 / go ...¶
Share
それでも私はContextに値を詰めたい | Go Conference 2025 / go conference 2025 fill context¶
2025/09/28 Go Conference 2025で発表したLT資料です。
https://gocon.jp/2025/talks/958590/
Yoichiro Shimizu¶
More Decks by Yoichiro Shimizu¶
Other Decks in Technology¶
Featured¶
Transcript¶
© LayerX Inc. それでも私はContextに値を詰めたい 2025/09/28 Go Conference 2025 @budougumi0617 /¶
主にWebサービスにおける リクエストコンテキストの話をします¶
📝おさらい¶
© LayerX Inc. 4 出⼒はどうなる?¶
© LayerX Inc. 5 • それはそう ⼦(呼び出し先)のWithValueは親(呼び出し元)から⾒えない¶
Webサーバあるある¶
© LayerX Inc. 7 • 会社IDやユーザーIDをリクエストのログに付与しておきたい Webサーバあるある¶
© LayerX Inc. 8 よくあるパターン: 認証ミドルウェア‧リクエストログミドルウェア¶
🤔困るとき¶
© LayerX Inc. 10 • GoでクレジットカードやETCカードを作ってます! 突然ですがお仕事紹介¶
© LayerX Inc. 11 • ⾃社の認証情報が⼊っていないリクエストを処理する • クレジットカードで決済があったとき ◦ 💳¶
© LayerX Inc. 12 ビジネスロジックの中で会社を特定しかない¶
© LayerX Inc. 13 • それはそう 再掲: ⼦のWithValueは親から⾒えない¶
© LayerX Inc. 14 これがやりたい¶
© LayerX Inc. 15 • デコレータパターンで伝播する • contextオブジェクトにポインタ構造体を詰める 親のcontextにデータを詰める(渡す)アイデア¶
© LayerX Inc. 16 • Setterを追加したハコを親から渡しておく デコレータパターンで伝播する¶
© LayerX Inc. 17 デコレータパターンで伝播する¶
© LayerX Inc. 18 デコレータパターンで伝播する¶
© LayerX Inc. 19 デコレータパターンで伝播する デコレータ🐭 「http.ResponseWriter (を満たす実装)です!」 コンパイラ🤖 「よし通れ!」¶
© LayerX Inc. 20 👍 Pros • そんなに悪いことしていない(はず) • フレームワーク越しでも使える¶
© LayerX Inc. 21 • 親が参照しているオブジェクトのフィールドを⼦で編集する contextオブジェクトに構造体ポインタ(アドレス)を詰める¶
© LayerX Inc. 22 contextオブジェクトにポインタ構造体を詰める¶
© LayerX Inc. 23 contextオブジェクトにポインタ構造体を詰める ポインタの先にある構造体フィールドは⼦から編集できる¶
© LayerX Inc. 24 👍 Pros • メソッドシグネチャに影響せず、透過的に使える 👎 Cons¶
© LayerX Inc. 25 親コンテキストにどうしても情報を詰めたいとき • デコレータパターンで伝播する • contextオブジェクトにポインタ構造体を詰める ⚠¶
要点¶
- Goの実装・設計・標準的な書き方を面接や実務の深掘り材料にする。
- 元URL: https://speakerdeck.com/budougumi0617/go-conference-2025-fill-context?slide=22c