Цель этого руководства — управление сложностью, поддержание последовательного стиля кода и предотвращение распространённых ошибок. Новый код должен следовать нижеописанным правилам, а проверяющие должны убедиться, что новые запросы на внесение изменений (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 следует учитывать следующие моменты для предотвращения распространённых ошибок.
install.sh
, charts
и yamls
должны установить новый CRD.cleanup.sh
должен очистить CRD и все связанные ресурсы.gc.go
должен проверять несоответствие ресурсов и выполнять очистку.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Опубликовать ( 0 )