Open3
Go の OSS 散歩
Goでアプリケーションを書くことに慣れてきたが、よりベターな書き方を探しべくOSSを散歩してみる。
仕事でよく使うのと機能単位で提供されていて読みやすそうなので散歩する。
テストコード
-
- 常にテストコードは
xxx_test.go
にしていたが、xxx_test.go
/xxx_example_test.go
の2つを用意するのも良さそう -
xxx_example_test.go
は Example Test だけにする。
- 常にテストコードは
-
-
xxx_benchmark_test.go
func BenchmarkChunk(b *testing.B) {...
- benchmark 用としてのテストコード
-
Underlying Type
- 入門Go言語仕様 Underlying Type / Go Language Underlying Type - Speaker Deck
-
func Chunk[T any, Slice ~[]T](collection Slice, size int) []Slice {
の~
の箇所 - 普段はあまりGenerics 使わないので知らなかった(多分学んだけど忘れてた)
Overload の代わりに suffix Number
- 引数の個数や返り値の個数だけが違う関数を作りたいときは、
xxx1, xxx2, xxx3
みたいに suffix に数字をつけただけの関数にしてる
GCP も仕事で使っているので低級レイヤーの箇所がどうなってるか散歩。
- Spanner 周りについて浅く眺めたけど、これといって学べたポイントがなかった。
- 強いて言えば、1つ1つの関数のが多くても150行くらいに収まってるなーくらいの感想。最近、仕事のコードが1つ1つが長いのでどうにかしたいと思ってるので、これくらい1つずつが小さいと認知負荷がめちゃくちゃ楽だなーと再認識