CATEGORY

Go

  • 2024年7月6日
  • 2024年7月6日

Goでベンチマークを測ってみた

はじめに Goで関数のパフォーマンスを測ってみたいと思い、調べて使ってみました。 コード 文字列をループで回して結合する関数stringsのJoinで結合する関数どちらのほうがパフォーマンスがいいか計測してみます。 ここでは、1000個の配列テストデータを作成して、それを対象関数に渡しています。te […]

  • 2024年7月6日
  • 2024年7月6日

Goでトランザクション処理をやってみる

タイトルどおり、Goでトランザクションを張って処理を実行してみます。 コード ポイントは、defer tx.Rollback()で、ロールバックを予約しておくことです。 こうしておくことで、処理がコケたときに自動でロールバックが実行されるようになります。 コミット後にロールバックが実行されても処理が […]

  • 2024年7月5日
  • 2024年7月5日

Goでファイルの読み書きをする

Goでファイルの読み書きをしてみようと思い、書いてみました。 os.Create()でファイルを作り、その戻り値のfile.Write()でデータを書き込み、そのファイルを最後に読み込んでいます。 動かしてみる

  • 2024年7月5日
  • 2024年7月5日

GoでWebSocket通信をやってみる

クライアントとサーバーで双方向通信ができるWebSocket通信を、Goでやってみました。 Goのコード Go側では、gorilla/websocketパッケージを利用して、WebSocketの接続を待ち受けます。 接続を確立した後は、for文で永続的にコネクションを維持します。 サーバーからのプッ […]

  • 2024年7月3日
  • 2024年7月3日

Goのcontextを使ってみる

WithCancel WithCancel()でキャンセル用のcontextを作成しておき、2秒待ってから、cancel()を実行して処理を中止するように、longRunningTask()に伝えています。 こうすることで、それ以上実施する必要のない処理を止めることができるようになります。 With […]

  • 2024年7月2日
  • 2024年7月3日

Goのテストを書いてみる

足し算と引き算をする関数 テストコード 1つずつの条件でも書けるし、テーブルドリブンテストで複数条件を構造体に定義して、ループで回すことでテストを分かりやすく書くことができる。

  • 2024年7月2日
  • 2024年7月3日

golangci-lintを使ってみる

goでプログラミングした際に、文法間違いやエラーチェックが抜けている箇所を指摘してくれるgolangci-lintを使ってみます。 golangci-lint インストール Goを書く golangci-lintを実行する メソッドがerrorを返してくるけど、実際にエラーチェックしてない箇所を指摘 […]

  • 2024年7月1日
  • 2024年7月3日

Goのnet/httpで、ミドルウェアを書いてみる

Goの標準パッケージを使ったプログラミングに慣れるために、net/httpだけでミドルウェアを書いてみました。 next.ServeHTTP(w, r)の前に書くか、後に書くかで、いつ処理されるかが決まるようです。 動かしてみる

  • 2024年6月30日
  • 2024年7月3日

Goのnet/httpでサーバーのハンドラー処理を作ってみる

net/httpパッケージを使って、サーバーのハンドラー処理を書いてみた。 handler1、handler2、handler3、handler4、どれも書き方は若干違うが、最終的にhttp.Handle()が呼び出され、ルーティングが登録されるため同義となる。 http.Handle()の第2引数 […]