API RESTful con gRPC Ya tenemos la Navidad, aquí a la vuelta de la esquina, pero Friends of Go no descansa, y es que ya llevamos dos interesantes artículos sobre gRPC, vimos cómo empezar a usar gRPC y vimos cómo crear y utilizar interceptors, todo esto sobre un proyecto muy útil para estas fechas, un wishlist. Pero… claro, ¿cómo podemos mostrar nuestra lista al mundo? ¿cómo podemos hacer que otras personas o Santa o incluso los Reyes Magos vean lo que nosotros queremos, mediante un frontal o un app móvil? ...
Fuzzing en Go Hace ya algunos años, en el mundo del desarrollo de software se popularizó una práctica que comúnmente conocemos como testing y que básicamente consiste en realizar un conjunto de pruebas de software sobre nuestros desarrollos. Es decir, una especie de control de calidad pero aplicado a nuestro ámbito. Dentro de este conjunto de pruebas, de ese mar de conceptos que puede englobar la palabra testing, los desarrolladores nos solemos centrar en un subconjunto específico de esas pruebas. ...
gRPC interceptors en Go Recientemente os hacíamos una introducción a GRPC en la que construíamos una pequeña API de Whislist, muy útil para estas fechas navideñas. Os explicábamos que eran los Protocol Buffer, así como generar nuestro cliente y servidor de manera casi mágica, pero nos dejamos temas en el tintero uno de ellos es el tema de los middlewares que tenemos por la mano en HTTP, pero, ¿cómo se realizan en gRPC? Los interceptors Primero que nada, debemos saber que los middlewares en gRPC se les denominan interceptors, denominados así porque interceptan la ejecución de los métodos RPC tanto en el cliente como en el servidor. ...
Inmutabilidad en Go La inmutabilidad es un término cuya popularidad ha crecido de forma considerable durante los últimos años, especialmente en consonancia con el crecimiento del paradigma de programación funcional. Sin embargo, hablar de inmutabilidad en Go es algo que genera controversia, pues en esta ocasión veremos como el lenguaje nos proporciona pocos recursos para llevarla a cabo. Pero, antes de eso, lo mejor será que hagamos un breve repaso de qué es la inmutabilidad y qué beneficios conlleva. ...
Commit Conf 2019: Desde Madrid con amor Ya de vuelta en casa toca retrospectiva de nuestro finde, como sabéis y sino ya os lo decimos nosotros, este año hemos estado en varios eventos por el mundo, y como no iba a ser menos también quisimos probar suerte en nuestro país, empezamos en Barcelona, nuestra ciudad, en la Software Crafter y este finde semana hemos estado en otro de los grandes pesos pesados de los eventos españoles, nada más y nada menos que la CommitConf. ...
Usando ficheros estáticos en Go Hoy vamos a utilizar ficheros estáticos en Go y es que seguro que en más de un caso te has visto en la necesidad de utilizar dichos ficheros en tus aplicaciones Go, véase imágenes, ficheros HTML, JSON o de configuración. Algo que caracteriza a Go es que tan sólo necesitarás de un binario para distribuir tu aplicación, esto hace que sus binarios sean algo no sean excesivamente pequeños, pero los hacen realmente portables, pero si añadimos ficheros estáticos esto deja de ser una realidad, ya que tendremos que estar pendientes de sus posibles rutas y arrastrar nuestros estáticos con el binario, lo cual pierde un poco la gracia. ...
Introducción a gRPC en Go 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). Ésta, la hemos utilizado como referencia a lo largo del último año para explicar no solo cómo crear una API REST en Go, sino también para explicar cómo testearla y cómo mockerla. ...
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. ...