Experimento Arquitectónico
PHP API Benchmark
Proyecto experimental que compara cómo diferentes frameworks PHP se comportan al implementar la misma pequeña API REST.
3 Implementaciones
Implementaciones en PHP puro, Laravel y Symfony.
Dominio Único
La misma entidad y reglas implementadas en todos los frameworks.
Enfoque Arquitectónico
Comparando complejidad, experiencia de desarrollo y capacidad de evolución.
Este proyecto explora cómo diferentes enfoques arquitectónicos afectan el desarrollo y evolución de una pequeña API backend.
El objetivo no es determinar cuál framework es "mejor", sino analizar cómo cada enfoque maneja la complejidad, la estructura y la experiencia del desarrollador al resolver el mismo problema.
🧩 Modelo de Dominio
El benchmark se construye alrededor de un dominio muy pequeño: una API de seguimiento de hábitos. El sistema permite a los usuarios definir hábitos personales y rastrear su progreso de finalización a lo largo del tiempo.
- Crear hábitos
- Listar hábitos existentes
- Actualizar la configuración del hábito
- Registrar la finalización del hábito
🗂️ Entidad: Hábito
Cada hábito representa una actividad recurrente que el usuario quiere rastrear.
⚙️ Implementaciones de Frameworks
- PHP — Implementación mínima sin framework, enfocándose en enrutamiento explícito y gestión manual de dependencias.
- Laravel — Implementación usando modelos Eloquent, controladores y la arquitectura de servicios típica de Laravel.
- Symfony — Implementación usando controladores de Symfony, inyección de dependencias y Doctrine ORM.
📊 Criterios de Evaluación
Cada implementación será evaluada en varios aspectos:
- Complejidad estructural
- Experiencia del desarrollador durante la implementación
- Facilidad para agregar nuevas funcionalidades
- Testeabilidad del sistema
🎯 Objetivo del Proyecto
El propósito de este experimento es entender mejor los intercambios entre simplicidad y abstracción en el desarrollo backend.
Al implementar la misma API con diferentes enfoques arquitectónicos, es más fácil evaluar cómo los frameworks influyen en la evolución de una base de código conforme la complejidad aumenta.