Goのメソッド設計
April 20, 2014 - golang
vitessのmemcacheクライアント実装を見てて思ったこと。
golangのメソッドは値とエラーを返す。 つまり、呼び出す側としては、エラーを受け取るメソッドを呼び出すごとにエラー制御が必要になる。 これを1つのメソッドの中で複数エラー制御してると可読性が下がる。 なので、エラー制御が必要になるごとにメソッドに切り出す。
たぶんこんなふうに分割してくんだと思いました。
func main() {
conn, err := net.Dial("tcp", "localhost:11211")
}
を使うなら
func NewConn() (conn net.Conn, err error) {
conn, err := net.Dial("tcp", "localhost:11211")
if err != nil {
return nil, err
}
return conn, nil
}
func main() {
conn, err := NewConn()
if err != nil {
panic(err)
}
//
}
と言った感じ。