Effective Go 備忘録

Effective Go

Effective Goに記載されている中でも特に気になったものだけをまとめる

フォーマッティング

  • フォーマットを行うことでソースコードの可読性が上がるが、チームや会社ごとに異なる
  • Goでは標準で自動フォーマットを行なってくれるため、Goを利用いている人たちの共通認識でフォーマットされ似たようなコードになる

命名

  • パッケージ名はあくまでデフォルト名であり、エイリアスで名前衝突を防げるため、1単語で定義することが望ましい(例:string conversion -> strconv)
  • 別名をつけることができるため、他のパッケージ名と名前が被っても良い
  • 1メソッドのインターフェースは、メソッド名に-erサフィックスを加えた名前を持つ
  • キャメルケースを利用する
import (
    "bytes"
    repository "github.com/devlights/domain/repository"
    repositoryImpl "github.com/devlights/infra/repository"
)

func main() {
    bytes.NewBufferString("string")
}

ゲッター・セッター

  • ゲッター:Name()
  • セッター:SetName()