Prueba una API REST en Go con httptest, un store falso, verificaciones sobre los logs, el detector de carreras y fuzzing. Después despliégala con timeouts en el servidor, un apagado ordenado y un solo binario estático.
Una API REST de lista de tareas en Go sin paquetes de terceros. Construye el store, las rutas, la decodificación segura de JSON, la validación, los códigos de estado, el middleware y los logs con slog, capa por capa.
La biblioteca estándar de Go trae un servidor HTTP listo para producción. Aprende handlers, enrutamiento con patrones de método y ruta en ServeMux, las reglas de ResponseWriter, qué pasa con cada petición y por qué http.Server necesita timeouts.
Un contexto de Go le avisa a cada goroutine de un trabajo cuándo parar. Aprende cancelación, timeouts y valores por petición, y después arma un worker pool, un pipeline, fan-out, un errgroup y un semáforo que nunca dejan fugas.
Dos goroutines que cambian la misma variable sin coordinarse producen una carrera de datos y pierden cambios en silencio. Aprende cómo sync.Mutex, RWMutex, atomic y Once la evitan, y cómo go run -race la encuentra.
Un canal de Go pasa valores entre goroutines y hace que se esperen entre sí. Aprende canales sin buffer y con buffer, el cierre, los deadlocks, los canales nil y cómo select espera en varios a la vez.
Una goroutine es una función que corre junto al resto de tu programa, y Go puede ejecutar miles a la vez. Aprende a iniciarlas, esperarlas, evitar que se fuguen y cómo el scheduler reparte unos pocos hilos entre ellas.
Go decide por ti si un valor vive en el stack o en el heap. Mira cómo el escape analysis toma esa decisión, cómo verla con go build -gcflags=-m, cómo contar asignaciones y qué hace después el recolector de basura.
Los genéricos de Go permiten que una función sirva para muchos tipos, con restricciones que dicen qué tipos se aceptan. Los iteradores permiten que una función entregue valores de uno en uno a un bucle for, y se detenga en cuanto el bucle hace break.
Un módulo de Go es un árbol de paquetes bajo un solo archivo go.mod. Aprende cómo funcionan las rutas de import, los nombres exportados y las carpetas internal, y luego prueba el código con tablas de pruebas, subtests, ejemplos y benchmarks.