A día de hoy usamos un enorme conjunto de bibliotecas y frameworks, además los usamos con cierta libertad dentro de nuestro código, y pasado el tiempo nos damos cuenta de que esa biblioteca, no cubre mis necesidades, o tiene algún fallo, o no escala bien en proyectos más grandes… en resumen, hemos caído en una trampa. No se puede evitar caer en estas trampas, porque depende de nuestras necesidades y las bibliotecas que utilizamos, por lo tanto, solo podemos estar lo mejor preparados posibles para salir de ellas tan pronto como nos demos cuenta.
Como solución a esto, plantearé varias vías (nada innovadoras, pero menos usadas de lo que deberían). Unit testing (TDD idealmente), arquitectura hexagonal, y algunas reglas básicas de clean code.