Сталкивался ли с Naming convention

«Сталкивался ли с Naming convention» — вопрос из категории Софт-скиллы, который задают на 23% собеседований Golang Разработчик. Ниже — развёрнутый пример ответа, который можно адаптировать под свой опыт.

Ответ

В Go есть строгие соглашения по именованию. Основные правила:

  1. Переменные и функции - camelCase: myVariable, calculateTotal()
  2. Константы - CamelCase или с подчеркиваниями: MaxSize или MAX_SIZE
  3. Публичные сущности (экспортируемые) - с большой буквы: User, GetUser()
  4. Приватные сущности - с маленькой буквы: user, getUser()
  5. Интерфейсы - обычно заканчиваются на -er: Reader, Stringer
  6. Тесты - _test.go в имени файла, функции вида TestFunctionName

Пример:

const MaxUsers = 100

type User struct {
    name string // приватное поле
    Age  int    // публичное поле
}

func (u *User) GetName() string { // публичный метод
    return u.name
}