Open3

Go の OSS 散歩

snamiki1212snamiki1212

Goでアプリケーションを書くことに慣れてきたが、よりベターな書き方を探しべくOSSを散歩してみる。

snamiki1212snamiki1212

GitHub - samber/lo: 💥 A Lodash-style Go library based on Go 1.18+ Generics (map, filter, contains, find...)

仕事でよく使うのと機能単位で提供されていて読みやすそうなので散歩する。

テストコード

    • 常にテストコードは xxx_test.go にしていたが、xxx_test.go / xxx_example_test.go の2つを用意するのも良さそう
    • xxx_example_test.goExample Test だけにする。
    • xxx_benchmark_test.go
      • func BenchmarkChunk(b *testing.B) {...
    • benchmark 用としてのテストコード

Underlying Type

Overload の代わりに suffix Number

  • 引数の個数や返り値の個数だけが違う関数を作りたいときは、xxx1, xxx2, xxx3みたいに suffix に数字をつけただけの関数にしてる
snamiki1212snamiki1212

GCP も仕事で使っているので低級レイヤーの箇所がどうなってるか散歩。

  • Spanner 周りについて浅く眺めたけど、これといって学べたポイントがなかった。
  • 強いて言えば、1つ1つの関数のが多くても150行くらいに収まってるなーくらいの感想。最近、仕事のコードが1つ1つが長いのでどうにかしたいと思ってるので、これくらい1つずつが小さいと認知負荷がめちゃくちゃ楽だなーと再認識