アプリケーション

slogを使ったContextual Logging

アプリケーション

概要 Goでlog/slogを使ったcontextual loggingについてまとめる。 log/slogとは Go1.21で追加された構造化ロギングのためのパッケージ。 構造化ロギングとは、ログを構造化されたデータとして出力すること。 今まではGoで構造化ロギングをする場合はサードパーティのパッケージを利用するか、自前でスクラッチするかしか手段がなかったが、今後は標準パッケージも視野に入るよう...

slog contextual logging

Goのresponse.WriteHeaderの副作用について

アプリケーション

概要 Goのresponse.WriteHeaderの副作用についてメモする。 superfluous response.WriteHeader 以下は愚直な例だが、次のようにWriteHeaderを複数回呼ぶと、http: superfluous response.WriteHeader call from main.handlerというエラーが出る。 package main import ...

Golang

GoでServeMuxの機能拡張を提案するProposalがAcceptedになった

アプリケーション

以前からウォッチしていたnet/http: enhanced ServeMux routing #61410がAcceptedになったので、それについてポエムをかく。 最終的な仕様がどうなるかはわからないが、静的なルーティングの機能(/foo/barのような固定値のルーティング)しか持っていないServeMuxに動的なルーティング(/foo/:idのようなパスパラメータを使ったルーティング)の機能...

Golang router HTTP

Goを学びなおす

アプリケーション

概要 仕事でもプライベートでも何年かGoを触っているが、今一度このタイミングで学び直してみると効果的ではないかなと思って色々学び直した。 その際に読んだ記事をリストアップしておく。 モチベーション 基本的なことの復習、仕様で拾い切れていなかった部分や新機能のキャッチアップ、tips周りを拾って、Goのコーディング力を上げるためのベースを鍛え直したい。 仕様理解 仕様理解に関連する記事をgo.dev...

Golang

Goのhttp.RoundTripperについて

アプリケーション

概要 Goのhttp.RoundTripperについてかく。 http.RoundTripperとは HTTPクライアントの通信を担っているインターフェース。 cf. pkg.go.dev - net/http#RoundTripper HTTPクライアントにおいてリクエストからレスポンスを受け取るまでの間の処理をカスタマイズすることができる。 HTTPクライアントにおけるミドルウェアというイメー...

Golang

Goでfan-inとfan-outを実装する

アプリケーション

概要 並行処理のパターンであるfan-in、fan-outをGoで実装する。 fan-in/fan-outとは fan-inは、複数の入力を1つにまとめる処理で、fan-outは、1つの入力を複数に分ける処理である。 fan-inはデータを集約させ、fan-outはデータを分散させる。 Goではchannelとgoroutineを使って実現することができる。 実装 ソースコードはgithubにも置...

fan-in fan-out

実用Go言語を読んだ

アプリケーション

実用Go言語を読み終わったので読書メモを残す。 何年かGoを触っているが知らなかったり忘れていたことに気づけて大変勉強になった。 変数名 Errorインターフェースを満たすError型の変数名の接尾辞はError ex. NotImplementedError errors.Newで宣言されるエラーの変数名の接頭辞はErr ex. ErrNotImplemented := errors.Ne...

Golang

Template MethodパターンとStarategyパターンについて

アプリケーション

概要 GoFの振る舞いに関するパターンであるTemplate MethodパターンとStrategyパターンについてまとめる。 Template Methodパターンとは 大枠の処理を上位のクラスで決めておき、具体的な処理の流れを下位のクラスに任せる設計パターン。 package main type Game interface { Init() Start() End(...

Strategy Template Method

gRPCとProtocol Buffersについて復習するためのリンク集

アプリケーション

概要 gRPCとProtocol Buffersについて改めておさらいしておきたかった。 リンク gRPC grpc.io 公式ドキュメント zenn.dev - 作ってわかる! はじめてのgRPC まだ読んだことなかったので読んでみたのだが大変勉強になった。日本語情報はまずこれ読んでみると良いかも。 www.wantedly.com - gRPC Internal - gRPC の設計...

gRPC Protocol Buffers