Comprobar sitios web con workers de Go es un proyecto práctico para estudiantes de Go preparados para coordinar trabajo concurrente. Ayuda a una persona organizadora a comprobar las entradas web locales preparadas antes de abrir un evento. Crea un comando reutilizable que realice solicitudes HTTP reales y guarde un resultado JSON fiel por cada tarea asignada, incluidas tareas distintas que comparten una URL.
Dos laboratorios guiados construyen primero un comprobador completo para un objetivo y después reparten las tareas entre un pequeño grupo de workers. Un desafío independiente comprueba otra ruta del evento con un máximo de tres workers. Cada unidad comienza con su propio entorno y datos. Calcula unos 155 minutos, una estimación del autor que incluye lectura y correcciones habituales.
Lo que aprenderás
Al completar el curso, podrás:
- conservar el ID y la URL original de cada tarea, generando exactamente un resultado aunque otra tarea falle;
- distinguir rechazos HTTP, contenido inesperado, errores de conexión y tiempos de espera agotados, incluidos fallos al leer el cuerpo de una respuesta;
- configurar un tiempo de espera finito del cliente HTTP y cerrar los cuerpos de respuesta recibidos;
- distribuir tareas con goroutines y canales, explicar quién debe cerrar cada canal y esperar a los workers con
sync.WaitGroup; - recopilar resultados sin escrituras concurrentes en una colección compartida y observar solicitudes realmente solapadas dentro del límite de workers;
- guardar e inspeccionar un informe JSON completo, admitir distintos órdenes de finalización y manejar entradas vacías o menos tareas que workers.
A quién va dirigido este curso
Este curso está pensado para estudiantes de Go que quieran convertir funciones y estructuras de datos conocidas en una herramienta concurrente útil de línea de comandos.
Requisitos previos: Navegación básica por la terminal, funciones, estructuras, slices, módulos y sintaxis básica de canales de Go, además de Crear una API de objetos perdidos o experiencia equivalente con HTTP. Los laboratorios explican goroutines, responsabilidad de cierre de canales, sync.WaitGroup, tiempos de espera del cliente y limpieza de cuerpos de respuesta antes de utilizarlos.
Entorno de aprendizaje: LabEx proporciona Go, código inicial, objetivos HTTP locales controlados y un WebIDE en el navegador. Usa la terminal Workspace para ejecutar el comprobador y leer su informe JSON sin instalar Go localmente. Los comandos, el contenido de los objetivos y la salida del programa permanecen en inglés.
Preguntas frecuentes
¿Escanearé sitios web públicos?
Solo comprobarás los objetivos locales preparados, cuyos retrasos son finitos. Es una herramienta de comprobación puntual; la monitorización continua, las alertas y las garantías para condiciones arbitrarias de Internet quedan fuera del proyecto.
¿Un objetivo fallido detiene las demás comprobaciones?
Cada tarea de entrada debe recibir su propio resultado. Un rechazo HTTP del servidor es distinto de un error de conexión. El cliente deja de esperar una respuesta lenta cuando vence su tiempo de espera configurado; el servidor de destino puede terminar de procesarla más tarde. El informe conserva el estado HTTP cuando se recibió una respuesta.
¿Qué cambia en el desafío?
Cambian los IDs, las URLs y el contenido esperado, y el límite pasa a tres workers. Reutilizarás los mecanismos practicados en los laboratorios guiados. Los resultados pueden llegar en cualquier orden; siguen siendo obligatorios la cobertura completa y el límite de concurrencia.

