Existen multiples definiciones para el término arquitectura dependiendo del contexto en el que se trate y de la vertiente del desarrollo de la que se provenga, por lo que es muy complicado llegar a un consenso y a una definición única que sea válida para todos los casos. Así pues, ciñéndonos al desarrollo de software en frontend, bajo un punto de vista persona ...
Seguir leyendoLa programación funcional es una forma de entender nuestro software como una serie de funciones matemáticas en las que, dadas unas entradas determinadas, siempre obtenemos las mismas salidas.
Aunque esté "de moda", este paradigma existe desde antes que la orientación a objetos, y está basado en el cálculo lambda. Sin ...
Seguir leyendoHace un tiempo que estoy estudiando sistemas Blockchain en general y en particular el código de Bitcoin. Durante este proceso me he topado con los conocidos como árboles de Merkle, o Merkle Trees en inglés. Estos árboles son un elemento fundamental en el algoritmo de validación de transacciones de Bitcoin, formando par ...
Seguir leyendoEsto trata sobre manejar con buen gusto los efectos secundarios de las operaciones asíncronas -- Erik Meijer sobre Rx
La programación reactiva es un concepto relativamente nuevo que está revolucionando el mundo del software. Hoy en día, cualquier sistema serio involucra muchos subsistemas asíncronos q ...
Seguir leyendoAunque lo sepamos, creo que lo correcto es que empecemos por el principio: ¿qué es un patrón de diseño? La definición según Wikipedia es:
Seguir leyendoLos patrones de diseño son unas técnicas para resolver problemas comunes en el desarrollo de software y otros ámbitos referentes al diseño de interacción o interfaces. Un patrón de diseño resulta ser ...
Docker nos permite ejecutar de forma aislada, aunque esto realmente es un truco, ya que Docker lo que hace es usar tecnologías como Cgroups
(permite poner límites de recursos a procesos por ejemplo de memoria, CPU, etc) y namespaces
(permite definir qué es lo que puede ver cada proceso) para que parezca que se ejecuta todo en ...
En los últimos años ha habido un auge en la comunidad referente al interés por el codigo limpio, el tener unos buenos tests para nuestras aplicaciones y una preocupación por buscar la forma correcta o más viable de llevar a cabo estas tareas.
Lo cierto es que no existe una forma que podamo ...
Seguir leyendo"Programar es el arte de decirle a otro humano lo que quieres que el ordenador haga." -- Donald Knuth
En los últimos años, JavaScript se ha convertido en uno de los lenguajes más utilizados del mundo. Su principal ventaja, y a ...
Seguir leyendoTypeScript es un lenguaje que extiende JavaScript para dotarlo de un tipado estático. Esto quiere decir que la comprobación y verificación de los tipos se realiza en tiempo de compilación (cuando se convierte de TS a JS) en vez de en tiempo de ejecución (cuando el motor de ...
Seguir leyendoEste artículo es la continuación del post Patrones de con TypeScript en el mundo real: creacionales y estructurales, en ese post definía el concepto de patrón de diseño y profundizaba en algunos patrones creacionales y estructurales.
En este segundo artículo nos centrar ...
Seguir leyendoCuando trabajamos con librerías de terceros a veces tenemos que lidiar con un tipado débil. Es el caso de la librería oficial de Vue para la administración del estado de la aplicación: Vuex
A pesar de ser una librería muy utilizada en multitud de proyectos, la definición de su API respecto a los tipos deja mucho que desear: poco soporte de tipos genéricos y much ...
Seguir leyendoHace calor, mucho calor, y nadie quiere perder mucho tiempo haciendo tests, leyendo sobre tests y sobre todo escribiendo sobre tests así que voy a intentar condensar en un pequeño artículo todo lo necesario para introducirse en el mundo del testing en frontend.
Voy a saltarme la parte aburrida con un pequeño resumen:
¿Qué es ...
Seguir leyendoHoy en día es bien sabido que la utilización de patrones y buenas prácticas de programación nos ayudan en la creación y mantenimiento de nuestro software.
Hay una gran variedad de patrones interesantes, a medida que los vas aplicando descubres que cada uno de ellos te ayuda a cumplir que tu software sea más *-ble (mantenible, extensible, entendible, testeable, e ...
Seguir leyendoLa definición oficial de PostCSS Preset Env dice:
PostCSS Preset Env le permite convertir CSS moderno en algo que la mayoría de los navegadores pueden entender, determinando los polyfills(1) que necesita en función de sus navegadores de destino o entornos de tiempo de ejecución, utilizando cssdb(2).
Lo pr ...
Seguir leyendoEl testing de software puede verificar la presencia de errores pero no la ausencia de ellos. – Edsger Dijkstra
Test Driven Development (TDD), o desarrollo dirigido por test en castellano, es una técnica de ingeniería de software para, valga la redundancia, diseñar software. Como su ...
Seguir leyendoMuchos ya sabréis que el tipado estático del lenguaje de programación TypeScript permite declarar un tipo de dato como numérico, texto, booleano o de instancia de clase, por poner algunos ejemplos típicos. Lo que quizás no es tan conocido, seguramente porque no existe en los lenguajes más populares, es que TypeScript también soporta union types (o tipos unión traducido al español).
Seguir leyendo¡Me encanta CSS!. Quien me conoce lo sabe, seguro que se notará en este artículo, y estoy orgulloso de ello. No pienso entrar en la guerra de si es un lenguaje de programación o no. Para mí es un lenguaje de estilos y "ATENCIÓN SPOILER" CSS es parte de la Web. Es por ello que me sorprende la gran cantidad de personas que se definen como Frontends o Ful ...
Seguir leyendoEste es el primer artículo de una serie sobre el lenguaje de programación Typescript en la que abordaremos los fundamentos de este magnifico lenguaje open source. Typescript fue desarrollado en 2012 por Anders Hejlsberg, creador de Pascal, Delphi y C#, y su equipo en Microsoft.
Qué es Typescript
Esencialmente se trata ...
Seguir leyendoHoy me toca escribir sobre otra de las tecnologías que uso en varios de los proyectos en los que trabajo, ReactJS. Se que existe muchísima información en la red sobre esta librería, aunque en muchos casos inconexa.
El objetivo de este artículo es tratar de organizar y condensar los conceptos fundamentales para comenzar a utilizar esta tecnología desar ...
Seguir leyendoEl objetivo de este artículo es que el lector aprenda aplicar los principios SOLID con el lenguaje Python. SOLID es un acrónimo creado por Michael Feathers para los principios publicados por Rober ...
Seguir leyendoEn el anterior artículo vimos una breve introducción al patrón de diseño MVVM. Tal como decía en ese post, está considerado una buena práctica el uso de dicho patrón a la hora de desarrollar un proyecto, tanto con Xamarin tradicional, como con Xamarin Forms. El objetivo de esta entrada ...
Seguir leyendoHoy en día, crear aplicaciones móviles para múltiples plataformas supone todo un reto para los desarrolladores. Tratar de abordar un desarrollo usando los toolkits nativos de cada sistema requiere de una cantidad enorme de conocimientos específicos para cada uno de ellos. Nos encontraremos con un panorama enormeme ...
Seguir leyendoAntes de empezar tengo que advertirte que ningún lenguaje de programación, por simple que sea, puede aprenderse en profundidad en tan poco tiempo, a no ser que se requiera de experiencia previa en otros lenguajes. Dominar la programación precisa de experiencia, lo cual a su vez requiere de un tiempo mínimo que per ...
Seguir leyendoVagrant es una de esas herramientas que a priori parece que no tiene cabida en tu stack, pero una vez que comienzas a utilizarla se vuelve indispensable. En una entrada anterior vimos como hacer uso de la misma con el driver de Digital Ocean,
Seguir leyendoDocker Swarm es una herramienta integrada en el ecosistema de Docker que permite la gestión de un cluster de servidores. Pone a nuestra disposición una API con la que podemos administrar las tareas y asignación de recursos de cada contenedor dentro de cada una de las máquinas. Dicha API nos permite gestionar el cluster como si se tratase de una sola máquina Do ...
Seguir leyendoEl testing es una de las partes más importantes de cualquier proyecto de software, ya que aporta calidad y seguridad a nuestro código. En esta entrada voy a tratar de exponer algunas prácticas muy recomendables para testear modelos en Django de forma eficiente y segura.
Evita los mocks
Por norma general, en la gran mayoría de los errores rela ...
Seguir leyendoDudaba sobre si hacer esta entrada o no, ya que hay mucha documentación al respecto en la red (aunque algo desordenada a mi entender), pero la principal motivación del blog es que las entradas me sirvan a mi mismo, así que prefiero publicarlo a que quede perdido en una nota de Evernote.
Bueno vamos a ello, disponer de una conexión https en nuestro sitio web nos brinda ...
Seguir leyendo