+
演算子を使わない(bytes.Buffer
かstrings.Join()
を使う)strings
パッケージを使うfmt.Print
系を使わず、バッファリングする// 良い例
b := bufio.NewWriter(os.Stdout)
defer b.Flush()
for i:=0;i<10;i++{
fmt.Fprintln(b,strings.Repeat("a",100))
}
close
するcontext.WithCancel
やcontext.WithTimeout
を使うときは必ずdefer cancel()
を書くdefer resp.Body.Close()
sql.Open
を呼び出さない
sql.DB
構造体は0以上のコネクションプールを持っていて、複数のGoroutineからのアクセスにも対応しているsql.Open
を使うとコネクションリークを起こしてしまうsql.SetMaxIdleConns
とSetMaxOpenConns()
でコネクション数を変更する