1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/shapohun-kube-ovn

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
CODE_STYLE.md 3.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 08.03.2025 04:53 789086f

Кодовый стиль Kube-OVN

Введение

Цель этого руководства — управление сложностью, поддержание последовательного стиля кода и предотвращение распространённых ошибок. Новый код должен следовать нижеописанным правилам, а проверяющие должны убедиться, что новые запросы на внесение изменений (pull requests) соответствуют этим правилам.

Стиль

Именование

Всегда используйте camelCase для названий переменных и функций.

Плохо Хорошо
go var command_line string go var commandLine string

Обработка ошибок

Все неожиданные ошибки должны обрабатываться с помощью логирования ошибок. Ни одна ошибка не должна игнорироваться молча.

Плохо Хорошо
go kubeClient, _ := kubernetes.NewForConfig(cfg) go kubeClient, err := kubernetes.NewForConfig(cfg) if err != nil { klog.Errorf("initialization of Kubernetes client failed: %v", err) return err }

Мы предпочитаем использовать конструкцию if err := someFunction(); err != nil {} для проверки ошибок в одной строке.

Плохо Хорошо
go err := c.initNodeRoutes() if err != nil { klog.Fatalf("Failed to initialize node routes: %v", err) } go if err := c.initNodeRoutes(); err != nil { klog.Fatalf("Failed to initialize node routes: %v", err) }

Функции

Длина одной функции не должна превышать 100 строк.

Когда возникает ошибка внутри функции, она должна быть передана вызывающему коду, а не игнорирована молча.

Плохо Хорошо
go func startHandle() { if err = some(); err != nil { klog.Errorf(err) return } return } go func startHandle() error { if err = some(); err != nil { klog.Errorf(err) return err } return nil }

При добавлении нового CRD в Kube-OVN следует учитывать следующие моменты для предотвращения распространённых ошибок.

  1. Новая функциональность должна быть отключена по причинам производительности и стабильности.
  2. Файлы install.sh, charts и yamls должны установить новый CRD.
  3. Файл cleanup.sh должен очистить CRD и все связанные ресурсы.
  4. Файл gc.go должен проверять несоответствие ресурсов и выполнять очистку.
  5. События добавления/обновления/удаления могут быть запущены несколько раз в течение жизненного цикла; обработчики должны быть рекурсивными.

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://api.gitlife.ru/oschina-mirror/shapohun-kube-ovn.git
git@api.gitlife.ru:oschina-mirror/shapohun-kube-ovn.git
oschina-mirror
shapohun-kube-ovn
shapohun-kube-ovn
master