Análisis del commit b16c75a
Asignado a: @copilot
Resumen
Los tres métodos endpoint de SecurityDependencyDemoController repiten el mismo patrón de construcción de un LinkedHashMap de respuesta: creación del mapa, inserción de "mode" y "dependency", adición de datos específicos y return. Este bloque duplicado aparece 3 veces con variaciones mínimas.
Detalles de la Duplicación
Patrón: Construcción de mapa de respuesta
- 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–43)
src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java (líneas 49–53)
- Ejemplo de código duplicado:
// Presente en los 3 métodos con diferente "mode", "dependency" y entradas
Map<String, Object> response = new LinkedHashMap<>();
response.put("mode", "...");
response.put("dependency", "...");
response.put("...", ...); // dato específico del método
return response;
Análisis de Impacto
- Mantenibilidad: Si se necesita cambiar la estructura de la respuesta (p.ej. añadir un campo común), hay que modificar los 3 métodos por separado.
- Riesgo de bugs: Un cambio parcial podría dejar los endpoints inconsistentes entre sí.
- Code Bloat: ~12 líneas de código estructuralmente idéntico.
Recomendaciones de Refactoring
-
Extraer método privado buildResponse
- Crear un método auxiliar en la misma clase:
private Map<String, Object> buildResponse(String mode, String dependency, String dataKey, Object data) {
Map<String, Object> response = new LinkedHashMap<>();
response.put("mode", mode);
response.put("dependency", dependency);
response.put(dataKey, data);
return response;
}
- Esfuerzo estimado: < 1 hora
- Beneficios: elimina las 3 copias del patrón, facilita cambios futuros en la estructura de la respuesta.
-
Alternativa: uso de un DTO o record
- Definir un
record DemoResponse(String mode, String dependency, ...) para tipado estático.
Checklist de Implementación
Metadatos del Análisis
- Archivos analizados: 7 archivos Java (src/main)
- Método de detección: Análisis semántico de código
- Commit: b16c75a
- Fecha de análisis: 2026-06-11
Generated by Duplicate Code Detector · sonnet46 844K · ◷
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
Asignado a:
@copilotResumen
Los tres métodos endpoint de
SecurityDependencyDemoControllerrepiten el mismo patrón de construcción de unLinkedHashMapde respuesta: creación del mapa, inserción de"mode"y"dependency", adición de datos específicos yreturn. Este bloque duplicado aparece 3 veces con variaciones mínimas.Detalles de la Duplicación
Patrón: Construcción de mapa de respuesta
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–43)src/main/java/com/example/demo/controller/SecurityDependencyDemoController.java(líneas 49–53)Análisis de Impacto
Recomendaciones de Refactoring
Extraer método privado
buildResponseAlternativa: uso de un DTO o record
record DemoResponse(String mode, String dependency, ...)para tipado estático.Checklist de Implementación
buildResponseMetadatos del Análisis
Add this agentic workflows to your repo
To install this agentic workflow, run