Los nil serán nil En marzo de 2012, la cantante mexicana Paulina Rubio publicó un nuevo single llamado “Boys Will Be Boys”, título que podríamos traducir a “Los chicos serán chicos”. En ella, Paulina habla de una historia de amor a la vez que cuenta algunas de las particularidades de los chicos, desde su punto de vista. Hoy, con “Los nil serán nil”, os queremos contar nuestra historia de amor con Go y, más concretamente, las particularidades de los nil. ...
Orientación a Objetos: Composición El gran dilema de la programación orientada a objetos ¿herencia o composición?, es un debate que suele ocurrir constantemente, pero que Go, para bien o para mal (creo que para bien) ha decidido que no ocurra en su lenguaje, y es que en Go la herencia no existe, sólo la composición. La composición significa utilizar objetos dentro de otros objetos. Y en Go no puede hacerse más sencillo. Composición por structs incrustados(embedding structs) Una de las formas de composición que ofrece Go es a través de incrustar un typed struct dentro de otro. ...
Orientación a Objetos: Structs En un artículo previo nos preguntamos si Go podía ser un lenguaje orientado a objetos, y llegamos a la conclusión de que sí, pero que debía ser utilizado de la manera correcta y no llevando el modo en que aplicamos la OO en los otros lenguajes. En este artículo queremos explicar como funcionan los structs y como utilizarlos de la manera correcta, para muchos puede parece algo básico, pero no está demás repasar un poco. ...
¿Cómo estructurar tus proyectos en Go? ¿Cuántas veces has empezado un nuevo proyecto en Go y te han surgido dudas sobre cómo organizar tú código? Por suerte, o por desgracia, la mayoría de los que estamos metidos en esto venimos de entornos como Java, PHP o C#, dónde el uso de namespaces está extendido como una práctica habitual. Sin embargo, cuándo uno empieza a programar en Go y descubre cómo funciona su sistema de paquetes, tiende a quedarse bloqueado. ...
¿Es Go un lenguaje orientado a objetos? Seguro que algún momento de tu vida como desarrollador Go o si estás empezando y vienes de otro lenguaje, te habrás hecho esta fabulosa pregunta. Y es que cuando uno empieza en Go todo parece muy distinto a lo que estamos acostumbrados, pero también hay cosas que nos resultan muy familiares. Si estás empezando con Go y me haces está pregunta, probablemente te diría que No, que no es un lenguaje orientado a objetos, ¿pero es esto realmente cierto? ...
dotGo 2019: la Dot más gopher Si alguien nos hubiera dicho a Adrián y a mí, hace un par de meses, que, en breve, estaríamos saludando al grandísimo Dave Cheney, le hubiéramos tratado de loco. Sin embargo, así fue. Lunes estuvimos rodeados de un mar de talento gopher (Mat Ryer, Kat Zień, el propio Dave, …). Las dotConferences son un clásico en el mundo techie (dotJS, dotAI, dotSwift, …) y la experiencia nos demostró que tienen el reconocimiento que se merecen. ...
T3chFest 2019: una experiencia enriquecedora Hoy es un lunes diferente, especial. Hoy es un lunes post T3chFest, y eso se nota en el ambiente. Esas buenas vibraciones que nos transmitió el eventazo, que se celebró durante los pasados jueves y viernes en el campus de Leganés de la UC3M, siguen recorriendo nuestros cuerpos. Así que hemos considerado ésta una razón más que suficiente para dejar de lado, por una semana, los artículos de Go, para hablar de todo aquello magnífico que nos dió la T3chFest. ...
Integración continua en Golang En pasados artículos hemos estado interactuando con nuestra API, GopherApi, ya hemos desarrollado diferentes endpoints y además hemos incluido los test del mismo. Nuestra API además es de software libre y cualquier persona puede realizar PRs (Pull Request) sobre ella, con lo cuál necesitamos un sistema que nos verifique que los PRs cumplen con unos estándares puestos por nosotros para asegurarnos que al integrarlos en la rama master no se produzca ningún error. ...
¿Cómo testear nuestra API en Golang? En un pasado artículo os explicábamos como crear una API Rest en Go, pero no llegamos a explicar como poder testear dicha API y, como sabemos, testear nuestra aplicación es muy muy importante si queremos poder hacer refactors sin miedo, u obviamente evitar bugs. ¿Pero y cómo testeo los handlers? Pues primeramente deberas estar familiarizado con la forma de testing en GO, cosa que ya os explicábamos en el artículo Empezando con los test automatizados en Go, recordad que se le llama test automatizado a todo test que ha sido automatizado y no tenemos que realizar a mano, luego dentro encontramos distintos tipos como son los Unitarios o Units que son los que veremos ahora. ...
Analizando el rendimiento de tus aplicaciones Go: El determinismo de las pruebas Entendemos por algoritmo determinista como aquél algoritmo qué, en términos informales, es completamente predictivo si se conocen sus entradas. Cuándo hablamos de pruebas (tests), entendemos que éstas son deterministas sí, dada una implementación concreta, el resultado de la prueba (OK o KO) es siempre el mismo. Lo mismo lo podemos extrapolar a pruebas de carga o estrés. Seguimos con el jefe del proyecto preguntando por las mejoras de nuestra implementación, pues, a pesar de que vimos como comparar el rendimiento de nuestras implementaciones, aún no hemos sido capaces de encontrar qué es lo que hace qué nuestra implementación sea excesivamente lenta en comparación con la de la competencia. ...