Go Programming Language Tutorial
He escrito una serie de entradas que intentan servir de guía e introducción para aprender el lenguaje de programación Go. Este tutorial requiere que conozcas al menos las bases de la programación, por lo que probablemente sea una buena idea leerlo sólo si estás aprendiendo Go como tu segundo o tercer lenguaje de programación. Este contenido va desde la sintaxis básica de Go hasta usos avanzados como la captura de señales o la contenedorización.
Introducción al lenguaje Go y Sintaxis Básica
Introducción al lenguaje de programación Go, tipos de datos nativos, variables, la polémica en torno a este lenguaje, lo bueno, lo malo, lo feo e incluso un vistazo a su popular, y a veces odiada, mascota.
Go lenguaje de programación introducción a variables y tipos de datos
Cómo crear funciones go y pasarles argumentos, junto con la base del paquete fmt utilizado para imprimir texto por pantalla
Go: funciones, argumentos y el paquete fmt
Domina los diferentes tipos de bucles que existen en go, aprende a utilizar el control de flujo para ejecutar tu código condicionalmente y conoce las cláusulas break, continue y defer.
Go: ciclos for, break, continue, defer, if y else
Crear array y slices y conocer sus diferencias y cómo iterar sobre ellos correctamente usando range.
Aprende cómo funcionan internamente los map o diccionarios, las diferentes formas de crearlos y cómo iterar sobre ellos usando range.
Lee sobre las principales diferencias que existen entre string, runas y bytes en go, cómo funcionan internamente y sus principales métodos relacionados.
Tutorial de Lenguaje de Programación Go: Programación orientada a objetos
Go no tiene clases, pero puedes emular características de POO (polimorfismo, herencia y encapsulación) usando go structs.
Go: Structs, herencia, polimorfismo y encapsulación
Cómo manejar e importar y referenciar paquetes y módulos en go.
Go: importación de paquetes y manejo de modulos
Tutorial de Lenguaje de Programación Go: Concurrencia y Corrutinas
La característica que hace destacar a go: concurrencia y goroutines, aprende a crearlas y manejarlas.
Go: introducción a las goroutines y concurrencia
Aquí te explico cómo comunicar goroutines a través de canales y los principios fundamentales a tener en cuenta cuando se trabaja con código concurrente.
Go: uso de channels o canales para comunicar goroutinas
Entender el concepto de deadlocks en el contexto del trabajo con goroutines, cómo evitarlos y qué causa este problema.
Go: channels, entendiendo los deadlocks o puntos muertos
Los fundamentos de las condiciones de carrera cuando se trabaja con código concurrente y cómo prevenirlas. Crear código resistente a condiciones de carrera usando mutexes en Go
Go: condiciones de carrera en goroutines y mutex
Tutorial de Lenguaje de Programación Go: Pruebas y Registro
La base de las capacidades de prueba y cobertura de go.
Cómo perfilar y examinar el rendimiento del código usando go.
Go: profiling o perfilado básico del uso del CPU
Cómo usar la librería de logging por defecto en el lenguaje de programación go.
Logging con la librería estándar en Go
Aplicaciones Go
Cómo capturar señales y procesarlas en go para finalizar la ejecución de tu código de forma elegante y segura.
Go: Manejo de Signals para Cerrar Aplicaciones
Aprende a manejar migraciones SQL usando la librería migrate de go
Tutorial de migraciones en Go con migrate
La base de la librería reflection de go y cómo crear código flexible que trate con tipos desconocidos
Go con Reflect: Mayor Flexibilidad En Tu Código
¿Sabías que Docker está escrito en Go? ¿Te has preguntado alguna vez cómo funciona internamente un contenedor Docker? Pues aquí te explico todos los conceptos que necesitas saber para crear tu propia tecnología de contenedorización.
¿Cómo Funciona un Container de Docker Internamente?
Explico el patrón de diseño worker pool en go y cómo aprovechar la concurrencia de Go y este patrón de diseño para limitar la cantidad de recursos que utiliza tu aplicación.