Go y Golang

Eliminar archivo en Go

Golang: Eliminar archivo o directorio con todo su contenido

El lenguaje de programación Go (también conocido como GoLang) ofrece una manera sencilla de eliminar un archivo o eliminar una carpeta/directorio con todo su contenido a través de os.

Eliminar archivo en Go

Eliminar archivo en Go

En este post veremos cómo eliminar un archivo y también cómo eliminar un directorio con todo su  contenido: son dos operaciones distintas pero que de alguna forma se relacionan.

Continue reading…

Test de go pasado exitosamente

Testing en Go: asegurarnos de que nuestro código se ejecute como debería

Los tests automatizados o pruebas son una parte fundamental de todo lenguaje de programación y framework.

Hoy vamos a ver cómo escribir tests para probar nuestro código en Go. Será un ejemplo bastante sencillo pero ilustrará perfectamente cómo realizar pruebas a nuestro código.

Lo que veremos será:

  1. Usar el paquete testing
  2. Cómo escribir un test en Go
  3. Probar nuestras funciones con go test

Recuerda que antes de esto debes instalar y configurar Go. Si estás en Windows mira este post, y si estás en Linux Ubuntu mira este otro.

Continue reading…

Enrutador y Middleware en Go con Gorilla Mux

En un post anterior vimos cómo responder peticiones HTTP con rutas en Go, pero las mismas no eran tan simples cuando se trataba de variables en la URL o métodos HTTP.

Hoy vamos a ver un enrutador o router de Go, que permite definir rutas y métodos HTTP para responder a ellos, de una manera fácil.

El enrutador, llamado Mux (que es de las herramientas de Gorilla) permite:

  • Definir middleware en las rutas, es decir, aplicar funciones que se ejecutan antes de cada petición HTTP y que permiten detener la ejecución o loguear determinadas cosas
  • Definición de rutas con verbos HTTP
  • Lectura de parámetros GET
  • Lectura de variables dentro de la url. Por ejemplo si definimos algo como usuario/{id} y se consulta a usuario/1 podemos obtener el valor 1 accediendo a la variable
  • Variables dentro de la URL con expresiones regulares

En resumen, Mux es un router de Go que soporta además Middleware. Veamos algunos ejemplos del mismo.

Si quieres ver el código final míralo en GitHub.

Nota: si usas PHP te recomendo Phroute.

Continue reading…

WebAssembly en Go: tutorial y ejemplos

Acabo de publicar un post sobre las ventajas y usos de WebAssembly en donde prometí que traería un ejemplo con Go.

De hecho ya tenía el ejemplo desde antes, pero no iba a poner toda la definición de WebAssembly aquí.

En fin, veamos cómo utilizar Go para compilar a WebAssembly y llamar al código desde JavaScript.

WASM y Go – Hola mundo

Pero no te confundas, WebAssembly no es JavaScript, es código que se ejecuta directamente en el navegador, solo que JavaScript le dice al navegador cómo usarlo.

Continue reading…

Petición POST, GET, PUT y DELETE en Go con net/http

Golang es un lenguaje utilizado del lado del servidor debido a su simplicidad de uso, potencia y velocidad.

Sin embargo, con Go también se pueden hacer peticiones HTTP. Es decir, Go también puede funcionar como cliente HTTP, no solo como servidor.

Como sabemos, hay 4 métodos básicos para las peticiones HTTP: POST para enviar datos, GET para obtener, PUT para actualizar y DELETE para eliminar.

Peticiones HTTP con Go y net http

En este post veremos ejemplos de cómo hacer estas 4 peticiones con Go usando el paquete net/http para lograr hacer una petición GET, POST, PUT y DELETE usando Golang.

También vamos a ver cómo escribir y enviar encabezados o el código de respuesta (200 para OK, 500 de error, 405 de no permito, etcétera)

El sitio web que vamos a usar para probar será httpbin.org, el cual sirve como espejo para probar que realmente estamos haciendo las peticiones y enviando datos.

Continue reading…

Codificar y decodificar JSON en Go con Marshal y Unmarshal

Codificar y decodificar JSON con Go/GoLang

JSON y Go

En este post voy a explicar cómo codificar y decodificar el formato JSON (JavaScript Object Notation) usando el lenguaje de programación Go, también conocido como Golang.

Para hacerlo no necesitamos librerías externas ni paquetes extraños; solamente a encoding/json con las funciones Marshal y Unmarshal que nos permitirán trabajar con structs, arreglos, cadenas y todos los tipos de datos.

Codificar y decodificar JSON en Go con Marshal y Unmarshal

Codificar y decodificar JSON en Go con Marshal y Unmarshal

Nota: esto ya lo hicimos con PHP, Java y JavaScript.

Continue reading…

Demostración de cron en Go - Múltiples rutinas ejecutándose en paralelo

Ejemplos e implementación del paquete cron para Golang (Go)

Hoy vengo a mostrar cómo usar el maravilloso paquete de cron para Go. Ya todos sabemos qué es cron, que en términos simples permite ejecutar acciones cada determinado tiempo.

Pues bien, hoy veremos cómo usar el cron pero directamente programado en Go; sin ninguna dependencia más que del paquete y del propio lenguaje. Veremos algunos ejemplos.

Demostración de cron en Go - Múltiples rutinas ejecutándose en paralelo

Demostración de cron en Go – Múltiples rutinas ejecutándose en paralelo

Nota: si no sabes qué es cron, mira la wikipedia.

Continue reading…

Fondo de pantalla de palabras reservadas del lenguaje Go / Golang

Fondos de pantalla e imágenes de lenguajes de programación

Hace algún tiempo hice algunas imágenes sobre lenguajes de programación para usarlas como fondo de pantalla; son simples, tienen el nombre del lenguaje de programación pero formado con palabras reservadas del mismo, aquí un ejemplo de Rust:

Rust creado con WordArt

Rust creado con WordArt

Voy a exponer aquí los fondos de pantalla de lenguajes de programación para descargarlos.

Continue reading…

Descargar Go en Linux

Instalar Go en Linux Ubuntu 18

Instalar Go en una distribución de Linux, y sobre todo, Ubuntu, es más fácil que instalarlo en Windows. En este post veremos cómo instalar el lenguaje de programación Go en su versión 1.11 sobre Ubuntu 18.04 en su versión de 64 bits.

Aunque este tutorial funciona para esas versiones, seguramente funciona en otras. Por cierto, como no usamos ningún comando específico de Ubuntu, se podrá instalar en la mayoría de distribuciones Linux.

Continue reading…

Explicación y ventajas de defer en Go

Explicación de defer en Go

En este post se explica cómo usar defer en Go, así como sus ventajas e importancia.

El lenguaje de programación Go provee una característica muy especial y útil a la vez: defer. Esta sentencia ayuda mucho a la hora de programar con Go, pues permite ejecutar alguna sentencia al finalizar o terminar el flujo de una función, sin importar en qué punto se regrese.

Explicación y ventajas de defer en Go

Explicación y ventajas de defer en Go

Al principio suena complicada, pero su uso es realmente sencillo y no estamos obligados a usarlo si no queremos. De hecho se podría decir que es azúcar sintáctica del lenguaje.

Continue reading…