16.6 Sincronización mediante canales
16.7 Demultiplexión con select
16.8 Cancelando lecturas después de un tiempo de espera
16.9 Cancelando tareas mediante contextos
17.1 HTTP explicado en 3 minutos
17.2 REST explicado en 3 minutos
17.3 Creación de un servicio HTTP en Go
17.3.2 Funciones http.ListenAndServe y http.ListenAndServeTLS
17.3.3 Ejemplo de servidor HTTP
17.4 Creación de un cliente HTTP en Go
17.4.1 Ejemplo de cliente HTTP
17.5 Ejemplo práctico de servicio REST
17.5.1 Probando el servicio REST
CAPÍTULO 18. SERIALIZACIÓN DE DATOS
18.1 Serialización de tipos Go a JSON
18.2 Deserialización de JSON a tipos Go
18.3 Serializando y deserializando documentos JSON sin formato
18.4 Serialización de porciones y arrays
18.5 Serialización y deserialización en otros formatos
CAPÍTULO 19. CONEXIÓN A BASES DE DATOS SQL
19.2 Abriendo una base de datos
19.3 Modificando la base de datos
CAPÍTULO 20. PRUEBAS AUTOMATIZADAS DE SOFTWARE
20.1 Código a probar: la función Factorial
INTRODUCCIÓN
Go es el lenguaje de moda entre informáticos. Sin duda, es uno de los lenguajes de programación que durante la última década han ganado más impulso entre los programadores de diversas disciplinas. Pese a ser un lenguaje relativamente “joven”, no ha tardado en hacerse con una legión, ya no de adeptos, sino de auténticos fans.
Son muchas las causas del éxito de Go:
• Es versátil. Combina características de los lenguajes de bajo nivel, como C++, con características de lenguajes dinámicos, como Python o Ruby. Esto hace de Go un lenguaje tan idóneo para software de sistema (controladores, comandos de sistema, agentes de monitorización, incluso programación de sistemas embebidos gracias a la implementación de tinygo.org) como para la creación de grandes aplicaciones web y sistemas de servicios distribuidos.
• Es rápido. Es un lenguaje cuyos ejecutables se distribuyen en código nativo, sin necesidad de máquinas virtuales o intérpretes de lenguaje. Compila las técnicas de optimización más vanguardistas.
• Es compacto. Genera ejecutables pequeños que incluyen todo el código necesario, sin necesidad de bibliotecas externas o entornos de ejecución extra.
• Es muy rápido compilando. Está enfocado hacia las tendencias actuales de integración y despliegue continuo de aplicaciones, mediante las cuales el software está en continua actualización. Hoy, el tiempo de compilación es una métrica clave para la productividad de los equipos de desarrollo.
• Es seguro. A diferencia de otros lenguajes como C o C++, donde un apuntador a memoria “desbocado” puede suponer un grave fallo de seguridad, Go comprueba la seguridad de los accesos a memoria de tal manera que un usuario malintencionado lo tendrá mucho más difícil para encontrar fallos de seguridad explotables.
• Es sencillo. Los equipos de desarrollo modernos pasan muchas horas revisando código de sus compañeros, con tal de reforzar unos estándares de calidad altos. Go es un lenguaje diseñado para ser fácil de leer y entender, lo cual incentiva