Go Lang me recuerda un al lenguaje C, en la época que no existian todavía el concepto de clases, polimorfismo y herencia. Lo haciamos todo con funciones. No quiero decir que GO no sea Orientado a objetos, si lo es, pero a partir de las estructuras y la composición, no tiene herencia tal y como la manejabamos en Java o C++.
- Especifica los tipos de dato en las nuevas variables que inicializes. No todo debe ser iniciando con :=
- No definas variables o importes paquetes que no necesites, el IDE lo elimina, si piensas usarlos luego comentalos
- Usa apropiadamente las conveciones de nombre, debe ser consistente, corto y facilmente compresible. Usa MixedCase para todos los nombre en GO, no uses _ como en python, los acronimos deben ser mayusculas, manten las variables cortas y los indces o argumentos en ciclos pueden ser una sola letra.
- Usa comentarios para transferir conocimiento y trata de ser hacer codigo autoexplicable
- Maneja errores primero y evitar anidar
- Evita codigo repetido con las tipos utilidades
- Usa el tipo Swicth para interceptar casos especiales, no es necesario el break que usabamos en los demas lenguajes
- Organiza el codigo. El código importante va primero, es decir, información de licencia, etiquetas de compilación, documentación del paquetem luego de imports y los grupos separados por espacio en blanco el resto del codigo inician con los tipos mas significativos y terminamos con las funciones de ayuda. Separa tu codigo en archivos pequeños. Mientras usa las rutinas Go, salga del canal cuando termine su función con ese canal para evitar fugas.
- Cree cada imagen de Docker una vez y promuévala a través de una serie de repositorios provisionales. De esta manera, puede garantizar que lo que se probó es exactamente lo que se está lanzando a producción.
Parte del texto fue tomado de: https://golangdocs.com/golang-best-practices