Skip to content

Go

Ginkgo難解

Ginkgo使えば使うほどわからなくなってくる。

上から順番に、途中経過もチェックしながら実行したいだけなんだけどなぁ。

詳解Go言語Webアプリケーション開発

詳解Go言語Webアプリケーション開発 | 清水陽一郎 | 工学 | Kindleストア | Amazon読み終わった。

後半のハンズオン、途中から説明が足りない感じで、何度かbudougumi0617/go_todo_app: 書籍「詳解Go言語Webアプリケーション開発」のサンプルコードリポジトリです。を見る必要があった。

そして上記リポジトリにも正誤表があるが、そこそこ違っている。

Kindle版なのだから即修正反映してくれればいいのに、と思うけどそうはいかないみたい。残念。

Read more

Ginkgo難解

久しぶりにonsi/ginkgo: A Modern Testing Framework for Go触って、やっぱりよくわからないなー、と。

BeforeEachとか使って、初期化処理を共通化しようとしたのだけれど、初期化されていない現象とか。

テスト用の構造体ってちゃんと作ろうとすると結構行数食ってしまうけど、あまりテストコードと離れたところに置きたくない気持ちもあり。

うーん。

MLTファイルを作る

Shotcutのプロジェクトの保存形式がMLTで、中身はXMLのテキスト。

作業動画を編集していて、無音部分はスキップして尺を短くしたい。

無音部分はffmpegのsilencedetectで検出できるので、そのタイムスタンプで切ったShotcutプロジェクトを開けば、効率的に不要な部分を切り詰めつつ必要な部分を残せるのではないかという目論見。

https://github.com/umemak/ffmpeg_test/blob/main/main.go

とりあえずこんな感じで。

Go言語のエラーラッピング

エラーのラッピングをすると何がうれしいのかという問いへの解答が見えた気がする。

ラッピングしない場合、元のエラーの文字列以外の情報が失われてしまうが、ラッピングするとエラー情報をアンラップして取り出すことができる。

失われてしまう情報が呼び出し元で必要な場合は、エラーをそのままreturnして返すか、必要な情報も含めてErrorfに書かないといけない。

Read more

sqlc

別の調べものをしていて見つけたsqlc.dev | Compile SQL to type-safe Goを試してみた。

schema.sqlは、今までMySQLの起動時に読み込ませていたSQLファイルがそのまま使えた。

query.sqlもgoのmodelパッケージ内に書いていたSQLをコピペで作れた。

結構良いかも。

Goのエラー処理

fmt.Errorf("~~: %w", err)の書き方にルールあるのかな、と思って調べたら、先人の記事があった。

いつもその時の雰囲気で書いていたので、こういったルールで揃えられるのは良い。

もうひとつ、template.Executeでエラーになったときに、どうするべきなのかという疑問。これも解決されていた。

Read more