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 (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. ...