Порядок групп импорта
Следует иметь две группы импорта:
- Стандартная библиотека
- Все остальное
Это группировка, применяемая goimports по умолчанию.
Менее удачный вариант:
import (
"fmt"
"os"
"go.uber.org/atomic"
"golang.org/x/sync/errgroup"
)
Более удачный вариант:
import (
"fmt"
"os"
"go.uber.org/atomic"
"golang.org/x/sync/errgroup"
)
Имена пакетов
При именовании пакетов выберите такое имя, которое:
- Все в нижнем регистре. Без заглавных букв и подчеркиваний.
- Не требует переименования с использованием именованного импорта на большинстве мест вызова.
- Коротко и емко. Помните, что имя указывается полностью на каждом месте вызова.
- Не во множественном числе. Например, net/url, а не net/urls.
- Не "common", "util", "shared", "lib". Это неудачные, малоинформативные имена.
Имена функций
Следуйте соглашению сообщества Go об использовании MixedCaps для имен функций. Исключение делается для тестовых функций, которые могут содержать символы подчеркивания с целью группировки связанных тестовых случаев, например, TestMyFunction_WhatIsBeingTested.
Псевдонимы в импорте
Псевдоним импорта необходимо использовать, если имя пакета не соответствует последнему элементу пути импорта.
import (
"net/http"
client "example.com/client-go"
trace "example.com/trace/v2"
)
Во всех других сценариях следует избегать псевдонимов импорта, если нет прямого конфликта между импортами.
Менее удачный вариант:
import (
"fmt"
"os"
nettrace "golang.net/x/trace"
)
Более удачный вариант:
import (
"fmt"
"os"
"runtime/trace"
nettrace "golang.net/x/trace"
)
Читайте также:
- Go style guides: производительность, указание емкости контейнера
- Go style guides: избегайте встраивания типов в общедоступные структуры
- Go style guides: последовательность, группировка объявлений
Комментариев нет:
Отправить комментарий