Ficheros estáticos (embed) ahora fácil en Go Embed estáticos fácil ahora en Go Como seguro que sabréis trabajar con ficheros estáticos en Go no es una tarea muy sencilla, siempre requiere de librerías de terceros y aprender como funcionan dichas librerías. Hace algún tiempo os hablábamos de Pkger en este artículo, el cual era una solución que nos ayudaba a la hora de resolver el problema. Pero desde la versión 1.16 tenemos una solución out of the box es decir integrada en el propio core de Go, y como no podía ser de otra forma queremos explicaros como funciona. ...
Vanity Imports Llevamos ya un tiempo sin publicar artículos y es que en el verano nos han pasado muchas cosas que nos han complicado la publicación de los mismos. Pero ya estamos de vuelta, con nuevas energías para continuar el año. Hoy os queremos traer un artículo para que evolucionéis vuestros proyectos Go, un poco más y les deis mucha más seriedad. ¿Qué son los Vanity Imports? Durante el transcurso de un proyecto en Go es normal tener que importar multitud de paquetes, y si os habéis fijado muchos empiezan por github. ...
Functional options en Go Go es un lenguaje de programación que, desde sus inicios, se ha querido caracterizar por, entre otros, dos aspectos principales: la sencillez y la retrocompatibilidad. De hecho, es esta última la que ha permitido que, hasta día de hoy, la gran mayoría de proyectos Go estén operando en su versión más reciente casi sin apenas inconvenientes, y si tenéis algún proyecto Go en producción seguro que ya conocéis esa sensación tan agradable. ...
JSON Web Token (JWT) en Go Cuándo hablamos de añadir una capa de autenticación y autorización a nuestros servicios (por ejemplo, a una API), una de las alternativas más comunes es la de los JSON Web Token (JWT). Así que, no hay nada mejor que podamos hacer que ver una pequeña introducción sobre como usar esta técnica en nuestros proyectos Go. No sin antes comprender un poco cómo funcionan. JSON Web Token Los JSON Web Token (JWT) son un estándar abierto que los define como una forma compacta y autónoma para transmitir información de forma segura entre dos partes en forma de objeto JSON. ...
Programación reactiva en Go Si bien es cierto que la programación reactiva es bastante popular en varios lenguajes de programación (véase Java), la verdad es que ésta no está muy candente en el ecosistema Go, ya sea por la falta de madurez del propio lenguaje, o por el estilo de aplicaciones que se desarrollan con el mismo. Sin embargo, no por ello estamos limitados a usar dicho patrón de programación con nuestro lenguaje favorito. Pero antes, véamos de dónde viene este concepto. ...
Trabajando con variables de entorno en Go Los que ya lleváis un tiempo considerable en el mundo del desarrollo web es probable que estéis, directa o indirectamente, familiarizados con “the twelve-factor app”, el cuál se trata de un manifiesto que se define como una metodología para construir aplicaciones SaaS. En este manifiesto se definen esos (doce) “twelve factors” que podríamos interpretar como consejos a tener en cuenta a la hora de desarrollar nuestras aplicaciones. El tercero de ellos es relativo a la “configuración” y básicamente nos dice que deberíamos “guardar la configuración en el entorno”. ...
Patrones de diseño: decorator La semana pasada Joan nos explicaba como funcionaba el patrón de diseño creacional singleton en Go. Realmente no vamos a tocar todos los patrones de diseño que hay, pero no está mal que conozcamos los más comunes y entendamos y veamos sus implementaciones. Es por ese motivo que hoy vengo a hablaros de un patrón de diseño, en este caso estructural, llamado Decorator, seguramente os suena mucho si venís de otros lenguajes de programación, así que vamos a ver para que funciona y como podemos implementarlo en Go. ...
Patrones de diseño: singleton Como probablemente los más habituales ya sabéis, somos muy fans de las series de artículos, y, con el paso del tiempo, solemos embarcarnos en varias de ellas. Y, si bien es cierto que aún tenemos algunas pendientes de continuar (cómo crear un videojuego en Go), también hemos cerrado ya algunas de ellas (orientación a objetos en Go, patrones de concurrencia). Así que, no hemos podido tener una mejor idea que empezar con una nueva serie: patrones de diseño en Go. ...
¿Cómo usar Command Bus en Go? Seguro como muchos de vosotros, lectores trabajáis actualmente con un lenguaje diferente a Go en vuestro día a día, véase Java, PHP, etc. Y posiblemente estarás acostumbrado ya a toda la vertiente que hay detrás de utilizar, Domain Driven Design y arquitectura hexagonal o quizás te suene mucho de escucharlo entre compañeros. Pues hoy queremos traer uno de esos palabros mágicos que surgen en conversaciones dentro de estos ámbitos, el Command Bus, puede que ya estes familiarizado con este concepto y no sepas como aplicarlo en Go o ni siquiera tengas idea de como funciona, tranquilos que vamos a explicar en que consiste y como se resuelve en Go. ...
Redis en Go Hace ya más de quince meses desde que escribimos nuestro primer artículo sobre cómo crear una API REST en Go, en el que dimos vida a uno de nuestros proyectos más populares en GitHub: friendsofgo/gopherapi. Desde entonces, han sido ya varias las implementaciones (MySQL, CockroachDB, in-memory…) que hemos hecho del repositorio principal de dicha aplicación. Sin embargo, hay un tipo de persistencia bastante habitual en el ecosistema Go (y en general en el mundo del desarrollo) del que aún no habíamos hablado: Redis. ...