> For the complete documentation index, see [llms.txt](https://3ntr0pia-learning.gitbook.io/3ntr0-apuntes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://3ntr0pia-learning.gitbook.io/3ntr0-apuntes/principios-solid-y-clean-code/deuda-tecnica.md).

# Deuda Técnica

## 📉 ¿Qué es la Deuda Técnica?

* La deuda técnica es básicamente la falta de calidad en el código que escribimos.
* Conduce a costos futuros, generalmente económicos, debido a la necesidad de:
  * Mantenimiento.
  * Refactorización.
  * Comprensión del código, propio o de otros.
  * Transferencia de conocimiento a otras personas.

## 💬 "El tiempo es dinero"

* Este dicho popular resalta cómo el tiempo invertido en enfrentar la deuda técnica se traduce en costos económicos.

## 🧭 Esquema de la Deuda Técnica

* **Deuda Imprudente y Deliberada**: Cuando se actúa de manera consciente y descuidada, generalmente bajo presión de tiempo.
* **Deuda Imprudente e Inadvertida**: Surge del desconocimiento o falta de experiencia, y es peligrosa porque no se reconoce como tal.
* **Deuda Prudente y Deliberada**: Se conoce y acepta temporalmente para avanzar, pero requiere atención futura para evitar acumular intereses.
* **Deuda Prudente e Inadvertida**: Ocurre cuando no se tiene el conocimiento completo al inicio de un proyecto, revelándose a medida que el proyecto avanza.

## 🧑‍💻 Pagar la Deuda Técnica: Refactorización

* La refactorización es clave para pagar la deuda técnica, mejorando el código sin cambiar su comportamiento.
* Las pruebas automáticas son cruciales para asegurar el éxito de la refactorización.

## 📖 Código Limpio (Clean Code)

* Es aquel que se escribe pensando en su fácil lectura y comprensión futura, tanto por uno mismo como por otros.
* El objetivo es que el código sea simple, directo y legible como un texto bien escrito, facilitando la colaboración y el mantenimiento.
