Que es SonarQube y como nos ayuda para medir la calidad de nuestro código
Como desarrollador estoy en una búsqueda constante de mejorar mi código, buscar buenas prácticas, probar patrones de diseño y de arquitectura que permitan que mi código sea más legible y óptimo. SonarQube es una excelente herramienta que si bien nació para Java, después se extendió a otro lenguajes como Javascript 🤘y nos ayuda con mediciones de calidad a nuestro código
Como es un tema extenso, separe este tema en varios artículo que son los siguientes:
1).- Que es SonarQube
2).-Dockerizando SonarQube
3).-Configurando un proyecto ReacJs — Pronto Disponibles
4).-Configurando un proyecto NodeJs — Pronto Disponibles
5).-Configurando un proyecto Java en SpringBoot — Pronto Disponibles
— — Que es SonarQube — —
Es una plataforma para evaluar la calidad del código fuente, realizando un análisis estático sobre dicho código, con el objetivo de advertirnos sobre diferentes puntos a mejorar y obtener métricas que nos ayudan a mejorar nuestro código.
El análisis estático corresponde al proceso de evaluar un software sin ejecutarlo, debo mencionar que si pretendemos evaluar la cobertura de los test estos se deben ejecutar.
En los aspectos que SonarQube nos ayuda son los siguientes:
Código duplicado
Nos entrega métricas relacionadas al código duplicado en nuestro código. Entendemos por código duplicado a una secuencia de código fuente que ocurre más de una vez
La duplicación de código es generalmente considerada una señal de estilo de programación pobre o perezosa , ya que un buen desarrollo está más asociado a la reutilización del mismo. Su principal desventaja es que la mantención se convierte en una tarea mucho más costosa
Más información: https://es.wikipedia.org/wiki/C%C3%B3digo_duplicado
Código muerto
Es el código que se encuentra en nuestra aplicación, pero nunca es utilizado. Normalmente aparece después de hacer refactor en nuestro código.
Más información: https://es.wikipedia.org/wiki/C%C3%B3digo_muerto
Estándares de codificación
Se refiere a convenciones para escribir código fuente, las cuales frecuentemente son dependientes del lenguaje de programación.
Las convenciones más comunes hacen referencia a: nombres de variables, indentaciones, espaciado, etc
Más información: https://es.wikipedia.org/wiki/Estilo_de_programaci%C3%B3n
Bugs
Un bug es un error o un defecto en el software que hace que un programa funcione de forma incorrecta.
Más información: https://es.wikipedia.org/wiki/Error_de_software
Complejidad ciclomática
Es una métrica de calidad software basada en el cálculo del número de caminos independientes que tiene nuestro código.
Cuanto más compleja sea la lógica de un código, más difícil será de entender, mantener y probar.
Más información: https://es.wikipedia.org/wiki/Complejidad_ciclom%C3%A1tica
Comentarios
Los comentarios son añadidos usualmente con el propósito de hacer el código fuente más fácil de entender con vistas a su mantenimiento o reutilización.
Una mala o escasa documentación puede convertir el mantenimiento del código en una tarea muy costosa.
Al igual que ocurre con los tests, un gran porcentaje de comentarios no asegura calidad. Los comentarios deben ser buenos y aclaratorios explicando interfaces públicas, pero no lógica ni diseño.
Tests unitarios y de integración
Son una forma de comprobar el correcto funcionamiento de una unidad de código y de la integración de mismos.
Facilitan los cambios en la aplicación, ya que las pruebas nos aseguran que los nuevos cambios no han introducido errores en partes de código desarrolladas anteriormente y que están cubiertas por estos.
Por otro lado, documentan el código, siendo un libro abierto sobre el funcionamiento del código.
Más información: https://es.wikipedia.org/wiki/Pruebas_de_software
Cobertura de código (Coverage)
La cobertura de código es una medida que nos indica el porcentaje de código validado por los tests. Generalmente con una mayor cobertura aseguramos que no se introducen errores en una mayor parte del código, pero esto dependerá de la funcionalidad real que cubran los tests.
Más información: https://es.wikipedia.org/wiki/Cobertura_de_c%C3%B3digo
Si te pareció interesante y útil, sigue leyendo el resto de los artículos:
1).- Que es SonarQube
2).-Dockerizando SonarQube
3).-Configurando un proyecto ReacJs — Pronto Disponibles
4).-Configurando un proyecto NodeJs — Pronto Disponibles
5).-Configurando un proyecto Java en SpringBoot — Pronto Disponibles