> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Calidad del código

> Herramienta de revisión con IA para mejorar la mantenibilidad, la legibilidad y el rendimiento del código

**Corgea Code Quality Scanner** es una herramienta de revisión con IA que identifica problemas de mantenibilidad, legibilidad, rendimiento y corrección en la base de código. A diferencia de [los escáneres de vulnerabilidades](/es/blast), centrados en las amenazas de seguridad, Code Quality Scanner revisa el código como lo haría un ingeniero experimentado para ayudar a mantener estándares altos y evitar deuda técnica.

## Qué hace

Code Quality Scanner analiza los archivos fuente para identificar problemas concretos que afectan a la calidad de la base de código a largo plazo. Equivale a contar con un ingeniero senior que revise cada archivo y detecte problemas que podrían pasar desapercibidos durante una revisión manual, centrándose siempre en mejoras prácticas.

### Capacidades clave

* **Revisión automatizada de código**: Realiza un análisis exhaustivo para detectar problemas habituales de calidad que afecten a la mantenibilidad
* **Análisis consciente del lenguaje**: Comprende el contexto y las convenciones de diferentes lenguajes de programación
* **Detección de frameworks**: Reconoce frameworks habituales y aplica las prácticas recomendadas para cada uno
* **Clasificación por gravedad**: Prioriza los hallazgos según su impacto (alto, medio o bajo)
* **Asignación de CWE**: Asocia los hallazgos con la enumeración Common Weakness Enumeration (CWE) para normalizar su clasificación

***

## Lo que puede encontrar

Code Quality Scanner identifica una amplia variedad de problemas de calidad. Todos los hallazgos se asocian a <Tooltip tip="Common Weakness Enumeration: una lista normalizada de tipos de debilidades de software y hardware">categorías CWE</Tooltip> para mantener una clasificación coherente.

<AccordionGroup>
  <Accordion title="Problemas gramaticales y de claridad" icon="spell-check">
    * **Errores tipográficos y ortográficos** en comentarios de código, nombres de variables y cadenas (CWE-1078)
    * **Comentarios inexactos o engañosos** que contradigan el comportamiento real del código o que puedan estar desactualizados (CWE-1116)

    ```javascript example.js theme={null}
    // Bad: Misleading comment
    // Calculate the sum of two numbers
    function multiply(a, b) {
      return a * b;  // Actually multiplying, not adding
    }
    ```
  </Accordion>

  <Accordion title="Limpieza del código" icon="broom">
    * **Bloques de código vacíos** que no tienen propósito (CWE-1071)
    * **Variables no utilizadas, importaciones y código muerto** que saturan la base de código (CWE-563, CWE-1041)
    * **Bloques de excepciones vacíos** que silencian los errores (CWE-1069, CWE-390)
    * **Código inalcanzable** que nunca puede ejecutarse (CWE-561)

    ```python example.py theme={null}
    # Bad: Empty exception block silently swallows errors
    try:
        risky_operation()
    except Exception:
        pass  # Error is hidden!
    ```
  </Accordion>

  <Accordion title="Duplicación de código y reutilización" icon="copy">
    * **Código duplicado** que debe refactorizarse en funciones compartidas (CWE-1041)
    * **Claves duplicadas o literales** en objetos y números mágicos que deberían ser constantes (CWE-1078)
    * **Código que incumple el principio <Tooltip tip="Don't Repeat Yourself: principio orientado a reducir la repetición en el código">DRY</Tooltip>**: lógica repetida que aumenta la carga de mantenimiento
  </Accordion>

  <Accordion title="Problemas de rendimiento" icon="gauge-high">
    * **Concatenación de cadenas en bucles** que degrada el rendimiento (CWE-1046)
    * **Operaciones ineficientes** y consumo innecesario de recursos (CWE-1050)
    * **Cuellos de botella de rendimiento** en rutas de código que se ejecutan frecuentemente

    ```java Example.java theme={null}
    // Bad: String concatenation in loop
    String result = "";
    for (int i = 0; i < 1000; i++) {
        result += data[i];  // Creates new string object each iteration
    }
    ```
  </Accordion>

  <Accordion title="Diseño y arquitectura" icon="diagram-project">
    * **Funciones con demasiados parámetros** (>5 parámetros) que indican un diseño pobre (CWE-1064)
    * **Firmas de funciones excesivamente complejas** que son difíciles de usar correctamente
    * **Dependencias circulares** entre módulos (CWE-1047)
    * **Violaciones de <Tooltip tip="Responsabilidad única, Abierto/Cerrado, Sustitución de Liskov, Segregación de Interfaces, Inversión de Dependencias">Principios SOLID</Tooltip>**
  </Accordion>

  <Accordion title="Complejidad y legibilidad del código" icon="code">
    * **Expresiones complejas** que deben desglosarse para mejorar la claridad (CWE-1120)
    * **Lógica profundamente anidada** con ramificaciones excesivas que son difíciles de entender
    * **Funciones auxiliares excesivamente genéricas** que oscurecen la intención
    * **Violaciones de <Tooltip tip="Keep It Simple, Stupid: un principio de diseño que favorece la simplicidad">Principio KISS</Tooltip>**
  </Accordion>

  <Accordion title="Denominación y convenciones" icon="tag">
    * **Convenciones de nombres inconsistentes** que dificultan el seguimiento del código (CWE-1099)
    * **Nombres genéricos de variables no descriptivas** como 'obj', 'x', 'data'
    * **Estilos de nombres mixtos** (por ejemplo, camelCase y snake\_case en la misma base de código)
  </Accordion>

  <Accordion title="Lógica y corrección" icon="bug">
    * **Errores lógicos** que causan comportamientos incorrectos (CWE-670)
    * **Procesamiento incorrecto de datos** que produce resultados incorrectos
    * **Código que no funcionará como se espera** debido a errores de implementación
  </Accordion>

  <Accordion title="Trabajo incompleto" icon="list-check">
    * **Comentarios TODO** y código provisional (CWE-1071)
    * **Características a medio terminar** que pueden causar problemas
    * **Implementaciones incompletas** que requieren atención
  </Accordion>
</AccordionGroup>

***

## Cómo funciona

### 1. Análisis de archivos

El escáner procesa cada archivo de tu base de código individualmente, analizando el código fuente completo con el contexto completo de la estructura, el lenguaje y los frameworks detectados del archivo.

### 2. Análisis con IA

Mediante modelos de lenguaje avanzados entrenados específicamente para revisar código, el escáner lo examina según principios y prácticas recomendadas de ingeniería de software. La IA comprende:

* Expresiones idiomáticas y convenciones específicas de cada lenguaje
* Patrones y prácticas recomendadas de cada framework
* Métricas de complejidad y mantenibilidad del código
* Principios de diseño de software estándar en la industria

### 3. Identificación de hallazgos

Cuando se detecta un posible problema, el escáner:

* Localiza exactamente las líneas de código implicadas
* Clasifica el tipo de hallazgo mediante las categorías CWE
* Asigna un nivel de gravedad adecuado
* Genera una explicación clara del problema y su impacto

### 4. Detección de alta confianza

* El escáner solo notifica problemas con una confianza mínima del 90 %. Este umbral elevado garantiza que los hallazgos sean precisos y permitan actuar, en lugar de ser meras conjeturas.

* <Tip>El umbral de confianza del 90 % reduce considerablemente el ruido y los falsos positivos, por lo que los hallazgos notificados merecen atención.</Tip>

***

## Supresión de falsos positivos

Code Quality Scanner incluye mecanismos avanzados de [supresión de falsos positivos](/es/false_positive) para que solo recibas hallazgos relevantes sobre los que puedas actuar:

### Filtros integrados

<Check>**Exclusión de vulnerabilidades**: El escáner excluye explícitamente vulnerabilidades como la inyección SQL, XSS o los fallos de autenticación, ya que los [escáneres de seguridad específicos](/es/blast) de Corgea se encargan de ellas. De este modo se evitan solapamientos y confusiones entre la calidad del código y la seguridad.</Check>

<Check>**Filtrado de preferencias de estilo**: No se notifican preferencias menores, como la colocación de llaves, la sangría o los espacios en blanco. El escáner se centra en problemas sustanciales de calidad, no en preferencias de formato.</Check>

### Comprensión contextual

El escáner entiende el contexto del código para evitar falsos positivos:

* Reconoce cuándo los bloques "vacíos" son intencionados (por ejemplo, implementaciones provisionales)
* Entiende patrones específicos de cada framework que de otro modo podrían parecer problemáticos
* Tiene en cuenta las expresiones idiomáticas aceptadas en cada lenguaje de programación

***

## Remediación automatizada

Cuando se identifican problemas de calidad, Corgea ofrece [funciones de remediación automatizada](/es/fixes) para corregirlos con rapidez y coherencia:

### Qué se remedia

El sistema automatizado de remediación puede solucionar muchos problemas comunes de calidad del código, entre ellos:

<Tabs>
  <Tab title="Correcciones rápidas">
    * Eliminación de variables no utilizadas e importaciones
    * Conversión de números mágicos en constantes con nombre
    * Corrección de errores tipográficos en nombres de variables y comentarios
  </Tab>

  <Tab title="Mejoras estructurales">
    * Consolidar código duplicado en funciones compartidas
    * Simplificar expresiones excesivamente complejas
    * Descomposición de expresiones complejas
  </Tab>

  <Tab title="Mejores prácticas">
    * Mejorar los nombres de variables y funciones
    * Añadir un manejo adecuado de errores
    * Implementación de patrones específicos de cada framework
  </Tab>
</Tabs>

### Cómo funciona la remediación

1. **Contexto del problema**: El sistema analiza todo el contexto alrededor de cada problema, comprendiendo no solo el código problemático sino también su papel en la base de código más amplia
2. **Correcciones seguras**: Las correcciones automáticas están diseñadas para ser seguras y mantener la funcionalidad existente
3. **Preservación del estilo de código**: Las correcciones respetan el estilo y las convenciones de código existentes
4. **Revisar antes de aplicar**: Mantienes el control total sobre qué correcciones aplicar

***

## Separado del escaneo de vulnerabilidades

<Warning>
  Code Quality Scanner funciona de forma totalmente independiente de las funciones de [escaneo de vulnerabilidades](/es/blast) de Corgea.
</Warning>

### Diferencias clave

| Escáner de calidad de código                             | [Escáner de vulnerabilidades](/es/blast)                     |
| -------------------------------------------------------- | ------------------------------------------------------------ |
| Se centra en la mantenibilidad, legibilidad y corrección | Se centra en amenazas de seguridad y debilidades explotables |
| Identifica problemas de deuda técnica y de diseño        | Identifica inyección SQL, XSS, fallos de autenticación, etc. |
| Ayuda a mejorar la salud del código a largo plazo        | Ayuda a proteger contra brechas de seguridad                 |
| Utiliza CWE relacionados con la calidad del código       | Utiliza CWE relacionados con la seguridad                    |

### Por qué importan ambas cosas

* **La seguridad** mantiene tu aplicación segura frente a los atacantes
* **Calidad del código** mantiene tu base de código mantenible, eficiente y fiable

Ambos son esenciales para un proyecto de software saludable, pero abordan preocupaciones diferentes. Una base de código puede ser segura pero no mantenible, o bien estructurada pero vulnerable. Corgea ofrece ambos para darte una visión completa de la salud de tu código.

***

## Explicación de los niveles de gravedad

<Tabs>
  <Tab title="Gravedad alta" icon="circle-exclamation">
    Problemas que **pueden provocar bloqueos, problemas graves de rendimiento o errores críticos**:

    * Bloques de captura vacíos que ocultan errores
    * Bucles infinitos
    * Lógica que siempre falla
    * Cuellos de botella críticos en el rendimiento

    <Warning>**Acción**: Corregir de inmediato</Warning>
  </Tab>

  <Tab title="Gravedad media" icon="triangle-exclamation">
    Problemas que **afectan a la mantenibilidad o al rendimiento**:

    * Duplicación de código
    * Código no utilizado que satura la base de código
    * Concatenación de cadenas en bucles
    * Lógica confusa que ralentiza el desarrollo

    <Info>**Acción**: Aborda en tu próximo ciclo de refactorización</Info>
  </Tab>

  <Tab title="Gravedad baja" icon="circle-info">
    **Problemas menores que reducen la calidad del código**:

    * Nombres inconsistentes
    * Complejidad innecesaria
    * Mejoras menores de legibilidad

    <Tip>**Acción**: Corregir cuando resulte conveniente o durante trabajos relacionados</Tip>
  </Tab>
</Tabs>

***

## Primeros pasos

El Code Quality Scanner se integra perfectamente en tu flujo de trabajo de desarrollo:

<Steps>
  <Step title="Conecta tu repositorio">
    Vincula tu repositorio de código a Corgea usando [GitHub](/es/github), [GitLab](/es/gitlab), [Azure DevOps](/es/azure_devops), o [Bitbucket](/es/bitbucket)
  </Step>

  <Step title="Escaneo automático">
    El escáner analiza tus archivos automáticamente
  </Step>

  <Step title="Resultados de la revisión">
    Explora los hallazgos con explicaciones claras y niveles de gravedad en el [panel del proyecto](/es/project)
  </Step>

  <Step title="Aplicar correcciones">
    Utiliza la [remediación automatizada](/es/fixes) o corrige los problemas manualmente
  </Step>

  <Step title="Seguimiento del progreso">
    Supervisa las mejoras en la calidad del código a lo largo del tiempo
  </Step>
</Steps>

***

## Documentación relacionada

<CardGroup cols={2}>
  <Card title="SAST, nativo de AI" icon="shield-halved" href="/es/blast">
    Infórmate sobre las capacidades de escaneo de vulnerabilidades de seguridad de Corgea
  </Card>

  <Card title="Correcciones automáticas" icon="wand-magic-sparkles" href="/es/fixes">
    Explora cómo funciona la remediación automatizada en todos los tipos de escaneo
  </Card>

  <Card title="Gestión de falsos positivos" icon="filter" href="/es/false_positive">
    Gestionar y suprimir eficazmente los falsos positivos
  </Card>

  <Card title="Gestión de hallazgos" icon="list-check" href="/es/project">
    Haz un seguimiento de todos los hallazgos de tus proyectos y gestiónalos
  </Card>
</CardGroup>

***

## Apoyo

Para recibir ayuda, contáctanos en [support@corgea.com](mailto:support@corgea.com)
