- 2024年7月3日
- 2024年7月3日
Goのcontextを使ってみる
WithCancel WithCancel()でキャンセル用のcontextを作成しておき、2秒待ってから、cancel()を実行して処理を中止するように、longRunningTask()に伝えています。 こうすることで、それ以上実施する必要のない処理を止めることができるようになります。 With […]
WithCancel WithCancel()でキャンセル用のcontextを作成しておき、2秒待ってから、cancel()を実行して処理を中止するように、longRunningTask()に伝えています。 こうすることで、それ以上実施する必要のない処理を止めることができるようになります。 With […]
足し算と引き算をする関数 テストコード 1つずつの条件でも書けるし、テーブルドリブンテストで複数条件を構造体に定義して、ループで回すことでテストを分かりやすく書くことができる。
ローカル環境をSSL化したときに、その環境のSSLバージョンや暗号スイートを調べたいことがあったので、メモとして書きます。 今回のケースだと、TLSv1.2、ECDHE-RSA-AES256-GCM-SHA384であることが分かりました。
goでプログラミングした際に、文法間違いやエラーチェックが抜けている箇所を指摘してくれるgolangci-lintを使ってみます。 golangci-lint インストール Goを書く golangci-lintを実行する メソッドがerrorを返してくるけど、実際にエラーチェックしてない箇所を指摘 […]
Goの標準パッケージを使ったプログラミングに慣れるために、net/httpだけでミドルウェアを書いてみました。 next.ServeHTTP(w, r)の前に書くか、後に書くかで、いつ処理されるかが決まるようです。 動かしてみる
ローカル環境で開発を進める中で、HTTPS環境でないと動かない関数やAPIに出くわすことがあったり、本番環境と同じHTTPS環境で検証したいこともあると思います。 ということで、タイトルのとおり、mkcertを使ってローカル環境をHTTPSにしてみます。 mkcert インストール 自己認証局作成 […]
PC・スマホの両方で、画面遷移時にユーザーの画面操作ログを送信したい。 加えて、確実に送信処理が実行されるようにしたいとします。 PCのみの場合は、unload、beforeunload イベントの場合に送信すればいいですが、モバイルでは、ブラウザーは unload、beforeunload、pag […]
net/httpパッケージを使って、サーバーのハンドラー処理を書いてみた。 handler1、handler2、handler3、handler4、どれも書き方は若干違うが、最終的にhttp.Handle()が呼び出され、ルーティングが登録されるため同義となる。 http.Handle()の第2引数 […]
タイトルのとおり、sql.Openは必ずしも接続を確立しないようです。 https://pkg.go.dev/database/sql#Open Open may just validate its arguments without creating a connection to the dat […]
Goのスライスの挙動について調べたので書く。 容量を超える要素を追加したときは、元の容量を2倍したスライスが作られる。 元のスライスをコピーして新しいスライスが作られるため、メモリ上のアドレスが異なる。 つまり、元のスライスの分だけ、余分にメモリを消費するということ。 ということは、下記のような場合 […]