Uso de GoGet para Instalar Librerías en Go

Clase 30 de 36Curso Básico de Programación en Go

Contenido del curso

Resumen

Uno de los aspectos más poderosos de cualquier lenguaje de programación moderno es su capacidad para reutilizar código creado por otros desarrolladores. En Go, esto se logra mediante Go Get, el manejador de paquetes integrado que permite descargar, instalar y mantener actualizadas librerías externas de forma sencilla y directa desde la terminal.

¿Qué es un manejador de paquetes y cómo funciona en Go?

Un manejador de paquetes es un repositorio donde programadores almacenan su código en forma de librerías para que otras personas puedan reutilizarlo. Cada lenguaje tiene el suyo: Python cuenta con Pip, Go tiene Go Get [0:12]. La ventaja en Go es que no necesitas instalar nada adicional, ya que Go Get viene incluido con la instalación del lenguaje.

Para instalar una librería, basta con ejecutar el comando go get seguido de la ruta del paquete. Por ejemplo, para instalar Go Tour, una herramienta creada por Google para aprender Go de forma interactiva:

bash go get golang.org/x/tour

¿Qué banderas son útiles al usar Go Get?

Durante la descarga, Go Get no muestra información por defecto. Para obtener detalles del proceso, existen dos banderas importantes [1:18]:

  • -v (verbose): activa la verbosidad para ver qué está sucediendo durante la instalación.
  • -u (update): fuerza la descarga incluso si la librería ya está instalada en tu GOPATH, lo que garantiza tener la versión más reciente.

El comando completo con ambas banderas sería:

bash go get -v -u golang.org/x/tour

¿Dónde se almacenan los paquetes descargados?

Cuando Go Get descarga una librería, organiza los archivos dentro de la estructura del GOPATH [1:52], que se compone de tres carpetas principales:

  • bin: contiene los binarios ejecutables listos para usarse desde cualquier punto del sistema.
  • pkg: almacena los paquetes compilados.
  • src: guarda el código fuente de las librerías descargadas.

En el caso de Go Tour, al ejecutar ls bin, se puede ver el binario tour disponible. Dentro de src/golang.org/x/tour se encuentra todo el código fuente del proyecto [2:15].

¿Cómo funciona Go Tour como herramienta de aprendizaje?

Para ejecutar la librería instalada, simplemente se escribe tour en la terminal [2:38]. Esto abre una interfaz web en el navegador donde se puede programar en Go de forma interactiva.

La interfaz ofrece varias funcionalidades prácticas:

  • Resaltado de sintaxis que se puede activar o desactivar.
  • Importaciones automáticas para simplificar el código.
  • Un botón de Run para ejecutar el código en tiempo real.
  • Un botón de formato para aplicar el formateo estándar de Go.
  • Un botón de reset para restaurar el código a su estado original [3:16].

Go Tour está organizado por módulos que cubren paquetes, ciclos, structs, interfaces e incluso concurrencia [3:52]. Por ejemplo, en la sección de variables se muestra la diferencia entre variables globales, declaradas fuera del main, y variables locales, que existen únicamente dentro de la función main [4:06].

Aunque la herramienta está disponible en español, se recomienda usar la versión en inglés porque suele estar más completa y actualizada [3:30].

¿Dónde encontrar paquetes externos interesantes para Go?

Más allá de Go Tour, existe un recurso muy valioso para explorar el ecosistema de librerías: awesome-go.com [4:36]. Este proyecto recopila librerías organizadas por categorías como:

  • Audio y música.
  • CSS y base de datos.
  • Manejo de archivos y emails.
  • Machine learning e IoT.
  • Frameworks para desarrollo web.

Dentro de la sección de frameworks web, uno de los más destacados es Echo [5:14], que cuenta con su repositorio en GitHub y documentación completa para comenzar a construir aplicaciones web en Go.

Cada entrada en awesome-go.com incluye un enlace directo al repositorio y una descripción clara de lo que ofrece la librería, lo que facilita evaluar cuál se adapta mejor a cada proyecto.

¿Ya exploraste awesome-go.com? Comparte en los comentarios qué librería te llamó más la atención y, como reto, intenta crear su Hello World.