Go のミドルウェア Adapter パターンに美しさを感じた話

medium.com

間に処理を差し込みたいとき、直接中身をいじるのではなく handler を引数にとって、新しい handler で返す関数(decorator pattern?) なのが良いね。

そして、Go の http.Handler の仕組みってすげーってなった。 handler は本来は Handle() を実装した interface なので、普通 struct を作らないといけないが、 type HandlerFunc func(...) ってやることによって、func にもメソッドをはやせるようになり struct つくらなくても func だけで handler が作れる

qiita.com

この記事にかいてあった。この記事は昔読んだはずなのに、よくわからずなままになってた。 やっぱり実際にコードを書いて初めて「そういうことか!」って理解することが多い。手を動かすのは大事。