Skip to content

Commit 027a10d

Browse files
authored
Merge pull request #12 from JOSHUARUIZ806/patch-5
Trabajo Joshua Isaias Ruiz Lopez 21212363
2 parents 078fd45 + 136c6c3 commit 027a10d

File tree

1 file changed

+45
-0
lines changed
  • docs/temas/Refactorización funcional vs. refactorización orientada a objetos

1 file changed

+45
-0
lines changed
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Joshua Isaias Ruiz Lopez 21212363
2+
# Refactorización Funcional vs. Refactorización Orientada a Objetos
3+
4+
## 📌 Introducción
5+
La refactorización es una práctica fundamental en el desarrollo de software. Su objetivo es **mejorar la calidad interna del código** sin alterar su funcionalidad externa.
6+
Este proceso no busca añadir nuevas características, sino **hacer que el código existente sea más claro, eficiente, mantenible y escalable**.
7+
8+
Dentro del mundo de la refactorización, existen distintos enfoques. Dos de los más comunes son:
9+
10+
- **Refactorización Funcional**: basada en principios de programación funcional como inmutabilidad, funciones puras y composición.
11+
- **Refactorización Orientada a Objetos (OOP)**: basada en clases, objetos y encapsulación.
12+
13+
En este documento se profundiza en cada uno de estos estilos, mostrando ejemplos, ventajas, limitaciones y su impacto en la calidad del software.
14+
15+
---
16+
17+
## 🔹 Refactorización Funcional
18+
19+
La programación funcional es un paradigma que trata el cómputo como la evaluación de funciones matemáticas.
20+
En este contexto, la **refactorización funcional** busca transformar el código hacia:
21+
22+
- Uso de **funciones puras** (sin efectos secundarios).
23+
- **Inmutabilidad**: evitar modificar variables o estructuras de datos.
24+
- **Composición de funciones**: resolver problemas complejos combinando funciones pequeñas.
25+
26+
Esto conduce a un código más **predecible, fácil de probar y menos propenso a errores**.
27+
28+
### Ejemplo en Python (antes y después)
29+
```python
30+
# Código antes de refactorizar
31+
def calcular_total(productos):
32+
total = 0
33+
for p in productos:
34+
total += p["precio"]
35+
return total
36+
37+
productos = [{"precio": 10}, {"precio": 20}, {"precio": 30}]
38+
print(calcular_total(productos)) # 60
39+
40+
41+
# Refactorizado en estilo funcional
42+
calcular_total = lambda productos: sum(p["precio"] for p in productos)
43+
44+
productos = [{"precio": 10}, {"precio": 20}, {"precio": 30}]
45+
print(calcular_total(productos)) # 60

0 commit comments

Comments
 (0)