Zen Go (versión de bolsillo)

En previsión del inicio del curso "Desarrollador de Golang", preparamos una traducción de una pequeña nota útil.




Diez consejos técnicos para escribir un código Go simple, legible y fácil de mantener. Presentado como parte de GopherCon Israel 2020 .

Cada paquete tiene un solo propósito.


Un paquete Go correctamente diseñado solo debe implementar una idea, introduciendo un conjunto de comportamientos relacionados. Un buen paquete Go comienza con un buen nombre. Intente hacer que el nombre sea una breve presentación de su paquete, describiendo lo que proporciona con una sola palabra.

Manejo explícito de errores


Los programas confiables consisten en elementos que manejan los errores antes de que puedan golpearlos en la parte posterior. La verbosidad de if err! = Nil {return err} se justifica por la importancia de un manejo bien pensado de cada error en los lugares donde pueden ocurrir. El pánico y la recuperación no son excepciones; no están destinados a ser utilizados de esta manera.

Prevenir la anidación profunda con retorno


Cada vez que sangra, agrega una condición más a la pila mental del programador, ocupando una de 7 ± 2 ranuras en su memoria a corto plazo. Evite los flujos de control de relleno multinivel. En lugar de anidar profundamente, mantenga la ruta de código exitosa lo más hacia la izquierda posible utilizando operadores de límite.

Deja concurrencia a la persona que llama


Deje que la persona que llama elija si quiere ejecutar su biblioteca o funcionar de forma asincrónica, en lugar de imponerle esta opción. Si su biblioteca utiliza subprocesos múltiples, debería hacerlo de manera transparente.

Antes de comenzar con goroutine, pregunte cuándo se detiene.


Los gorutinos tienen recursos; bloqueos, variables, memoria, etc. La forma más confiable de liberar estos recursos es detener la rutina que los tiene.

Evitar propiedades de nivel de paquete


Esfuércese por la transparencia, reduzca la conectividad y evite acciones remotas horribles al proporcionar las dependencias que el tipo necesita como campos de este tipo, en lugar de usar variables de paquete.

La simplicidad importa


La simplicidad no es sinónimo de primitividad. La simplicidad no significa incompletitud, significa legibilidad y mantenibilidad . Si tienes mucho para elegir, siempre inclínate hacia la solución más simple.

Escriba pruebas para capturar el comportamiento de su paquete API.


Ya sea que comience con las pruebas o termine, busque una cobertura de prueba del 100% o esté satisfecho con el mínimo necesario; independientemente de todo esto, la API de su paquete es su contrato con los usuarios. Las pruebas son una garantía de que estos contratos están claramente establecidos. Asegúrese de probar el comportamiento que los usuarios pueden observar y confiar.

Si algo le parece lento, primero pruébelo usando el punto de referencia.


Muchos delitos contra la sostenibilidad se cometen en nombre de la productividad. La optimización destruye las abstracciones, expone el interior y se une firmemente. Si decide asumir esta carga, asegúrese de que haya razones reales para ello.

La moderación es virtud


Use gorutinas, canales, bloqueos, interfaces, incrustando con un sentido de proporción.

El apoyo importa


La claridad, la legibilidad, la simplicidad son aspectos de la sostenibilidad. ¿Es posible apoyar lo que trabajó duro después de que se fue? ¿Qué puedes hacer hoy para facilitarles la vida a quienes te sucedan mañana?



Aprende más sobre el curso.



All Articles