🔍 Código Duplicado: Accessors JavaBean manuales en modelos de dominio
Análisis del commit b16c75a
Responsable: @copilot
Resumen
Dos clases de modelo (Item y WeekendPlan) implementan manualmente getters y setters JavaBean con código boilerplate idéntico en estructura, cuando podrían usar Java Records o Lombok para eliminar estas ~33 líneas repetidas.
Detalles de la Duplicación
Patrón: Accessors JavaBean manuales repetidos
- Severidad: Baja
- Ocurrencias: 2 clases, ~12 métodos accessor similares
- Ubicaciones:
src/main/java/com/example/demo/model/Item.java (líneas 25-47) — 3 getters + 3 setters
src/main/java/com/example/demo/model/WeekendPlan.java (líneas 19-37) — 5 getters
- Ejemplo de código duplicado (mismo patrón en ambos archivos):
// Item.java
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
// WeekendPlan.java — mismo patrón estructural
public String getTitle() {
return title;
}
// ... repetido para cada campo
Análisis de Impacto
- Mantenibilidad: Añadir un campo nuevo requiere escribir getter y setter manualmente en cada clase.
- Riesgo de bugs: Bajo en accessors simples, pero
WeekendPlan podría ser inmutable (record) y actualmente no lo es de forma explícita.
- Código hinchado: ~33 líneas de boilerplate que se pueden eliminar completamente.
Recomendaciones de Refactorización
-
Convertir WeekendPlan a Java Record (recomendado, Java 16+)
public record WeekendPlan(String title, String vibe, String budget, String socialBattery, String punchline) {}
- Esfuerzo estimado: muy bajo (< 30 min)
- Beneficios: inmutabilidad garantizada,
equals/hashCode/toString gratuitos
-
Añadir Lombok a Item.java
`@Data`
public class Item { ... }
- Esfuerzo estimado: bajo (< 1 hora incluyendo dependencia en build.gradle)
- Beneficios: elimina todos los getters/setters manuales
Checklist de Implementación
Metadatos del Análisis
- Archivos analizados: 5 archivos fuente Java
- Método de detección: Análisis semántico de código
- Commit: b16c75a
- Fecha de análisis: 2026-06-19
Generated by Duplicate Code Detector · sonnet46 968.5K · ◷
Add this agentic workflows to your repo
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/duplicate-code-detector.md@298f992955146a6731d380a9de808e17861708e5
🔍 Código Duplicado: Accessors JavaBean manuales en modelos de dominio
Análisis del commit b16c75a
Responsable:
@copilotResumen
Dos clases de modelo (
ItemyWeekendPlan) implementan manualmente getters y setters JavaBean con código boilerplate idéntico en estructura, cuando podrían usar Java Records o Lombok para eliminar estas ~33 líneas repetidas.Detalles de la Duplicación
Patrón: Accessors JavaBean manuales repetidos
src/main/java/com/example/demo/model/Item.java(líneas 25-47) — 3 getters + 3 setterssrc/main/java/com/example/demo/model/WeekendPlan.java(líneas 19-37) — 5 gettersAnálisis de Impacto
WeekendPlanpodría ser inmutable (record) y actualmente no lo es de forma explícita.Recomendaciones de Refactorización
Convertir
WeekendPlana Java Record (recomendado, Java 16+)equals/hashCode/toStringgratuitosAñadir Lombok a
Item.javaChecklist de Implementación
WeekendPlana Java RecordItema record mutable con Lombok@Data@NotBlank,@Size)Metadatos del Análisis
Add this agentic workflows to your repo
To install this agentic workflow, run