Ward

Ward vs SonarQube: ¿cuál es la diferencia?

Actualizado

Ward y SonarQube resuelven problemas distintos, y Ward puede ejecutar SonarQube como uno de sus gates. SonarQube informa de problemas de calidad y seguridad en un servidor; Ward hace que tu agente de código corrija las reglas en cada edición, commit, push y ejecución de CI.

¿Qué hace bien SonarQube?

Según la propia documentación de SonarQube: analiza código fuente en muchos lenguajes en busca de bugs, code smells, duplicación y problemas de seguridad. Los sigue a lo largo del tiempo y aplica quality gates, que son condiciones de aprobado o suspenso sobre un proyecto o una pull request. Funciona como servidor, autoalojado o como SonarQube Cloud, y tiene integraciones con IDE y CI. Si quieres un panel de la salud del código de toda una organización, SonarQube está hecho para eso.

¿Qué hace Ward de forma distinta?

Ward es una herramienta de línea de comandos que vive en tu repositorio. Sus reglas están en ward.toml y se ejecutan en cuatro capas: tras cada edición del agente, antes de un commit, antes de un push y en CI. Las capas internas son rápidas, así que Ward entrega el fallo exacto al agente segundos después de la edición y el agente lo corrige. Ward también tiene reglas propias de lint, formato y arquitectura, y ejecuta tests, cobertura y escáneres de seguridad. El análisis de SonarQube no forma parte del bucle de edición.

¿Cuándo es mejor SonarQube?

¿Puedo usar Ward y SonarQube juntos?

Sí. Ward tiene un gate sonar que ejecuta SonarQube. Es un gate que depende del entorno, así que ward init lo coloca solo en la capa ci. Las capas rápidas siguen siendo ágiles para el agente, y el análisis completo se ejecuta donde hay un servidor disponible.

ward init
ward check --profile ci

¿Qué hago ahora?

¿Listo para probarlo? Instala Ward y ejecuta ward init en tu proyecto.