Cómo construí este portfolio

Del concepto a producción: arquitectura hexagonal, DDD y Symfony

# Cómo construí este portfolio

## Decisiones de arquitectura

Este portfolio no es solo una web más - es una demostración práctica de arquitectura limpia, Domain-Driven Design (DDD) y principios SOLID aplicados con Symfony.

### ¿Por qué arquitectura hexagonal?

La arquitectura hexagonal (también conocida como Ports & Adapters) me permite:

- **Separar claramente** el dominio del negocio de los detalles técnicos
- **Hacer el código testeable** sin depender de frameworks externos
- **Facilitar el mantenimiento** y la evolución del código
- **Demostrar expertise** en arquitecturas avanzadas

### Stack técnico elegido

- **PHP 8.1+** con todas las funcionalidades modernas
- **Symfony 6.4** como framework web
- **Twig** para templating limpio y mantenible
- **JSON files** como persistencia (simple pero efectivo)
- **Vanilla JavaScript** (sin frameworks, código limpio)
- **CSS moderno** con Grid, Flexbox y Custom Properties

### Bounded Contexts implementados

1. **Portfolio Context**: Gestiona información personal, skills y experiencia
2. **VibeCoding Context**: Gestiona artículos técnicos y contenido
3. **Shared Kernel**: Elementos compartidos entre contextos

### Principios SOLID en acción

**Single Responsibility**: Cada clase tiene una única razón para cambiar
**Open/Closed**: Abierto para extensión, cerrado para modificación
**Liskov Substitution**: Las implementaciones son intercambiables
**Interface Segregation**: Interfaces pequeñas y específicas
**Dependency Inversion**: Dependemos de abstracciones, no de concreciones

## Conclusión

Este portfolio es tanto una carta de presentación como una demostración de código limpio y arquitectura sólida.