• 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年7月1日
  • 2024年7月3日

mkcertで、ローカル環境をHTTPSにする

ローカル環境で開発を進める中で、HTTPS環境でないと動かない関数やAPIに出くわすことがあったり、本番環境と同じHTTPS環境で検証したいこともあると思います。 ということで、タイトルのとおり、mkcertを使ってローカル環境をHTTPSにしてみます。 mkcert インストール 自己認証局作成 […]

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

【Javascript】画面遷移時に、ブラウザに送信処理を予約してデータ送信する

PC・スマホの両方で、画面遷移時にユーザーの画面操作ログを送信したい。 加えて、確実に送信処理が実行されるようにしたいとします。 PCのみの場合は、unload、beforeunload イベントの場合に送信すればいいですが、モバイルでは、ブラウザーは unload、beforeunload、pag […]

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

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

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

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

Goのスライスの挙動

Goのスライスの挙動について調べたので書く。 容量を超える要素を追加したときは、元の容量を2倍したスライスが作られる。 元のスライスをコピーして新しいスライスが作られるため、メモリ上のアドレスが異なる。 つまり、元のスライスの分だけ、余分にメモリを消費するということ。 ということは、下記のような場合 […]