Thoughts on Software

  • Home
  • Artículos por categorías
  • Acerca de mí

Refactorizando para tener un código más funcional

March 21, 2018

En una conversación reciente, surgió repetidamente la pregunta acerca de qué es exactamente la programación funcional. Para mí, resulta más difícil intentar dar una definición precisa que mostrar ejemplos de código más o menos funcional. Lo que sigue es un caso práctico en el que tomamos un código que necesita claramente ser refactorizado, para lo que se siguen distintas aproximaciones, algunas más funcionales que otras, comparando las caracte... Seguir leyendo

¿Qué es una mónada?

January 14, 2018

Para los que empezamos con Scala sin conocimientos previos sobre programación funcional, una palabra empieza a repetirse con cierta frecuencia sin saber muy bien qué es: mónada. Empiezas a oír hablar de mónadas y ves que alguna gente sienten cierto entusiasmo hacia ese concepto que aún no acabas de entender, mientras ves que otros recelan y miran con suspicacia. Este artículo va dedicado a aquellos que no saben qué es una mónada ni cuáles son... Seguir leyendo

El Principio de Substitución de Liskov

October 15, 2017

Mucho se habla de diseño y los principios a seguir a la hora de construir software. Sin lugar a dudas, uno de los mantras más repetidos es S.O.L.I.D., un acrónimo para cinco principios básicos que nos ayudan a desarrollar software: S es para Single Responsibility, una función, clase o componente debe tener una única responsabilidad, es decir, una única razón para cambiar. O es para Open-Closed, nuestros componentes tienen que estar abiert... Seguir leyendo

Inyección de dependencias de forma funcional

September 3, 2017

Durante los últimos meses he estado trabajando en un proyecto utilizando Scala como lenguaje de programación principal. La mezcla de programación orientada a objetos y programación funcional que permite Scala resulta interesante, pero cada vez estoy más convencido de que la verdadera potencia del mismo se consigue cuando se aplica un estilo puramente funcional. Al fin y al cabo, si únicamente queremos un lenguaje con algunas características fu... Seguir leyendo

Reflexiones sobre cómo organizar un code retreat

March 21, 2017

El pasado sábado tuve la oportunidad de organizar un code retreat con la comunidad Scala de Madrid donde, además, hice de facilitador. La idea de un code retreat es tomarse un tiempo para hacer una práctica deliberada y mejorar nuestras habilidades de desarrollo de software en un entorno sin el estrés cotidiano que tenemos en nuestro trabajo. El principal ingrediente para conseguir esto es que, durante el code retreat, no existe ningún objetiv... Seguir leyendo

Continuous Delivery Cambiando nuestro código sin dejar de ofrecer un servicio

July 5, 2016

En este artículo presentamos un ejemplo práctico de cómo llevar a cabo cambios importantes tanto en nuestro código como en la base de datos utilizada para mantener la persistencia de la información sin dejar de proporcionar servicio. De esta forma, podemos hacer efectivo el paradigma de continuous delivery sin que los usuarios de nuestro sistema sufran paradas en el servicio debido a las actualizaciones que llevamos a cabo. Presentación del... Seguir leyendo

Clasificación automática de textos

March 5, 2016

Imaginemos que queremos construir un servicio que recomiende artículos para leer basándose en las preferencias de los usuarios. Una forma de empezar es preguntando a los usuarios por qué tipo de noticias les interesa más (deportes, política, economía, etc.) y sugerirles noticias de aquellos temas que han elegido. Pero, si queremos enviar noticias de distintas fuentes, más o menos conocidas, primero vamos a tener que resolver un problema: ¿cómo... Seguir leyendo

Tomando notas de forma efectiva (I)

July 21, 2015

Tengo la manía de querer recordarlo todo. Pero mi cerebro, como el de todos, está hecho más bien para analizar y componer ideas nuevas que para guardar un montón de información. Así que hago lo que casi todo el mundo ha hecho desde siempre: tomar notas. Es algo que, si no hago, creo que no estoy trabajando (o, peor todavía, que estoy trabajando sin organización y de forma poco efectiva). Puedes llamarme maniático, pero así de importante es par... Seguir leyendo

Mitos, falacias, errores y paradojas temporales

March 3, 2015

Cuando escribes código (o cuando lo estás probando) te encuentras realidades que tienen distintos efectos en tu trabajo: desde hacerte perder (un poco de) tiempo a convertir tu sistema en un auténtico infierno donde no quieres pasar ni un minuto más del estrictamente necesario. Una variedad especial que se me ha repetido continuamente son las relacionadas con el tiempo. Por diversos motivos, tratar con el tiempo en un sistema puede llegar a se... Seguir leyendo

El mito del trabajador siempre ocupado

December 29, 2014

Tengo que confesar que tengo un problema: no respeto a la gente que trabaja mucho. Bueno, mejor dicho, a la gente que está siempre haciendo cosas. Bueno, tampoco se trata de respeto propiamente dicho, más bien de falta de entendimiento. Sí, creo que eso es más bien lo que me pasa: no entiendo a la gente que está todo el día ocupada haciendo cosas. Ahora está mejor (perdón a los que se hayan podido sentir ofendidos). Profundizando un poco ... Seguir leyendo
Siguiente

Thoughts on Software is authored by Jorge Agudo Praena
Copyright © 2018