Resumen de Reglas y Mejores Prácticas de Go
Índice transversal de reglas que enlaza cada lista de verificación del sitio.
Busca en todas las páginas de la documentación
Índice transversal de reglas que enlaza cada lista de verificación del sitio.
Estas reglas destilan la sección de reglas de Go y apuntan a listas de verificación especializadas para concurrencia, módulos, seguridad y rendimiento.
v1.x.%w cuando los llamadores inspeccionen centinelas. Los mensajes opacos rompen las cadenas de errors.Is.context.Context primero en funciones de IO y RPC. Nómbrelo ctx; nunca almacene contexto en structs.internal/ para paquetes no públicos. La aplicación del compilador supera los comentarios de "no importar".go mod tidy en cada cambio de módulo. Confirme las diferencias de go.sum atómicamente con las importaciones./v2.go mod why -m en las nuevas solicitudes.context o WaitGroup. Las fugas se manifiestan como bloqueos de apagado y OOM.go test -race en paquetes que usan goroutines o mapas compartidos. Los fallos de concurrencia bloquean la fusión.govulncheck cuando cambien las dependencias. Clasifique las CVE alcanzables con actualización o aceptación fechada.vet y los modernizadores de go fix cambian la aplicación.Effective Go as a Living Standard, luego Go Rules Quickstart, luego el Nivel A de esta página.
Reglas de Effective Go, luego Concurrencia, luego Seguridad antes del lanzamiento.
Reglas de Diseño de API y Módulos antes de etiquetar v1.
Automatice subconjuntos objetivos.
Mantenga las reglas de juicio en las revisiones y ADR.
Enlace aquí como canónico.
Agregue un documento delta corto para reglas exclusivas de la organización (proveedor de registro, framework RPC).
Trimestralmente y después de las versiones menores de Go.
Documente la evidencia de benchmark y limite la excepción al paquete caliente.
El Nivel A se aplica en su mayor parte.
Los subconjuntos de concurrencia y stdlib necesitan listas de verificación con etiquetas de compilación.
Sí, para formato, vet, module tidy y govulncheck.
El diseño de interfaces y la operabilidad aún requieren revisión humana.
Las profundizaciones se encuentran en secciones hermanas: manejo de errores, paquetes-módulos, seguridad, perfilado de rendimiento y calidad de linting.
Versiones de Stack: Esta página fue escrita para Go 1.26.x (predeterminado Green Tea GC, modernizadores de go fix - verifique el parche en la compilación), chi (última versión - verifique en la compilación), gin (última versión - verifique en la compilación), echo (última versión - verifique en la compilación), google.golang.org/grpc (última versión - verifique en la compilación), sigs.k8s.io/controller-runtime (última versión - verifique en la compilación), kubebuilder (última versión - verifique en la compilación), tinygo (última versión - verifique los objetivos de la placa en la compilación), wazero (última versión - verifique en la compilación) y golangci-lint (última versión - verifique el conjunto de linters en la compilación).
Revisado por Chris St. John·Última actualización: 18 jul 2026