YEAR

2024年

  • 2024年7月7日

Goでコマンドラインツールを作ってみた

コマンドラインツールを作るのは難しそうなイメージがありましたが、案外簡単に作れてしまいました。 コード main.go サンプルファイル test.txtとして保存します。 動かしてみる 引数が正しくない場合 コマンドラインの使用方法やオプションの説明が表示されます。

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

Goのジェネリクスを試してみた

Goのジェネリクスがよく理解できていなかったので、調べてみました。 ジェネリクス導入前 int型、float64型のそれぞれで同じ処理をする関数を定義しています。 型が異なるので、両者を一緒に計算したり、戻り値で返したりすることができません。 ジェネリクス導入後 Addable型を定義して、それをs […]

  • 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日

Gitで別ブランチの変更を1ファイルだけ持ってくる

gitで別ブランチの変更をコミット単位で持ってこれる、cherry-pickコマンドはありますが、その変更の全てがほしいわけではなく、一部ファイルの変更だけが欲しい場面がたまにあります。 そういうときに使えるコマンドがあったので、紹介します。 たとえば、featureブランチにある特定ファイルの変更 […]