The talking bit

Personal learning journal about programming, maybe more.


Blog de franiglesias  | @GitHub Pages  | Acerca de mi The Talking List

Temas

good-practices

refactoring

php

testing

tdd

design-patterns

python

blogtober19

design-principles

tb-list

misc

bdd

legacy

golang

dungeon

ruby

tools

hexagonal

tips

ddd

books

bbdd

software-design

soft-skills

pulpoCon

oop

javascript

api

sql

ethics

agile

typescript

swift

java

Testeando lo que puede ir mal

2024/05/25 -- Este artículo puede considerarse una continuación del que publicamos sobre reemplazar mocks por implementaciones alternativas. La diferencia es que esta vez, necesitamos simular los problemas, en lugar de los éxitos.

testing   php  

TDD outside-in y testing inside-out

2024/05/17 -- Una de las preguntas sobre TDD outside-in que más me hacen es acerca del uso de los mocks. Al fin y al cabo, acoplan los tests a la implementación y eso no está bien.

testing  

VSA. Más de una feature

2024/05/13 -- Con una feature implementada en el artículo anterior, vamos a introducir una nueva. Es ahora cuando tendremos que enfrentarnos de verdad al desafío que supone Vertical Slice Architecture.

design-patterns   php  

VSA. Diseño del handler

2024/05/10 -- Después de abrir boca con el artículo anterior y tras arreglar algunos problemas que tenía con la configuración de servicios toca seguir profundizando en el desarrollo. Nos vamos al handler.

design-patterns  

Vertical Slice Architecture

2024/05/01 -- En este artículo plasmo mis primeras reflexiones acerca de Vertical Slice Architecture. No trato de hacer una descripción de la propuesta como tal, que tampoco es que esté muy definida que digamos.

design-patterns  

Mutation Testing

2024/04/19 -- Mutation testing es una técnica que sirve para analizar la capacidad de una suite de tests para reaccionar ante cambios no deseados del comportamiento del sistema.

testing  

Seams en Golang

2023/10/24 -- Introducir seams o costuras es una de las herramientas que usamos para resolver algunos tests complicados. Un seam es un lugar del código en el que podemos hacer un cambio de comportamiento pero sin modificar el original. Habitualmente, aplicamos esta técnica cuando queremos que la unidad bajo test no haga uso de dependencias que son caras de utilizar en entorno de testing.

testing   golang  

Refactoriza rompiendo cosas

2023/05/28 -- En el artículo anterior sobre la técnica Uplift conditional comenté que mostraría alguna otra técnica de refactoring alternativa sobre el mismo problema. Esta vez, la propone ni más ni menos que la gran Sandi Metz, aunque le voy a dar un par de twists de mi cosecha.

refactoring   good-practices  

Despejar una maraña de condicionales

2023/05/27 -- Aprovechando que al hablar de Approval Test y la técnica Golden Master utilizamos la kata Gilded Rose, vamos a hablar de una técnica muy ingeniosa para reorganizar estructuras condicionales extremadamente intrincadas.

refactoring  

Tests y repositorios

2023/03/28 -- Para testear casos de uso es frecuente que utilice dobles de repositorios u otros servicios de almacenamiento. Estos dobles guardan su contenido en memoria durante la ejecución del test y son realmente rápidos. Pero para poder hacer esto, es necesario tener un buen diseño.

good-practices   testing  

Desacoplarse del sistema

2023/03/24 -- Es muy posible que estés trabajando en algún proyecto que necesite manejar fechas u horas, o incluso algo de aleatoridad. Todos los lenguajes incluyen alguna librería estándar para gestionar estos datos. O bien existen paquetes alternativos para responder a ciertas necesidades. Por ahí estamos bien servidas, pero hay un aspecto que con frecuencia pasamos por alto: trabajar con fechas, horas o números aleatorios nos acopla al sistema.

golang   testing   good-practices   refactoring  

Decoradores en Python

2022/12/16 -- El proyecto Dungeon me está sirviendo para aprender Python más a fondo, así que voy a dedicar algunos artículos a cuestiones específicas que me interesan más allá del proyecto en sí. En esta ocasión hablaré de los decoradores en Python.

python   good-practices  

OOP e Inyección de dependencias en Go

2022/09/07 -- Golang es un lenguaje multiparadigma. Puedes trabajar con orientación a objetos y, por tanto, aplicar patrones y principios de este paradigma. Pero a Golang le gusta hacerlo a su manera.

golang  

Constructores limpios

2022/04/03 -- Después de haber leído los dos volúmenes de Elegant Objects, tengo un montón de ideas dando vueltas en la cabeza. Así que para darles salida he empezado a dedicar un rato a practicar algunas de las recomendaciones de la obra. O, al menos, intentarlo.

java   good-practices  

Métodos largos

2022/01/25 -- No hace mucho dejé caer en twitter que tener métodos de más de 10 líneas me parecía un smell. Por supuesto se levantó cierta polémica y hubo algunas respuestas a favor y en contra.

design-principles   refactoring  

Outside-in y Behavior Driven Development 1

2021/10/17 -- Outside-in TDD se ha convertido en mi primera opción para desarrollar nuevas features en los proyectos en los que trabajo. Hasta ahora he estado trabajando únicamente con phpunit, pero estoy preparando una especie de side-project para cambiar el modo en que hago los tests de aceptación.

tdd   php   bdd  

Principio de separación de intereses

2021/07/28 -- Edsger W. Dijkstra (1930-2002) es todo un personaje en el campo de las ciencias de la computación, no solo por la cantidad y calidad de sus aportaciones, sino también por su particular carácter y algunas frases lapidarias.

design-principles  

Las tres leyes de TDD

2020/03/06 -- Este es un artículo de introducción a Test Driven Development a partir de las “tres leyes” y cómo estas restricciones generan un proceso poderoso para construir software sólido.

testing   tdd  

De directory driven a DDD paso a paso

2019/12/17 -- Muchas bases de código que han sido creadas tratando de seguir la metodología DDD se quedan atascadas en ese falso DDD que solemos llamar “directory driven development”, que es básicamente una aplicación de la Arquitectura Hexagonal. Esto es, utilizan la típica distribución de carpetas Domain, Application e Infrastructure, pero el código en ellas está mal organizado y mal distribuido porque en su día no se tenía una comprensión completa de lo que implica Domain Driven Design.

good-practices   design-principles   ddd  

DDD, el lenguaje ubicuo

2019/11/24 -- Creo que una de las cosas que provocan que se haga bola la parte estratégica del DDD tiene que ver con que se trata de una metodología muy orgánica. Es difícil incluso definir un principio y un final del proceso. De hecho, diría que el DDD bien entendido no termina nunca mientras el negocio evoluciona.

good-practices   design-principles   ddd  

End (Blogtober2019)

2019/10/31 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Rollback (Blogtober2019)

2019/10/30 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Legacy (Blogtober2019)

2019/10/29 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Deprecated (Blogtober2019)

2019/10/28 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Monolith (Blogtober2019)

2019/10/27 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Hope (Blogtober2019)

2019/10/26 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Coverage (Blogtober2019)

2019/10/25 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Void (Blogtober2019)

2019/10/24 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Parameter (Blogtober2019)

2019/10/23 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Woman (Blogtober2019)

2019/10/22 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Web (Blogtober2019)

2019/10/21 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Sleep (Blogtober2019)

2019/10/20 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Alcohol (Blogtober2019)

2019/10/19 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Smell (Blogtober2019)

2019/10/18 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Fume (Blogtober2019)

2019/10/17 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Toxic (Blogtober2019)

2019/10/16 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Estimation (Blogtober2019)

2019/10/15 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Glutton (Blogtober2019)

2019/10/14 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Semicolon (Blogtober2019)

2019/10/13 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Troll (Blogtober2019)

2019/10/12 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Overflow (Blogtober2019)

2019/10/11 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Testing (Blogtober2019)

2019/10/10 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Mock (Blogtober2019)

2019/10/09 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Exception (Blogtober2019)

2019/10/08 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Bug (Blogtober2019)

2019/10/07 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Teenager (Blogtober2019)

2019/10/06 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Ninja (Blogtober2019)

2019/10/05 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Junior (Blogtober2019)

2019/10/04 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Bravery (Blogtober2019)

2019/10/03 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Gopher (Blogtober2019)

2019/10/02 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Blogtober 2019

2019/10/01 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Commit (Blogtober 2019)

2019/10/01 -- Mi compañera y manager en Holaluz Mavi Jiménez va a hacer un dibujo cada día del mes sobre una palabra propuesta en twitter. Y aquí vamos a intentar escribir un post por cada una de ellas.

blogtober19  

Guía para testear con dobles (1)

2019/05/26 -- Se diría que uno de los puntos más problemáticos a la hora de testear sea, para muchas personas, el utilizar dobles: cuándo usarlos, cómo y un largo etcétera de preguntas. En este artículo voy a proponer una serie de consideraciones para testear con dobles y no sufrir.

testing  

Testing expresivo

2019/05/12 -- Desde hace un tiempo estoy explorando una forma de organizar el código de mis tests, al menos de una parte de ellos. A falta de un nombre mejor he decidido llamar a esta organización testing expresivo.

php   testing   tdd   bdd  

Un doble para SplFileObject

2019/05/05 -- La Standard PHP Library incluye unas cuantas clases que merece la pena conocer, entre ellas SplFileObject de la cual nos ocupamos en este artículo. Sin embargo, a veces tienen alguna sorpresa oculta.

testing   tips  

Testeando lo desconocido (1)

2019/02/22 -- Recientemente he comenzado a trabajar en otro proyecto dentro de la empresa ayudando con el testing. Es una parte del negocio que conozco poco todavía y la aplicación con la que estoy trabajando es, por supuesto, distinta, aunque similar en planteamiento.

testing  

Descuento del 50% en CodelyTV Pro con el libro

2019/01/31 -- Hace unos días anunciábamos que el libro Testing y TDD para PHP estaría incluido gratis para los suscriptores de CodelyTV Pro. Ahora, además, si compras el libro tienes un 50% de descuento en el primer mes de suscripción.

misc  

La kata del DNI para aprender TDD

2018/12/12 -- Una vez que comprendemos el concepto, no es difícil hacer TDD. Pero ese primer paso necesario para arrancar suele necesitar ayuda. Lo mejor es encontrar un ejercicio de programación que sea sencillo sin ser trivial y que ayude a poner de manifiesto los elementos más importantes de la metodología TDD.

tdd   testing  

Normalización de bases de datos

2018/11/18 -- La normalización de las bases de datos es un proceso que persigue reducir la redundancia de datos y controlar las dependencias entre las entidades representadas en las tablas, de modo que éstas puedan evolucionar fácilmente y se reduzcan los errores que generen inconsistencia de datos.

bbdd   sql  

Introducción a Behavior Driven Development en PHP (4)

2018/10/06 -- Ya llevamos tres capítulos de esta serie sobre BBD en PHP. En el primer artículo de la serie dimos una visión general de BDD y behat. En el segundo y el tercero revisamos el proceso de desarrollo de una Feature desde la historia de usuario hasta tener un código funcional usando la metodología y herramientas BDD.

php   bdd   testing  

Introducción a Behavior Driven Development en PHP (3)

2018/10/04 -- En el primer artículo de la serie comenzamos introduciendo el concepto de BDD, el lenguaje Gherkin y la herramienta behat. En el segundo, utilizamos PHPSpec para comenzar a desarrollar nuestra feature, partiendo de un Use Case y descubriendo las clases colaboradoras necesarias a medida que identificamos responsabilidades. En esta tercera entrega pretendemos a empezar a unir las piezas.

php   bdd   testing  

Splat operator

2018/09/06 -- Aunque está entre nosotros desde la versión 5.6 de PHP, splat operator es relativamente desconocido y su uso no deja de ser un poco confuso.

php   tips  

Crear y usar un canal de log en Symfony

2018/08/29 -- De vez en cuando nos puede interesar disponer de un log específico para una parte concreta de una aplicación. Fundamentalmente lo que pretendemos es aislar esos mensajes para poder analizarlos con facilidad.

tools   tips  

Dependencias y acoplamiento

2018/06/05 -- Cómo aplicar el principio de inversión de dependencias, entendiendo qué es dependencia y qué acoplamiento. ¡Ah! Y cómo saber cuándo necesitamos usar inyección o instanciación al crear objetos.

php   good-practices  

Programar sin ifs

2018/05/09 -- If/then es una de las estructuras de control básicas de la programación, pero su abuso puede multiplicar la complejidad de un algoritmo y la dificultad de mantenerlo. En este artículo exploraremos alguna estrategias para usar los if con cabeza.

php   good-practices  

TDD de un validador de NIF

2018/05/01 -- Hay validadores de NIF a espuertas, pero escribir uno con TDD resulta ser un interesante ejercicio con el que desarrollar algunas estrategias de test.

php   tdd  

Testeando lo impredecible

2018/04/14 -- ¿Cómo testear lo que no podemos predecir? En muchos sentidos los tests se basan en que el comportamiento del código es predecible: si hacemos ciertas operaciones con ciertos datos podemos esperar ciertos resultados y no otros. Pero esto no siempre se cumple, a veces tenemos que testear algo que no sabemos qué será.

php   tdd  

Builder pattern

2018/04/02 -- Estos últimos días he trabajado bastante con el patrón Builder, así que toca escribir algo sobre su utilidad para la creación de objetos complicados.

php   design-patterns  

Test doubles (1)

2018/03/22 -- Estaba pensando en comenzar el artículo con la manida metáfora de los test doubles como especialistas de cine, los que doblan a los actores en ciertas escenas, no necesariamente peligrosas. Pero cuando más vueltas le doy, menos claro tengo que sea un buen símil.

testing   php  

TDD no es solo testear antes de escribir código

2018/03/11 -- Ya han pasado más de siete meses desde que llegué a Barcelona, acabo de cumplir mis dos primeras semanas en una nueva empresa y estoy muy contento en mi nuevo equipo, con quienes ya he empezado a aprender un montón de cosas y, de paso, desoxidarme un poco.

tdd   php  

Manejar excepciones

2018/02/22 -- Las excepciones son elementos del lenguaje que nos permiten indicar situaciones que rompen el flujo normal de un programa. Cuando se lanza una excepción, ésta asciende la pila de llamadas del lenguaje hasta encontrar algún punto en que sea gestionada. Si no lo encuentra, el flujo del programa se detiene y se muestra un error.

php   good-practices  

El patrón decorador

2018/02/19 -- El patrón decorador tiene como objetivo permitirnos modificar el comportamiento de un objeto en tiempo de ejecución, esto es, de manera dinámica.

design-patterns  

Luhn Test kata en Python

2018/02/08 -- Hoy voy a hacer un experimento interesante: una kata en Pyhton. Llevo una temporada jugueteando un poco con el lenguaje y he podido probar algunas cosillas.

python   tdd  

Clean Validation

2018/01/28 -- La validación es el proceso mediante el cual nos aseguramos de que los datos introducidos al sistema cumplen ciertas condiciones necesarias para poder utilizarlos sin peligro, sin provocar errores, y con la posibilidad de proporcionar resultados, al mantenerse dentro de los límites de tolerancia de los algoritmos que los emplean.

design-principles   php  

Ejercicio de refactor (2) Extraer hasta la última gota

2017/12/17 -- Una vez que hemos conseguido describir con tests el comportamiento del método que nos interesa, llega el momento de refactorizar. Queremos cambiar la implementación, pero no alterar el comportamiento público del método. Por lo tanto, los tests han de permanecer en verde tras cada cambio, procurando que la fase roja dure lo menos posible, lo que implica realizar baby-steps y no grandes refactors de una sentada.

refactoring   legacy  

TDD en PHP. Un ejemplo con colecciones (4)

2017/11/25 -- Con lo pequeñita que es la clase Collection y está dando para un montón de artículos. En esta cuarta entrega voy a intentar desarrollar el método filter, el cual también nos dará un punto de partida para otros métodos.

tdd   php  

TDD en PHP. Un ejemplo con colecciones (2)

2017/11/21 -- Ahora que tenemos una clase Collection a la que podemos añadir objetos de un tipo determinado o sus descendientes, vamos a desarrollar algo de comportamiento. Al fin y al cabo, queremos nuestras colecciones para hacer algo con sus elementos, no solo para admirarlas… (ejem!).

tdd   php  

Consistencia de objetos

2017/11/12 -- El último artículo me dejó con un poco de mal sabor de boca porque la solución propuesta al problema de tratar casos especiales en una colección de objetos que estábamos construyendo a partir de datos obtenidos de una API externa cojea en algún punto.

design-principles  

Modernizando el legacy

2017/10/01 -- Hace unos días trabajamos en una de esas historias que mola porque puedes reducir un poco de legacy code y refactorizar, contribuyendo a mejorar la calidad del código y su extensibilidad futura.

legacy   refactoring  

Presenter pattern

2017/09/01 -- Existen una serie de patrones de diseño de sóftware básicos, pero nada nos impide crear nuevos patrones a partir de alguno de los clásicos, con el fin de adaptarlos a situaciones más específicas. Sencillamente, son patrones menos generales.

php   design-patterns  

Dos semanas

2017/08/29 -- Mañana miércoles se cumplen dos semanas de mi nueva etapa profesional.

misc  

Katando PHPSpec 4

2017/05/29 -- En las entregas anteriores de la serie he tratado de explicar cómo hacer TDD usando PHPSpec. En esta última, voy a mostrar cómo dar un “salto” en el desarrollo, usando los test existentes como protección.

tdd   bdd  

Katando PHPSpec 3

2017/05/26 -- En esta tercera entrega, vamos a examinar cómo los nuevos requisitos nos pueden llevar a refactorizar una solución existente y discutiremos lo que define la sobreingeniería.

tdd   bdd  

Sirviendo API rest (1)

2017/05/14 -- Voy a hacer un ejemplo de controlador que responde a peticiones por API Rest distribuido en varias entregas. Me voy a limitar a lo más básico y en futuros artículos iré añadiendo los elementos de seguridad, etc. En la primera parte, quiero centrarme en la parte de diseño.

api  

API rest

2017/05/09 -- Las API REST permiten a aplicaciones, servicios y capas de aplicación comunicarse entre sí, independientemente de las tecnologías subyacentes.

api  

Experimentos con read-model

2017/04/23 -- En los últimos días he estado trabajando ya en módulos específicos de la aplicación. En concreto la parte del CMS por ser la más visible y conceptualmente bastante sencilla. Así puedo hacer algunos experimentos interesantes en la separación de responsabilidades entre capas.

design-patterns  

Empezando con Doctrine DBAL

2017/04/06 -- Cuando hablamos de Doctrine casi siempre pensamos en su ORM. Sin embargo, su capa de acceso a la base de datos es una gran herramienta poco conocida, de la que hay poca información aparte de la documentación oficial.

bbdd  

Huyendo del database-first

2017/04/03 -- Database-first: al principio puede parecer fácil y hasta lógico. Es como el reverso tenebroso de la Fuerza, pero con datos.

bbdd  

Commits, tags y branches en git

2017/03/27 -- Trabajar de forma individual hace que, a veces, descuides aspectos del flujo de trabajo que son cruciales en equipos. Uno de estos aspectos es la gestión de versiones y la ramificación de proyectos.

tools  

Historia de una reescritura (3) empezar con la vista

2017/03/07 -- Cuando analizas tu código antiguo es casi como analizar el código de otro desarrollador. En realidad es un poco peor, porque sabes que tú eres el responsable de esa masa de lodo. Esta es la tercera entrega de una serie sobre mi proyecto para abordar una aplicación legacy.

legacy  

Historia de una reescritura (1)

2017/03/04 -- Hace unos 15 años comencé a escribir mi primera aplicación seria en PHP. Esta aplicación fue creciendo y sufriendo diversos cambios y prestaciones. Ahora ha llegado el momento de replantearla.

legacy  

Los principios SOLID

2016/11/29 -- Los principios SOLID son cinco principios en el diseño orientado a objetos compilados por Robert C. Martin, aunque quien primero se refirió a ellos con este nombre fue Michael Feathers. Martin los tomó como base para sus trabajos “Clean Code” y “Clean Architecture” y les dio la formulación más conocida.

design-principles  

Polimorfismo y extensibilidad de objetos

2016/11/29 -- En Programación Orientada a Objetos el polimorfismo es una característica que nos permite enviar el mismo mensaje, desde el punto de vista sintáctico, a distintos objetos para que cada uno de ellos lo realice con un comportamiento específico.

design-principles