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. ...
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. ...
Empezando con Kubernetes Si eres desarrollador y te vas manteniendo al día seguro que alguna vez habrás oído hablar de Kubernetes o k8s que es su diminutivo, y entiendo que si estás aquí es porque aún te suena a chino. Pues bien lo primero que te voy a recomendar, es si tampoco estás familiarizado con Docker te empapes un poco de él, ya que Kubernetes necesita de él para funcionar y habrá conceptos que quizás no acabes de entender de no ser así. ...
¿Cómo crear presentaciones con Go? La asistencia y participación a conferencias así como los resúmenes que hacemos de las mismas han sido algo habitual desde nuestros inicios. Sin embargo, hoy no estamos aquí para hablar de las conferencias en sí, pero sí de algo estrechamente relacionado con ellas: las presentaciones. Claro que si nos pusiéramos a dar consejos sobre como preparar una presentación o como redactar una propuesta de charla, quizás nos saldríamos de la temática de este blog y tampoco sería lo adecuado. ...