Skip to content

Instantly share code, notes, and snippets.

Go HTTPミドルウェア設計の再考ログ

🤔 問題設定: ロギングと依存関係

Go 1.22+のnet/httpでアプリケーションを構築するにあたり、ミドルウェアの設計を検討する。特に、リクエストのロギングは必須要件となる。

一般的なアプローチは、複数のミドルウェアをチェインさせる、いわゆるタマネギ構造だ。例えば、リクエストID生成、認証、ロギングなどを個別のミドルウェアとして実装する。この方法は各機能の関心が分離され、再利用性が高い。

しかし、ミドルウェア間で依存関係が生じる場合に複雑化する。例えば、アクセスログを記録するミドルウェアは、リクエストIDを生成するミドルウェアがコンテキストに設定した値に依存する。この依存関係は暗黙的であり、ミドルウェアの適用順序を厳密に管理する必要がある。これが保守性の低下を招くことは経験上明らかだ。

@podhmo
podhmo / README.md
Last active November 2, 2025 14:02
カクヨムランキングスクレイパー
@podhmo
podhmo / README.md
Last active October 23, 2025 06:56
@podhmo
podhmo / README.md
Last active October 17, 2025 13:26

goinspect handling error

mkdir -p /tmp/goinspect;
for pkg in $(cat docs/go-stdlib-packages.md | sed 's/^- //g' | grep '^[a-z]'); do
  output="/tmp/goinspect/$(echo $pkg | tr / -).md";
  goinspect -log-level info -pkg $pkg &> /tmp/tmp;
  printf "# ${pkg}\n" > $output;
  printf '```\n' >> $output;
 cat /tmp/tmp >> $output;
package main
import (
"fmt"
"log/slog"
"os"
)
func log(logger *slog.Logger) {
logger.Debug("debug message")

hello world

hoi

@podhmo
podhmo / README.md
Last active September 28, 2025 15:16
gopkg -- goのツールチェインまわりは独特というか癖がありgopkgというコマンドを作ろうと考えてみていた

gopkg -- goのツールチェインまわりは独特というか癖がありgopkgというコマンドを作ろうと考えてみていた

特徴

gopkgはgoのモジュールの内外を含めたパッケージの情報を収集して表示するための便利なサブコマンドのセット。 (ほしいのは本当にCLIのコマンドなのか分かっていない)

サブコマンド

  • gopkg name ... -- package pathからパッケージ名を返す (go listのラッパー)
@podhmo
podhmo / README.md
Last active September 28, 2025 01:04
goname

goname

goname is a simple and robust command-line utility to get the package name from a Go package path.

It is designed to work seamlessly whether the package is part of your current Go module or an external one. It intelligently falls back to a temporary module to resolve package names that are not in your module's dependency graph.

Features

  • Get Package Names: Fetches the official package name from one or more package paths.
  • Version Specifiers: Supports version specifiers like @latest or @v1.2.3 for fetching packages.
@podhmo
podhmo / llm-history.md
Last active September 26, 2025 17:32
ラノベ1800冊の雰囲気を感じてみたかった

対話履歴

ユーザー: ライトノベル1800冊を3年,5年,10年,20年のそれぞれのスパンで読むときにその時代の有名どころを読んだとしてどのくらいのものをどの程度読んでる感じになりますか?

私は書斎に1800冊あるという状態をイメージしてます。そしてその数に達するまでの最終巻の刊行の時期を直近を3年や5年や10年や20年と言ってました。つまり消費する速度ではなくどの年代までの本で蔵書を埋めるか?ということを意図してました。この理解で回答してください。

例えば全巻10から20と仮定すると180から90タイトル挙げる必要があります。省略せず挙げてください。90タイトル挙げてください。

@podhmo
podhmo / README.md
Last active September 20, 2025 12:51
goscanのScannerのcallgraphを作りたいと言ったらcopilotがなんか生成してきた