Go

258 artículos ordenados de base a avanzado — un concepto por artículo.

258 artículos · 1 secciones · actualizándose
Go Python CPP C Linux Rust Dart NVIM chuleta Módulos en Go

§01 Go

01 Introducción a Go: Historia y principios de diseño 3 min 02 Go: Binarios nativos y despliegue sin dependencias 2 min 03 Filosofía de Go: La simplicidad como ventaja 4 min 04 El nicho real de Go: infraestructura y servicios de red 2 min 05 Dónde encaja Go: Comparativa de uso y ecosistemas 3 min 06 Instalación y gestión del entorno de Go 5 min 07 GOROOT, GOPATH y el modelo de módulos moderno 3 min 08 Variables de entorno esenciales en Go 3 min 09 El comando go: herramienta única para todo el flujo 4 min 10 El cerebro detrás de tu editor: gopls y el LSP 4 min 11 Tu primer programa en Go: del source al binario 2 min 12 La estructura mínima de un programa ejecutable en Go 3 min 13 Domina el sistema de importación y paquetes en Go 4 min 14 Documentación nativa con Doc Comments 3 min 15 Convenciones de nombrado y visibilidad en Go 4 min 16 Disciplina estricta: el compilador y el código limpio 3 min 17 El estándar de estilo único con gofmt y goimports 3 min 18 Tipos enteros en Go: tamaños, signos y uso correcto 4 min 19 Uso de tipos de punto flotante y complejos en Go 4 min 20 Booleans y Strings: Tipos primitivos y codificación UTF-8 3 min 21 Conversiones explícitas en Go: evitando errores de tipo 3 min 22 Zero values en Go: Seguridad y diseño de estructuras 3 min 23 Tipos nombrados vs. Alias en Go 4 min 24 var vs :=: cuándo declarar y cuándo inferir en Go 4 min 25 Asignación múltiple y el idiom comma-ok en Go 4 min 26 Uso de const e iota para enumeraciones y bitmasks 3 min 27 Constantes untyped vs. tipadas en Go 4 min 28 Variable Shadowing: el error silencioso en Go 4 min 29 Strings en Go: bytes vs caracteres 3 min 30 UTF-8 y el tipo rune en Go 3 min 31 Conversiones entre string, []byte y []rune en Go 3 min 32 Concatenación eficiente de strings en Go 4 min 33 Manipulación de texto y rendimiento con el paquete strings 4 min 34 Sentencias if con inicialización y scope de variables 3 min 35 El uso maestro de for: las tres formas de iteración en Go 4 min 36 Dominio de la iteración con for-range en Go 4 min 37 El cambio de semántica en variables de loop en Go 1.22 4 min 38 Switch en Go: control de flujo y tipos 4 min 39 Semántica y comportamiento de defer en Go 4 min 40 Funciones: Sintaxis, Visibilidad y Retorno Múltiple 4 min 41 Named Return Values: Claridad vs. Legibilidad 4 min 42 Funciones variádicas: sintaxis, expansión y el uso de any 4 min 43 Funciones como valores y tipos de función en Go 4 min 44 Closures en Go: Captura por referencia y el ciclo de vida de las variables 4 min 45 Go defer: optimización y el peligro de los bucles 4 min 46 Arrays en Go: tamaño fijo y semántica de valor 3 min 47 Anatomía de un Slice: Pointer, Len y Cap 4 min 48 Append y la gestión de memoria en slices de Go 4 min 49 Dominando la gestión de memoria con slices en Go 4 min 50 Manipulación idiomática de slices: copy, filtrado e inserción 5 min 51 Optimización de memoria mediante pre-alocación de slices 3 min 52 Fundamentos y seguridad en el manejo de mapas en Go 3 min 53 Distinguir existencia de zero values en Go maps 4 min 54 Iteración en maps y ordenamiento de claves 3 min 55 Maps y concurrencia: evitando el fatal runtime error 4 min 56 Sets con map[T]struct{} y el uso de clear 4 min 57 Rendimiento de mapas en Go y cuándo usar sync.Map 5 min 58 Structs en Go: Definición y estrategias de inicialización 3 min 59 Estructuras anónimas: cuándo y por qué usarlas 4 min 60 Composición mediante Embedding en Go 4 min 61 Struct Tags: Metadatos y reflexión en Go 4 min 62 Comparación de structs y tipos comparables en Go 4 min 63 Alineación y padding en structs de Go 4 min 64 Punteros en Go: direcciones, desreferencia y seguridad 4 min 65 Paso por valor vs puntero en Go 4 min 66 Entendiendo el Escape Analysis: Stack vs Heap en Go 5 min 67 Punteros y el impacto en el Garbage Collector de Go 4 min 68 Métodos y receivers: comportamiento vinculado a tipos 4 min 69 Receivers en Go: Cuándo usar valores y cuándo punteros 4 min 70 Method sets: la relación crítica entre tipos y punteros 4 min 71 Por qué no puedes extender tipos de otros paquetes 4 min 72 Interfaces implícitas y duck typing estático en Go 4 min 73 Manejo de tipos dinámicos con any y Type Assertions 3 min 74 Acepta interfaces y retorna tipos concretos 4 min 75 Interfaces pequeñas: el motor de la composabilidad en Go 5 min 76 Type Assertions y Type Switches en Go 4 min 77 Composición y embedding de interfaces en Go 5 min 78 El peligro de los punteros nil en interfaces 3 min 79 Mocking idiomático en Go mediante interfaces 4 min 80 El poder de la composición con io.Reader y io.Writer 4 min 81 Historia y diseño de los Generics en Go 4 min 82 Sintaxis y uso de parámetros de tipo en Go 4 min 83 Mastering Type Constraints in Go: any, comparable and custom 4 min 84 Inferencia de tipos en generics: límites y reglas 4 min 85 Generics en structs y la limitación de métodos 4 min 86 Guía pragmática de Generics en Go 5 min 87 GCShape Stenciling: El equilibrio entre binario y rendimiento 4 min 88 Errores como valores: la filosofía de Go 4 min 89 Creación y wrapping de errores en Go 4 min 90 Contexto y jerarquía mediante error wrapping 3 min 91 Uso correcto de errors.Is y errors.As en Go 4 min 92 Patrones de errores: Sentinel, Tipos y Errores Opacos 4 min 93 Panic vs Error: cuándo romper el programa y cuándo devolver un error 5 min 94 Patrón de frontera con recover en servidores Go 4 min 95 Por qué panic y recover no son try/catch en Go 5 min 96 Domina el uso de defer: LIFO, evaluación y closures 4 min 97 Package vs Module: la distinción fundamental en Go 3 min 98 go.mod y go.sum: anatomía y propósito 3 min 99 SemVer e Import Compatibility Rule en Go Modules 4 min 100 Dominando el uso de Vendoring en Go 3 min 101 Visibilidad de paquetes mediante directorios internal 4 min 102 Go Workspaces: Desarrollo multi-módulo sin ensuciar el go.mod 3 min 103 Gestión de módulos privados y GOPROXY en Go 4 min 104 El mito del “Standard Project Layout” en Go 4 min 105 Estructura de proyectos en Go: cmd, internal y pkg 4 min 106 Paquetes y módulos en Go: cuándo separar y cuándo no 4 min 107 Naming idiomático de paquetes en Go 3 min 108 Domina io.Reader e io.Writer en Go 4 min 109 io.Copy: Transferencia de datos eficiente con memoria constante 3 min 110 Transformadores de io: Pipe, MultiReader, TeeReader y LimitReader 4 min 111 Optimización de I/O con buffering en Go 4 min 112 io.ReadAll vs Streaming: Gestión de memoria en Go 4 min 113 Manejo de archivos y filesystem con el paquete os 5 min 114 Dominando *os.File y la abstracción de I/O en Go 4 min 115 Abstracción fs.FS: Desacoplando el acceso a archivos 4 min 116 Uso de embed.FS para archivos integrados en el binario 5 min 117 filepath vs path: cuándo usar cada uno en Go 4 min 118 Serialización con encoding/json: Marshal y Unmarshal 4 min 119 Control de serialización JSON con struct tags en Go 4 min 120 Personalización de JSON con MarshalJSON y UnmarshalJSON 5 min 121 json.Decoder vs json.Unmarshal: Eficiencia y Control 4 min 122 Serialización en Go: JSON, Gob y alternativas 5 min 123 Propagación de cancelación y timeouts con context 4 min 124 Jerarquía de contextos y señales de cancelación en Go 4 min 125 Gestión de cancelaciones y timeouts con context 4 min 126 Propagación y cancelación cooperativa en Go 5 min 127 Uso correcto de context.Value en Go 4 min 128 Goroutines vs Threads: El modelo M:N de Go 5 min 129 Sincronización de goroutines con WaitGroup y canales 4 min 130 Costo real de una goroutine vs un thread del SO 4 min 131 Gestión de Goroutine Leaks: Memoria y Ciclo de Vida 5 min 132 Dominando GOMAXPROCS y el paralelismo en Go 5 min 133 Dominando la comunicación con canales en Go 4 min 134 Diferencia real entre canales con y sin búfer 4 min 135 Iteración con range y el ciclo de vida de los channels 4 min 136 Multiplexación de canales con select en Go 4 min 137 Dominio de canales: nil, cierres y gestión de timers 5 min 138 Worker Pools: Control de concurrencia y gestión de recursos 4 min 139 Pipelines de canales: composición de stages y gestión de errores 5 min 140 Implementación de Fan-out y Fan-in en Go 6 min 141 Control de flujo con canales y time.Ticker 4 min 142 Channels vs Mutexes: ¿Ownership o Protección de Estado? 5 min 143 sync.Mutex y sync.RWMutex: Gestión de concurrencia segura 4 min 144 Sincronización de grupos de tareas con sync.WaitGroup 4 min 145 Sincronización con sync.Once en Go 4 min 146 Optimización de memoria con sync.Pool 4 min 147 sync/atomic: Operaciones de hardware para alta concurrencia 4 min 148 Gestión de errores y cancelación con errgroup 4 min 149 El modelo de memoria de Go y la semántica happens-before 4 min 150 Data Races: Por qué el comportamiento indefinido es letal 3 min 151 Concurrencia segura: Confinement, Inmutabilidad y Diseño 4 min 152 Testing en Go: Convenciones y filosofía de la biblioteca estándar 4 min 153 Table-driven tests: el patrón estándar en Go 4 min 154 Benchmarks, Ejemplos y Fuzzing en Go 4 min 155 Dominando Helper, Cleanup y Parallel en Testing de Go 5 min 156 Interfaces mínimas para diseño testeable en Go 5 min 157 Mocks manuales vs. generadores en Go 4 min 158 Testeo HTTP: ResponseRecorder vs httptest.Server 4 min 159 Testing con Golden Files en Go 5 min 160 Build tags y Short Mode para tests en Go 5 min 161 Dominando go test -bench: Precisión y métricas de rendimiento 5 min 162 Interpretación de Benchmarks: Métricas y Optimización Real 3 min 163 Análisis de CPU con pprof en Go 3 min 164 Profiling de memoria con pprof: Churn vs Retención 4 min 165 Profiling en producción con net/http/pprof 5 min 166 Análisis de concurrencia con go tool trace 4 min 167 El modelo G-M-P: Arquitectura del scheduler de Go 4 min 168 Work Stealing y la eficiencia del scheduler de Go 4 min 169 Preemption asíncrona en el scheduler de Go 4 min 170 El Netpoller: Cómo Go escala I/O sin bloquear threads 5 min 171 El algoritmo tricolor y la barrera de escritura en Go 7 min 172 El impacto de las pausas Stop-the-World en Go 4 min 173 Gestión de memoria: Sintonía fina con GOGC y GOMEMLIMIT 4 min 174 Técnicas para reducir la presión sobre el Garbage Collector 4 min 175 La realidad de la reflexión en Go: cuándo y por qué 5 min 176 Mastering reflect.Type y reflect.Value en Go 5 min 177 Direccionabilidad y modificación de valores con reflect 5 min 178 Las tres leyes de la reflexión en Go 5 min 179 Dominio de unsafe: Rompiendo las reglas de Go de forma segura 5 min 180 El costo real de cruzar la frontera con cgo 4 min 181 Domina go build, go install y go run de forma profesional 4 min 182 Compilación cruzada en Go: despliegue multi-plataforma sin fricción 4 min 183 Build tags y constraints de compilación en Go 4 min 184 Optimización de tamaño y distribución de binarios en Go 4 min 185 Configuración profesional de http.Client y Transport 5 min 186 Construcción profesional de peticiones HTTP en Go 4 min 187 Gestión correcta de http.Response.Body en Go 5 min 188 Middleware en clientes HTTP con RoundTripper 5 min 189 http.Handler vs http.HandlerFunc: arquitectura de servidores 5 min 190 Routing avanzado con http.ServeMux en Go 1.22 4 min 191 Patrón Middleware en Go: Composición de Handlers 5 min 192 Timeouts de http.Server: Blindaje de la infraestructura 4 min 193 Graceful Shutdown en servidores HTTP con Go 4 min 194 Decisiones de arquitectura: net/http vs Frameworks en Go 6 min 195 Gestión de Pools y Abstracción con database/sql 5 min 196 Tuning de Connection Pools en Go 5 min 197 Querying, Scanning y el manejo de NULLs en Go 5 min 198 Patrón robusto para transacciones SQL con defer 5 min 199 Estrategias de persistencia: de SQL manual a código generado 6 min 200 La estandarización del logging: El camino hacia slog 5 min 201 Arquitectura de slog: Logger, Handler y Record 4 min 202 Logging estructurado avanzado con slog en Go 4 min 203 Custom Handlers en slog: Observabilidad y Contexto 5 min 204 Ventajas estructurales de Go en el desarrollo de herramientas CLI 5 min 205 Patrones de diseño y estructura en CLI con Cobra 5 min 206 Interfaces de terminal en Go: de fmt a Bubble Tea 5 min 207 Gestión de configuración: Flags, Env vars y archivos 6 min 208 Gestión de configuración tipada e inyección en Go 5 min 209 Diseño de jerarquías de errores y wrapping en Go 5 min 210 Gestión de stack traces en errores de Go 4 min 211 Gestión de errores en Go: Logging vs Returning 4 min 212 Logs, métricas y trazas: Los pilares de la observabilidad en Go 5 min 213 Instrumentación de APIs con Prometheus en Go 5 min 214 Trazado distribuido con OpenTelemetry en Go 5 min 215 math/rand vs crypto/rand: la diferencia que causa CVEs 4 min 216 Hashing, HMAC y el manejo seguro de contraseñas en Go 4 min 217 Seguridad en Go: JWT, TLS y comparaciones seguras 4 min 218 Deduplicación de peticiones con singleflight 4 min 219 Implementación de Rate Limiting con Token Bucket en Go 4 min 220 Resiliencia en Go: Circuit Breaker, Bulkhead y Backpressure 6 min 221 Gestión de ciclos de vida de goroutines y el patrón Supervisor 5 min 222 Optimización basada en datos con benchmarks y profiling 4 min 223 Optimización de memoria: Reduciendo la presión sobre el GC 4 min 224 Inlining y BCE: Optimizaciones del compilador de Go 5 min 225 Implementación del patrón Functional Options en Go 4 min 226 Diseño de APIs zero-value-usable en Go 5 min 227 Versionado y compatibilidad en librerías de Go 5 min 228 Diseño de APIs con interfaces, io y context 5 min 229 Go en infraestructura y microservicios 5 min 230 gRPC y Protobuf: Eficiencia en Comunicación de Microservicios 6 min 231 Resiliencia en microservicios: Timeouts, Retries y Circuit Breaker 6 min 232 Patrones de mensajería con NATS, Kafka y RabbitMQ en Go 5 min 233 Effective Go: Principios de diseño vs. Sintaxis obsoleta 5 min 234 Los Proverbios de Go: Heurísticas de Diseño en Producción 5 min 235 Iteradores personalizados con range-over-func en Go 1.23 4 min 236 Iteradores estándar con el paquete iter en Go 1.23 5 min 237 El manejo de tiempo en Go: Wall clock vs Reloj Monotónico 5 min 238 Comparabilidad en Go: Generics y el comportamiento de interfaces 5 min 239 Build Constraints y código multi-plataforma en Go 5 min 240 Dominando go generate y la generación de código 5 min 241 Modernizando Protocol Buffers con Buf y Connect-go 5 min 242 WebAssembly y WASI con Go: Navegadores y Runtimes 4 min 243 TinyGo: Compilación optimizada para sistemas embebidos y WASM 5 min 244 Fuzz testing avanzado en Go 5 min 245 Cómo funciona el race detector de Go internamente 4 min 246 Configuración pragmática de golangci-lint 4 min 247 Go Workspaces: Gestión de múltiples módulos en monorepos 5 min 248 OpenTelemetry avanzado en Go: Propagación, Sampling y Baggage 5 min 249 Estrategias de Graceful Shutdown en servicios complejos 6 min 250 Sistemas de plugins en Go: por qué el paquete `plugin` es una trampa 4 min 251 Gestión de fugas de memoria en Go: más allá del GC 4 min 252 Estrategias de migraciones de bases de datos en Go 6 min 253 Implementación de Feature Flags en Go para despliegues seguros 5 min 254 Automatización del ciclo de iteración con Hot Reload en Go 4 min 255 La filosofía de Code Review Comments: Diseño de código idiomático 5 min 256 Vendoring vs. Proxy: Estrategias de Reproducibilidad en Go 4 min 257 Go — Tutorial de Networking (net/http) 13 min 258 Tutorial: Cómo dominar el encapsulamiento y el patrón constructor en Go 10 min