Golang best practices we follow Functions that return something are given noun-like names func (c *Config) GetJobName(key string) (value string, ok bool) // not okay func (c *Config) JobName(key string) (value string, ok bool) // okay Functions that do something are given verb-like names func (c *Config) WriteDetail(w io.Writer) (int64, error) // okay Identical functions that differ only by the types involved include the name of the type at the end of the name. func ParseInt(input string) (int, error) // okay func ParseInt64(input string) (int64, error) // okay func AppendInt(buf []byte, value int) []byte // okay func AppendInt64(buf []byte, value int64) []byte // okay If there is a clear “primary” version, the type can be omitted from the name for that version: func (c *Config) Marshal() ([]byte, error) // okay func (c *Config) MarshalText() (string, error) // okay