自作ルーティングをアップデートした
2021年6月18日概要最近、自作ルーティングのgoblinをアップデートしたのでその記録を書き残しておく。 以下は過去ルーティングについて書き残した記事。他にも実装検討フェーズの記事があるが、内容があまり良くないので割愛。 URLルーティング自作入門 エピソード1 URLルーティング自作入門 エピソード2 GolangのHTTPサーバーのコードリーディング Introduction to URL router f...
概要最近、自作ルーティングのgoblinをアップデートしたのでその記録を書き残しておく。 以下は過去ルーティングについて書き残した記事。他にも実装検討フェーズの記事があるが、内容があまり良くないので割愛。 URLルーティング自作入門 エピソード1 URLルーティング自作入門 エピソード2 GolangのHTTPサーバーのコードリーディング Introduction to URL router f...
概要commitを分割したいときの手順についてメモ。 手順# 分割したいところを指定してrebase。対象のcommitをeditにする。 git rebase -i HEAD~5 # unstageする git rebase HEAD~ # unstageしたものを分割したい粒度で再commitする。 git add & git commit # commitが完了したらrebas...
概要 spannerのDBマイグレーションで、golang-migrateを使ったのでメモ。 使い方 dockerで使う想定。 dockerではなくバイナリで実行していたが、ホストマシンのopensslのバージョンに依存して動作しない可能性あるようなので、コンテナ実行が無難だと思う。 MIGRATE_VERSION='v4.14.1' docker run -v /migra...
概要 pkg.go.dev - cloud.google.com/go/spannerでReadOnlyTransactionを使ったときにハマったところについてメモ。 何が起きたか? 数万件のデータを複数回のリクエストに分けて処理するようなバッチ処理のコードを書いていた。 ReadOnlyTransactionを使った処理を以下のように書いていた。 for { // 〜略〜 ...
概要Golangのインメモリキャッシュのライブラリは良さそうなものが存在するが、軽量でシンプルなもので十分だったので自前で実装してみた。 実装要件 複数のデータを保持することができる。 期限付きのデータをメモリに保持することができる。期限が来たらメモリから破棄されること。 キャッシュへの同時参照、更新を考慮し、データのロックが意識されていること。 初期設計※github.com - bmf-sa...
概要github.com - CodeReviewCommentsを読んでメモしておきたいことをまとめる。 Comment Sentences コメントの終わりはピリオドで終わるようにする。 golang.org - commentary Copying 別のパッケージから構造体をコピーするときは、予期しない参照に気を付ける。 メソッドがポインタの値に関連付けられているならTではなく*Tを使うよ...
概要Golang×chromedp×slack botでslackの絵文字自動生成ボットをつくってみた。 作ったものslackでbotにパラメータを付けたメンションを飛ばすと画像を生成してくれるだけのもの。内部的には、パラメータを元にcanvasで画像を生成、ヘッドレスブラウザでスクショを撮って画像を保存、slackに投稿、といった感じ。 github.com - emoji-generator-...