iregablog Personal blog about software development technologies https://irega.github.io/ Añadiendo informe de cobertura de los tests ejecutados dentro de un contenedor Docker Karma+Angular+Azure DevOps - Después de publicar el informe del resultado de los tests, en la siguiente iteración conseguimos añadir la cobertura de código a dicho informe. Para ello, lo primero que extendimos es la configuración del test runner “Karma” para añadir el plugin adecuado: 1 2 3 4 5 6 7 8 9... Sat, 13 Jul 2019 00:00:00 -0400 https://irega.github.io/2019-07-13-a%C3%B1adiendo-informe-de-cobertura-de-los-tests-ejecutados-dentro-de-un-contenedor-docker/ https://irega.github.io/2019-07-13-a%C3%B1adiendo-informe-de-cobertura-de-los-tests-ejecutados-dentro-de-un-contenedor-docker/ ng eject Cómo modificar la configuración de webpack en Angular 5 - El otro día me encontré con un caso especial en uno de nuestros clientes, necesitaban modificar la configuración de webpack usada para construir el bundle de su aplicación Angular. Nos encontramos ante un proyecto que hace uso de Angular CLI, por lo que no tenemos acceso directo a la configuración... Sun, 07 Jul 2019 00:00:00 -0400 https://irega.github.io/2019-07-07-ng-eject/ https://irega.github.io/2019-07-07-ng-eject/ Publicando el resultado de los tests ejecutados dentro de un contenedor de Docker Karma+Angular+Azure DevOps - Esta vez quería compartir con vosotros cómo conseguimos publicar un informe en una pipeline de Azure DevOps con el resultado de los tests de Frontend ejecutados dentro de un contenedor de Docker, que si bien de primeras puede parecer trivial, tuvimos que invertir varias jornadas para conseguirlo (posiblemente debido a... Sat, 06 Jul 2019 00:00:00 -0400 https://irega.github.io/2019-07-06-publicando-el-resultado-de-los-tests-ejecutados-dentro-de-un-contenedor-de-docker/ https://irega.github.io/2019-07-06-publicando-el-resultado-de-los-tests-ejecutados-dentro-de-un-contenedor-de-docker/ Principios de diseño (11) Inverted composition as a Replacement for Inheritance - Y para ir finalizando la serie de capítulos sobre el libro de Corey Haines, vamos con el último capítulo donde nos enseña la técnica de inversión de la composición para evitar duplicidades. Vamos con un caso práctico. Tenemos dos tipos de mascota: un perro y un gato. Cada uno tiene... Sat, 25 May 2019 00:00:00 -0400 https://irega.github.io/2019-05-25-principios-de-dise%C3%B1o-11/ https://irega.github.io/2019-05-25-principios-de-dise%C3%B1o-11/ Principios de diseño (10) Unwrapping an Object - En uno de los últimos capítulos del libro, Corey Haines nos explica como suele aplicar el principio de “Tell, Don’t ask” cuando está diseñando objetos. En este enlace explica perfectamente este principio, mucho mejor de lo que podría hacerlo yo 😀 El «Tell, Don’t ask» es un meme que nos... Fri, 24 May 2019 00:00:00 -0400 https://irega.github.io/2019-05-24-principios-de-dise%C3%B1o-10/ https://irega.github.io/2019-05-24-principios-de-dise%C3%B1o-10/ Principios de diseño (9) Making assumptions about usage - El siguiente capítulo del libro de Corey Haines se titula “Making Assumptions About Usage”, o lo que es lo mismo, “Haciendo suposiciones sobre el uso”. Y es que muchas veces, cuando diseñamos abstracciones, asumimos ciertos usos que se les va a dar en el futuro, definiendo por ejemplo abstracciones o... Tue, 21 May 2019 00:00:00 -0400 https://irega.github.io/2019-05-21-principios-de-dise%C3%B1o-9/ https://irega.github.io/2019-05-21-principios-de-dise%C3%B1o-9/ Principios de diseño (8) Procedural Polymorphism - Vuelvo a la carga después de casi un mes sin escribir! Esta vez quería analizar el que es para mí uno de los capítulos más importantes del libro de Corey Haines, ya que nos ayuda a evitar/solucionar uno de los errores de diseño que solemos cometer/encontrarnos con más frecuencia en... Sun, 07 Apr 2019 00:00:00 -0400 https://irega.github.io/2019-04-07-principios-de-dise%C3%B1o-8/ https://irega.github.io/2019-04-07-principios-de-dise%C3%B1o-8/ Principios de diseño (7) Naive duplication - Desde que empezamos a programar, nuestros profesores siempre nos han intentado inculcar la idea de unificación y reutilización de código para evitar siempre el famoso “copy-paste”. En nuestro afán de unificar código similar, hay a veces que vamos demasiado rápido y podemos empeorar el diseño de nuestro código, dificultando el... Fri, 08 Mar 2019 00:00:00 -0500 https://irega.github.io/2019-03-08-principios-de-dise%C3%B1o-7/ https://irega.github.io/2019-03-08-principios-de-dise%C3%B1o-7/ Principios de diseño (6) Breaking Abstraction Level - En en este post anterior vimos porqué era una mala práctica duplicar el conocimiento de la topología interna de un objeto por diferentes partes de nuestro sistema, y cómo solucionarla. En este nuevo capítulo, veremos que romper el nivel de abstracción tendrá las mismas consecuencias. Examinando el ejemplo orientado a... Wed, 06 Mar 2019 00:00:00 -0500 https://irega.github.io/2019-03-06-principios-de-dise%C3%B1o-6/ https://irega.github.io/2019-03-06-principios-de-dise%C3%B1o-6/ Principios de diseño (5) Don’t have tests depend on previous tests - Esta vez, vamos a partir del ejemplo de cuentas bancarias sobre el que hablamos en el capítulo anterior. Modificando el test unitario con el que terminamos: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import { BankAccount } from "../original/BankAccount";... Sat, 23 Feb 2019 00:00:00 -0500 https://irega.github.io/2019-02-23-principios-de-dise%C3%B1o-5/ https://irega.github.io/2019-02-23-principios-de-dise%C3%B1o-5/ npm ci Optimizando el tiempo de compilación de nuestro proyecto - En esta ocasión quería compartir con vosotros un comando de npm alternativo al famoso “npm install” llamado “npm ci”, el cual nos permite disminuir el tiempo de instalación de las dependencias de nuestro paquete npm. Primero os adjunto dos enlaces directos a la documentación oficial de npm donde explican perfectamente... Sat, 23 Feb 2019 00:00:00 -0500 https://irega.github.io/2019-02-23-npm-ci/ https://irega.github.io/2019-02-23-npm-ci/ Principios de diseño (4) Testing State vs Testing Behavior - Cuando comenzamos a diseñar nuestro sistema o a extenderlo con una nueva funcionalidad, empezamos a definir las abstracciones y los tipos de objetos necesarios. Seguidamente, dotamos de funcionalidad y miembros internos a estas nuevas clases. El problema es que la mayoría de las veces no nos paramos a pensar detenidamente... Sun, 17 Feb 2019 00:00:00 -0500 https://irega.github.io/2019-02-17-principios-de-dise%C3%B1o-4/ https://irega.github.io/2019-02-17-principios-de-dise%C3%B1o-4/ Principios de diseño (3) Behavior attractors - Partiendo del código previo a la refactorización que hicimos en el anterior capítulo: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 class World def set_living_at(x, y) #... end def alive_at?(x, y) #... end end class Cell attr_reader :x, :y def alive_in_next_generation? #... end end... Sat, 02 Feb 2019 00:00:00 -0500 https://irega.github.io/2019-02-02-principios-de-dise%C3%B1o-3/ https://irega.github.io/2019-02-02-principios-de-dise%C3%B1o-3/ Principios de diseño (2) Duplication of knowledge about topology - ¡Vamos a por el segundo capítulo! Esta vez hablaremos sobre: Duplication of knowledge about topology Como en el anterior capítulo, todo lo que escriba basado en el libro de Corey Haines estará basado en sus ejemplos sobre el Juego de la Vida de Conway. En el libro se empieza a... Sun, 20 Jan 2019 00:00:00 -0500 https://irega.github.io/2019-01-20-principios-de-dise%C3%B1o-2/ https://irega.github.io/2019-01-20-principios-de-dise%C3%B1o-2/ Principios de diseño (1) Test names should influence object’s API - Bueno, después de un año bastante ajetreado entre boda, luna de miel, viajes, cambio de empresa, etc. he podido sacar algún que otro hueco para retomar otros proyectos personales como este blog. Últimamente me he centrado más en recordar y reforzar los principios básicos de desarrollo de software, tanto de... Sat, 19 Jan 2019 00:00:00 -0500 https://irega.github.io/2019-01-19-principios-de-dise%C3%B1o-1/ https://irega.github.io/2019-01-19-principios-de-dise%C3%B1o-1/ Añadiendo cobertura de código a la build de tests de Frontend (Chutzpah + TFS 2017) Tomando como base la build que hemos creado en mi anterior post, vamos a ver como añadir un informe de cobertura de código generado por el propio Chutzpah. Para ello, lo primero que deberemos modificar es el archivo de configuración “chutzpah.json” de nuestro proyecto web: 1 2 3 4 5... Thu, 01 Mar 2018 00:00:00 -0500 https://irega.github.io/2018-03-01-a%C3%B1adiendo-cobertura-de-codigo-a-la-build-de-tests-de-frontend-chutzpah-tfs-2017/ https://irega.github.io/2018-03-01-a%C3%B1adiendo-cobertura-de-codigo-a-la-build-de-tests-de-frontend-chutzpah-tfs-2017/ Configurando una build de tests de Frontend con Chutzpah y TFS 2017 Aunque a día de hoy es más habitual utilizar “test runners” como Karma, en proyectos más antiguos con código “legacy” que hacen uso de tecnologías Microsoft es habitual encontrarnos con Chutzpah como framework encargado para ejecutar los tests del Frontend de nuestra aplicación. En tiempo de desarrollo se suelen ejecutar... Sat, 24 Feb 2018 00:00:00 -0500 https://irega.github.io/2018-02-24-configurando-una-build-de-tests-de-frontend-con-chutzpah-y-tfs-2017/ https://irega.github.io/2018-02-24-configurando-una-build-de-tests-de-frontend-con-chutzpah-y-tfs-2017/ Mi Bundle JavaScript con VStudio 2013 + Node + Gulp + Jasmine (IV) Minificando y testeando - ÍNDICE: (I) Introducción (II) Estructurando mi código (III) Configurando la compilación (IV) Minificando y testeando PROYECTO DE EJEMPLO: https://github.com/irega/GulpJavaScriptBundle Para finalizar este pequeño tutorial, en este último capítulo completaremos la generación de nuestro bundle con dos tareas más. Una de ellas nos servirá para minificar el código final y la... Sun, 20 Mar 2016 00:00:00 -0400 https://irega.github.io/2016-03-20-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-iv-minificando-y-testeando/ https://irega.github.io/2016-03-20-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-iv-minificando-y-testeando/ Mi Bundle JavaScript con VStudio 2013 + Node + Gulp + Jasmine (III) Configurando la compilación - ÍNDICE: (I) Introducción (II) Estructurando mi código (III) Configurando la compilación (IV) Minificando y testeando PROYECTO DE EJEMPLO: https://github.com/irega/GulpJavaScriptBundle En esta nueva entrega vamos a aprender a configurar la generación del bundle en el momento de la compilación del proyecto de Visual Studio. Lo primero que haremos es establecer una... Mon, 14 Mar 2016 00:00:00 -0400 https://irega.github.io/2016-03-14-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-configurando-la-compilacion/ https://irega.github.io/2016-03-14-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-configurando-la-compilacion/ Mi Bundle JavaScript con VStudio 2013 + Node + Gulp + Jasmine (II) Estructurando mi código - ÍNDICE: (I) Introducción (II) Estructurando mi código (III) Configurando la compilación (IV) Minificando y testeando PROYECTO DE EJEMPLO: https://github.com/irega/GulpJavaScriptBundle En el anterior capítulo aprendimos lo que era un bundle y a generar la estructura básica del proyecto en Visual Studio. Ahora vamos a ver como escribir y organizar nuestro código... Sun, 13 Mar 2016 00:00:00 -0500 https://irega.github.io/2016-03-13-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-estructurando-mi-codigo/ https://irega.github.io/2016-03-13-mi-bundle-javascript-con-vstudio-2013-node-gulp-jasmine-estructurando-mi-codigo/