#Golang
64 件の記事
Goのresponse.WriteHeaderの副作用について
response.WriteHeaderの複数回呼び出しによる副作用を解析し、bytes.Bufferを使った回避方法とtemplateのExecute処理の実装パターンを提示。
GoでServeMuxの機能拡張を提案するProposalがAcceptedになった
Goのnet/http ServeMuxに動的ルーティングとパスパラメータを追加するProposalがAcceptedに。goblinなどサードパーティルーターやGoのルーティングの今後への意味を解説します。
Go言語100Tips 開発者にありがちな間違いへの対処法
Go言語100Tips 開発者にありがちな間違いへの対処法
Goのhttp.RoundTripperについて
http.RoundTripperインターフェースを実装してHTTPクライアント側のミドルウェア的処理を実装し、ログ・認証・キャッシュ・リトライの例を示す。
Go言語による分散サービス
Go言語による分散サービス
実用Go言語
実用Go言語
Goで始めるコードのパフォーマンス改善
Goのパフォーマンス改善の実践。pprofによるプロファイリング、ベンチマーク、エスケープ解析、メモリアロケーション削減を、自作HTTPルーターの最適化事例とともに解説します。
DefaultServeMux以外でpprofを使う方法
Go言語のpprofパフォーマンス分析、DefaultServeMux以外のカスタムルーターでpprof.Indexをハンドラ登録する実装
Goのhtml/templateでURLをエンコードさせない
Goのhtml/templateがURLを自動エンコードする理由と、template.URLを使ってエンコードさせずに生のURLを渡す方法を、最小の動作例つきで解説します。
buildxを使ったGoアプリケーションイメージのクロスコンパイル
Docker buildxのマルチアーキテクチャビルドで、GoアプリをLinux AMD64とARM64向けにクロスコンパイルしてイメージ化する方法を解説します。
Goを学びなおす
言語仕様やジェネリクスの実装、Go 1.18以降の機能をひと通り見直し、Goのコーディング力を鍛えなおす方法を紹介します。
GoのHTTP Routerを比較するベンチマーカーを実装した
複数のGoルーターをベンチマーク比較し、静的ルート・パスパラメータなどのテストケース設計を通してパフォーマンス差分を測定。
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
Goプログラミング実践入門 標準ライブラリでゼロからWebアプリを作る
Cloud Functionsを使ってSlack AppのSlash Commandを実装
Google Cloud FunctionsでSlack Slash Commandを実装。サーバーレス、低コスト、Signing Secret認証、Cloud Buildでデプロイするボット実装ガイドを紹介します。
GoでClean Architectureのレイヤーを静的解析する
go-cleanarchを使い、GoでClean Architectureのレイヤー依存関係を静的解析で検証・強制する方法を解説します。
bmf-techを支える技術
Docker、Golang、Vue.js、Nginx、Prometheus、Grafanaなど、このブログのインフラと監視を支える技術を紹介します。
Golangでロードバランサーを実装する
L4ロードバランサーをGoで実装し、ラウンドロビンスケジューリング・ヘルスチェック・リバースプロキシの仕組みを構築例を通して解説。
net/httpでつくるHTTPルーター自作入門
Golangのnet/httpでHTTPルーター自作を解説。ルートマップ、URLパス解析、メソッド別ルーティング、パスパラメータの仕組みをステップバイステップで実装ガイドします。
GolangのHTTPサーバーのコードリーディング
goblinルーター開発時に調査したGoのHTTPサーバー内部実装を解説。http.Server構造体、ServeMux、Handler登録フロー、goroutineによるコネクション処理を実装コードから読み解く。
自作ルーティングをアップデートした
自作のGo製HTTPルーターgoblinに追加したミドルウェア対応や最適化を、パフォーマンスベンチマークとともに紹介します。