Refactor Especificado del Módulo de Pagos en una Marketplace de Buenos Aires
Visión general
De qué trata este proyecto.
Recibes el módulo en Java 17 (pagos: charge, refund, void, capture, partialCapture, reverse) con pruebas mínimas. Paso 1: escribe la especificación formal de las 6 operaciones en formato precondición/postcondición/invariante, con ejemplos. Paso 2: añade pruebas basadas en propiedades (jqwik) que validen las invariantes, mas pruebas de ejemplo por cada postcondición. Paso 3: refactoriza extrayendo objetos de valor, separando políticas de validación de la persistencia, sin tocar la API pública del módulo. Entrega la especificación, los tests, los commits del refactor y un informe final.
El Briefing
Lo que harás y lo que demostrarás.
Escribir la especificación formal del módulo de pagos heredado y refactorizarlo preservando comportamiento, con pruebas que verifiquen la especificación.
Earning criteria — what you'll demonstrate
- Escribir especificaciones formales precondición/postcondición/invariante sobre código real
- Aplicar property-based testing para verificar invariantes que los tests por ejemplo no cubren
- Refactorizar código heredado sin cambiar comportamiento observable, con commits atómicos
- Justificar decisiones de diseño con evidencia (complejidad ciclomática, cobertura, riesgo)
Encaje académico
Dónde encaja esto en tus estudios.
Afina las mismas habilidades que tu titulación espera de ti.
Habilidades
Habilidades que demostrarás.
Cada una aparece en tu credencial verificada.
Carreras
Roles para los que esto te prepara.
Títulos reales. Puentes de habilidades reales. Elige el que más se acerque a tu trayectoria.
Trayectorias profesionales que esto construye
Roles canónicosIngeniero de Backend
Especificar, testear y refactorizar un módulo heredado de pagos sin romper comportamiento es exactamente el trabajo que diferencia al backend mid del backend senior en cualquier marketplace.
Este proyecto afina
- specifications
- refactoring
- java
Ingeniero de Software
Trabajar con especificaciones formales y property-based testing eleva al ingeniero generalista por encima del nivel de craft promedio de la industria.
Este proyecto afina
- specifications
- property-based-testing
- automated-testing