forked from jaildesigner-jailgames/jaildoctors_dilemma
netejant capçaleres
This commit is contained in:
@@ -160,8 +160,112 @@ Cuando uses este comando en una clase específica:
|
||||
5. **Identificar** arrays C-style que convertir a std::array
|
||||
6. **Reorganizar** la estructura de la clase (public/private, agrupación)
|
||||
7. **Actualizar** el archivo `.cpp` eliminando inicializaciones redundantes
|
||||
8. **Verificar** que compile correctamente
|
||||
9. **Informar** al usuario de los cambios realizados
|
||||
8. **Compilar** para verificar sintaxis correcta
|
||||
9. **Ejecutar clang-tidy** (análisis, sin --fix) y revisar resultados
|
||||
10. **Ejecutar cppcheck** (nivel -w) y revisar resultados
|
||||
11. **Aplicar fixes apropiados** basados en análisis de linters
|
||||
12. **Recompilar** si se aplicaron fixes
|
||||
13. **Reportar resumen** al usuario: cambios + hallazgos de linters
|
||||
|
||||
## Workflow de Linters (Pasos 9-12)
|
||||
|
||||
### Paso 9: Ejecutar clang-tidy
|
||||
|
||||
```bash
|
||||
tools/linter/run_clang-tidy.sh archivo.cpp archivo.hpp
|
||||
```
|
||||
|
||||
**Analizar resultados:**
|
||||
- Identificar issues críticos (bugprone, cert)
|
||||
- Separar recomendaciones válidas de falsos positivos
|
||||
- Ignorar: magic-numbers en game constants, defaults.hpp errors
|
||||
- Si hay issues críticos, informar al usuario y pausar
|
||||
- Si solo hay recomendaciones, continuar
|
||||
|
||||
### Paso 10: Ejecutar cppcheck
|
||||
|
||||
```bash
|
||||
tools/linter/run_cppcheck.sh -w --path archivo.cpp
|
||||
```
|
||||
|
||||
**Leer archivo de resultados:**
|
||||
- `tools/linter/cppcheck-result-warning-style-performance.txt`
|
||||
- Identificar errores críticos (error, nullPointer, uninitvar)
|
||||
- Separar warnings de style issues
|
||||
- Filtrar falsos positivos (passedByValue para tipos pequeños, unusedFunction en API pública)
|
||||
- Si hay errores críticos, informar al usuario y pausar
|
||||
|
||||
### Paso 11: Aplicar Fixes
|
||||
|
||||
**Si hay issues aplicables:**
|
||||
|
||||
1. **Fixes automáticos de clang-tidy** (solo si son seguros):
|
||||
- modernize-use-auto
|
||||
- readability-redundant-access-specifiers
|
||||
- Performance optimizations claras
|
||||
|
||||
```bash
|
||||
tools/linter/run_clang-tidy.sh --fix archivo.cpp archivo.hpp
|
||||
```
|
||||
|
||||
2. **Fixes manuales necesarios:**
|
||||
- Inicializar variables no inicializadas
|
||||
- Corregir null pointer issues
|
||||
- Resolver memory leaks
|
||||
|
||||
3. **Documentar cambios** para el reporte final
|
||||
|
||||
### Paso 12: Recompilar
|
||||
|
||||
Si se aplicaron fixes en paso 11:
|
||||
|
||||
```bash
|
||||
cmake --build build
|
||||
```
|
||||
|
||||
**Verificar:**
|
||||
- ✅ Compilación exitosa → Continuar a reporte
|
||||
- ❌ Errores → Informar al usuario, sugerir revisión manual
|
||||
|
||||
## Formato de Reporte Final (Paso 13)
|
||||
|
||||
```
|
||||
=== Refactor Completado: ClassName ===
|
||||
|
||||
📝 Cambios estructurales:
|
||||
✅ #pragma once aplicado
|
||||
✅ 3 structs actualizados con valores por defecto
|
||||
✅ 12 variables movidas a inicialización en declaración
|
||||
✅ 2 arrays C-style → std::array
|
||||
✅ Clase reorganizada (public primero, variables al final)
|
||||
✅ Constructor simplificado (elimina 12 inicializaciones redundantes)
|
||||
|
||||
🔍 Análisis de linters:
|
||||
|
||||
clang-tidy:
|
||||
✅ Sin issues críticos
|
||||
🟡 3 recomendaciones aplicadas automáticamente:
|
||||
- Modernize: use auto (2 lugares)
|
||||
- Readability: redundant specifier (1 lugar)
|
||||
⚪ 2 opcionales ignorados:
|
||||
- magic-numbers en game constants
|
||||
|
||||
cppcheck:
|
||||
✅ Sin errores
|
||||
🟡 2 style issues encontrados:
|
||||
- Unused variable 'temp' en línea 45 → Eliminada
|
||||
- Redundant assignment en línea 102 → Corregida
|
||||
|
||||
📊 Resultado:
|
||||
✅ Compilación exitosa
|
||||
✅ Todos los linters pasan sin issues críticos
|
||||
✅ Código refactorizado y verificado
|
||||
|
||||
💡 Próximos pasos:
|
||||
- Revisar cambios manualmente
|
||||
- Ejecutar tests si existen
|
||||
- Commitear con mensaje descriptivo
|
||||
```
|
||||
|
||||
## Notas Importantes
|
||||
|
||||
@@ -169,3 +273,7 @@ Cuando uses este comando en una clase específica:
|
||||
- **Mantener compatibilidad**: std::array usa misma sintaxis [] para acceso
|
||||
- **Formato consistente**: Respetar estilo del proyecto (comentarios, espaciado)
|
||||
- **Validar compilación**: Siempre verificar que compile después de cambios
|
||||
- **Linters integrados**: Análisis automático post-refactor para garantizar calidad
|
||||
- **Fixes inteligentes**: Solo aplicar --fix de clang-tidy si los cambios son seguros
|
||||
- **Contexto importa**: Game code tiene patrones legítimos (magic numbers, etc.)
|
||||
- **Falsos positivos**: Identificar y documentar, no corregir ciegamente
|
||||
|
||||
Reference in New Issue
Block a user