Curso de Go con NotebookLm y Learning Go (second edition)
- Go 99.9%
| .vscode | ||
| modulo01-tipos-compuestos | ||
| modulo02-control-flujo | ||
| modulo03-funciones-recursos | ||
| modulo04-punteros-memoria | ||
| modulo05-metodos-interfaces | ||
| modulo06-genericos | ||
| modulo07-errores | ||
| modulo08-herramientas-calidad | ||
| modulo09-concurrencia | ||
| modulo10-testing | ||
| varios/cola_en_go | ||
| .gitignore | ||
| go.mod | ||
| main.go | ||
| Makefile | ||
| README.md | ||
| temp.md | ||
Go with NotebookLM
Curso de Go idiomático y práctico (basado en Learning Go, 2.ª ed.), organizado por módulos con ejemplos y ejercicios resueltos.
Índice de módulos
- Módulo 1: Tipos compuestos y estructura de memoria
- Módulo 2: Control de flujo
- Módulo 3: Funciones avanzadas y gestión de recursos (Closures y
defer) - Módulo 4: Punteros y gestión de memoria
- Módulo 5: Métodos, composición e interfaces implícitas
- Módulo 6: Genéricos (
type parameters) - Módulo 7: Tratamiento de errores idiomático
- Módulo 8: Módulos, herramientas y calidad de código
- Módulo 9: Concurrencia con CSP (Goroutines, Canales,
select,sync) - Módulo 10: Pruebas (
testing), table-driven tests, benchmarks
Cómo ejecutar los ejemplos
Cada ejercicio es un package main independiente. Puedes ejecutarlo directamente con go run:
# Módulo 1
go run ./modulo01-tipos-compuestos/ejercicio01-filtro-logs
go run ./modulo01-tipos-compuestos/ejercicio02-limpieza-sesiones
go run ./modulo01-tipos-compuestos/ejemplo-set
# Módulo 3 - Closures y defer
go run ./modulo03-funciones-recursos/ejercicio01-prefijador
go run ./modulo03-funciones-recursos/ejercicio02-medir-tiempo
go run ./modulo03-funciones-recursos/ejercicio03-transaccion
# Módulo 5 - Interfaces
go run ./modulo05-metodos-interfaces/ejercicio02-pagador
go run ./modulo05-metodos-interfaces/ejercicio03-any
Comprobar calidad de código
Antes de subir cambios, es recomendable ejecutar:
# Formatear
go fmt ./...
# Analizar con go vet
go vet ./...
# Compilar todo
go build ./...
# Detectar race conditions (si hay concurrencia)
go run -race ./modulo09-concurrencia
# Ejecutar tests
go test -v ./...
Estructura del repositorio
.
├── go.mod
├── main.go
├── Makefile
├── README.md
├── modulo01-tipos-compuestos/
├── modulo02-control-flujo/
├── modulo03-funciones-recursos/
├── modulo04-punteros-memoria/
├── modulo05-metodos-interfaces/
├── modulo06-genericos/
├── modulo07-errores/
├── modulo08-herramientas-calidad/
├── modulo09-concurrencia/
├── modulo10-testing/
└── varios/
Notas
- Convenciones: Carpetas en minúsculas, sin espacios ni tildes (
moduloNN-tema). - Un ejercicio = una carpeta: Cada uno con su propio
main.gopara evitar conflictos depackage main. - Idiomatic Go: Se prioriza claridad, legibilidad y convenciones oficiales.
- Curso completo: Cubre fundamentos, tipos compuestos, punteros, interfaces, genéricos, errores, concurrencia y testing.