Análisis del commit b16c75a
Assignee: @copilot
Resumen
Los tres métodos de SecurityDependencyDemoController repiten el mismo bloque de construcción de respuesta (LinkedHashMap) con las claves "mode" y "dependency", lo que produce ~16 líneas de código estructuralmente duplicado.
Detalles de la duplicación
Patrón: Construcción repetida de respuesta Map<String, Object>
- Severidad: Media
- Ocurrencias: 3
- Ubicaciones:
src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (líneas 24-29)
src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (líneas 38-42)
src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (líneas 48-53)
- Ejemplo de código duplicado:
// Repetido en los 3 métodos con variaciones menores
Map<String, Object> response = new LinkedHashMap<>();
response.put("mode", "exploitable"); // o "non-exploitable"
response.put("dependency", "org.apache..."); // varía por método
response.put("input", template); // o "entries"
return response;
Análisis de impacto
- Mantenibilidad: Añadir o renombrar un campo de respuesta requiere cambiar 3 lugares.
- Riesgo de bugs: Una inconsistencia en los nombres de clave entre métodos puede pasar desapercibida.
- Código repetido: ~16 líneas de lógica idéntica en estructura.
Recomendaciones de refactoring
-
Extraer método auxiliar privado
- Crear
buildResponse(String mode, String dependency, String dataKey, Object dataValue) en el mismo controlador.
- Esfuerzo estimado: 30 min.
- Beneficio: un único punto de cambio para el formato de respuesta.
-
Usar un DTO o record de respuesta
- Crear
SecurityDemoResponse con campos mode, dependency, data.
- Serializar con Jackson automáticamente.
- Beneficio: tipado estático, fácilmente extensible.
Checklist de implementación
Metadatos del análisis
- Archivos analizados: 6 archivos fuente (excluidos tests y workflows)
- Método de detección: Análisis semántico y estructural
- Commit: b16c75a
- Fecha de análisis: 2026-06-24T13:03:01Z
Generated by Duplicate Code Detector · sonnet46 711.2K · ◷
Add this agentic workflows to your repo
To install this agentic workflow, run
gh aw add githubnext/agentics/workflows/duplicate-code-detector.md@298f992955146a6731d380a9de808e17861708e5
Análisis del commit b16c75a
Assignee:
@copilotResumen
Los tres métodos de
SecurityDependencyDemoControllerrepiten el mismo bloque de construcción de respuesta (LinkedHashMap) con las claves"mode"y"dependency", lo que produce ~16 líneas de código estructuralmente duplicado.Detalles de la duplicación
Patrón: Construcción repetida de respuesta
Map<String, Object>src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java(líneas 24-29)src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java(líneas 38-42)src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java(líneas 48-53)Análisis de impacto
Recomendaciones de refactoring
Extraer método auxiliar privado
buildResponse(String mode, String dependency, String dataKey, Object dataValue)en el mismo controlador.Usar un DTO o record de respuesta
SecurityDemoResponsecon camposmode,dependency,data.Checklist de implementación
Metadatos del análisis
Add this agentic workflows to your repo
To install this agentic workflow, run