- 2024年7月7日
- 2024年7月7日
Goでディレクトリ操作をしてみる
ディレクトリ作成 ディレクトリ作成(再帰) ディレクトリ一覧取得 ディレクトリ一覧取得(再帰) ディレクトリ削除 ディレクトリ削除(再帰)
ディレクトリ作成 ディレクトリ作成(再帰) ディレクトリ一覧取得 ディレクトリ一覧取得(再帰) ディレクトリ削除 ディレクトリ削除(再帰)
はじめに Goで関数のパフォーマンスを測ってみたいと思い、調べて使ってみました。 コード 文字列をループで回して結合する関数stringsのJoinで結合する関数どちらのほうがパフォーマンスがいいか計測してみます。 ここでは、1000個の配列テストデータを作成して、それを対象関数に渡しています。te […]
タイトルどおり、Goでトランザクションを張って処理を実行してみます。 コード ポイントは、defer tx.Rollback()で、ロールバックを予約しておくことです。 こうしておくことで、処理がコケたときに自動でロールバックが実行されるようになります。 コミット後にロールバックが実行されても処理が […]
Goでファイルの読み書きをしてみようと思い、書いてみました。 os.Create()でファイルを作り、その戻り値のfile.Write()でデータを書き込み、そのファイルを最後に読み込んでいます。 動かしてみる
クライアントとサーバーで双方向通信ができるWebSocket通信を、Goでやってみました。 Goのコード Go側では、gorilla/websocketパッケージを利用して、WebSocketの接続を待ち受けます。 接続を確立した後は、for文で永続的にコネクションを維持します。 サーバーからのプッ […]
WithCancel WithCancel()でキャンセル用のcontextを作成しておき、2秒待ってから、cancel()を実行して処理を中止するように、longRunningTask()に伝えています。 こうすることで、それ以上実施する必要のない処理を止めることができるようになります。 With […]
足し算と引き算をする関数 テストコード 1つずつの条件でも書けるし、テーブルドリブンテストで複数条件を構造体に定義して、ループで回すことでテストを分かりやすく書くことができる。
goでプログラミングした際に、文法間違いやエラーチェックが抜けている箇所を指摘してくれるgolangci-lintを使ってみます。 golangci-lint インストール Goを書く golangci-lintを実行する メソッドがerrorを返してくるけど、実際にエラーチェックしてない箇所を指摘 […]
Goの標準パッケージを使ったプログラミングに慣れるために、net/httpだけでミドルウェアを書いてみました。 next.ServeHTTP(w, r)の前に書くか、後に書くかで、いつ処理されるかが決まるようです。 動かしてみる
net/httpパッケージを使って、サーバーのハンドラー処理を書いてみた。 handler1、handler2、handler3、handler4、どれも書き方は若干違うが、最終的にhttp.Handle()が呼び出され、ルーティングが登録されるため同義となる。 http.Handle()の第2引数 […]