Introducción a gRPC en Go (NOTA: El código fuente de este artículo está basado en la aplicación de ejemplo de este repositorio. Si os perdéis en cualquier momento, podéis revisar la solución final ahí o preguntar cualquier duda a través de los canales habituales) Los que hace más tiempo que leéis nuestros artículos, seguro que estáis familiarizados con Gopher API, una API HTTP JSON que sigue una arquitectura REST, utilizando los verbos HTTP más habituales (GET, POST, DELETE, etc) para realizar operaciones CRUD sobre una colección (de gophers). ...
Usando errores en Go 1.13 Hace algún tiempo nuestro querido David L. Carrascal nos hablaba de la gestión de errores en Go y además nos daba unas pinceladas de lo que nos encontraríamos en la versión 1.13 de Go. Pues la versión 1.13 ya nos acompaña desde algunos meses y queremos entrar en más detalle en como utilizar las nuevas funcionalidades que se han añadido al paquete errors. El método Unwrap Go 1.13 introduce una nueva funcionalidad tanto en el paquete errors como en el paquete fmt que nos simplifica la manera que tenemos de trabajar con errores que contienen otros errores. ...
Continuous Profiling en Go Hoy en día es realmente muy habitual ver las siglas CI/CD en cualquier aspecto relacionado con el ámbito del desarrollo: ya sea una conferencia, una oferta de trabajo o un simple listado de prácticas deseables para una compañía de dicho ámbito. De hecho, las segundas de esas siglas (CD) suelen generar controversia: ¿entrega contínua o despliegue contínuo? ¿Son realmente lo mismo? ¿O son cosas diferentes? Bien, pues en este artículo no queremos centrarnos en ese debate / reflexión, sinó que lo que queremos es generar más controversia, añadiendo unas nuevas siglas al juego: CP (Continuous Profiling). ...
Instrumentación en Go con Zipkin Nuestro mundo esta lleno de palabrejos para definir aquello que hacemos, a veces parecemos médicos, pues el artículo de hoy va sobre observabilidad e instrumentación (observability and instrumenting) en nuestros microservicios. Seguro que muchos de vosotros estáis hartos de crear microservicios, ya sea para despedazar ese antiguo monolito, como por aislar ciertas funcionalidades concretas, etc. y seguramente os habréis encontrado con que muchas veces seguir el flujo de comunicación y que sucede en nuestros microservicios no es algo sencillo. ...
Software Crafters BCN 2019: la versión más mediterránea de la software craftsmanship Llegamos al último cuatrimestre del año pero nuestras aventuras no se detienen, la última el pasado finde, en Barcelona. Nada más y nada menos que en la Software Crafters BCN, un evento que representa mucho en el mundo del desarrollo local. Mucho más allá de un conjunto de ponentes impartiendo charlas a una audiencia ansiosa de conocimiento, es más bien una cultura, una forma de vida que se propaga año tras año, de edición a edición. ...
Context en Go, todo lo que querías saber Hace ya un tiempo, nuestro querido amigo Joan López de la Franca, escribía un artículo en el que hablaba del patrón Context para concurrencia, el cual vimos que es realmente útil, pero es que el contexto en Go tiene otros usos, y hoy vamos a explicar un patrón muy extendido. Seguramente a medida que habéis ido profundizando en Go y utilizado distintos de librerías o visto proyectos de ejemplo, habréis visto una proliferación de funciones/métodos con una firma similar a la siguiente, func foo(ctx contex. ...
Linters en Go Un linter es una herramienta de programación cuyo nombre original -lint- era el nombre de una herramienta de programación utilizada para detectar código sospechoso, confuso o incompatible entre distintas arquitecturas en programas escritos en C, es decir, errores de programación que escapan al habitual análisis sintáctico que hace el compilador. Actualmente, el término linter es usado para hacer referencia a herramientas que realizan estas tareas de análisis estático del código fuente, indistintamente del lenguaje de programación. ...
Empezando con Apache Kafka en Golang Hoy no vengo a ponerme filosófico, todos conocemos la famosa obra de Franz Kafka, La metamorfosis, aunque seguro que no tantos la hemos leído. Pero no, esto es un blog sobre Go y por ello venimos a hablar de como utilizar Apache Kafka en Go. Llevaba tiempo queriendo adentrarme en probar este software, y por distintas razones no había tenido la oportunidad, así que decidí en mis vacaciones crear un pequeño chatroom para poder probar como funcionaba con Go y divertirme en el proceso, además poder compartir con vosotros todo lo aprendido. ...
Middlewares en Go Un middleware es una pieza de software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, paquetes de programas, redes, hardware o sistemas operativos. Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores abstrayendo de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. ...
Utilizando un mock server para nuestra API Rest Quizás este no es un artículo propiamente de Go pero si que utilizaremos una herramienta escrita en Go y además creada por nosotros, que nada tiene que envidiar a otras soluciones de mock server del mercado. ¿Qué es un mock server? Seguramente mientras estamos desarrollando nos hemos encontrado con la necesidad de conectar con una API de terceros o algún microservicio propio para poder hacer alguna funcionalidad, poned por ejemplo que tenemos que conectarnos con la API que ya desarrollamos en un artículo anterior, GopherAPI. ...