¿Qué herramientas utilizáis para controlar la calidad de vuestro código?

En genbeta:dev han lanzado hace un día esta pregunta:

¿Qué herramientas utilizáis para controlar la calidad de vuestro código?

Esta ha sido mi respuesta. Reconozco que me he dejado llevar y al final he hablado un poco de todo. En cualquier caso esta es la respuesta, desordenada y escrita en 5 minutos, pero creo que puede ser útil.

1.-En primer lugar Eclipse bien configurado.

Como por ejemplo nos indica aquí Sanjeev Kumar.

https://sites.google.com/a/javagyan.com/javagyan/useful-tips/usingeclipseeffectively

Esto lo podemos acompañar del algún plugin que nos mire las métricas mientras desarrollamos tipo: CodePro AnalytiX

https://developers.google.com/java-dev-tools/download-codepro

Y terminaría la configuración del eclipse con un conjunto de templates que me faciliten la escritura de cierto tipo de estructuras habituales:

http://eclipse.dzone.com/news/effective-eclipse-custom-templ

2.-Un buen entorno de integración e inspección continua con Jenkins y Sonar.

http://jenkins-ci.org/
http://www.sonarsource.org/

https://jbravomontero.wordpress.com/2012/02/18/ecosistemas-de-desarrollo-de-software-lineas-de-automatizacion/

Y el Sonar enriquecido con los siguientes plugins:

  • Timeline Plugin
  • Useless Code Plugin
  • SIG Maintainability Model Plugin
  • Quality Index Plugin
  • Technical Debt Plugin

http://onlysoftware.wordpress.com/2012/01/01/51-sonar-plugins-you-must-not-miss-2012-version/

Aunque para gestionar la deuda técnica también este estupendo plugin COMERCIAL 😦 que ayuda con la implementación de SQALE)

http://www.sonarsource.com/products/plugins/governance/sqale/

3.- Fomentar de “buen rollo” (no se puede ir diciendo este código es una mierda) entre los miembros del equipo las buenas prácticas.

Recomendando las lecturas de ciertos libros imprescindibles.

Y reuniendonos de vez en cuando para analizar ciertas partes del código en equipo.
Reflejar esta información y las conclusiones en un Wiki.

Fomentar cuando sea necesario:

  • La programación por pares.
  • Y siempre, siempre la revisión por pares. No dar por bueno un código hasta que otra persona no lo ha verificado en su máquina.

4.- Un buen conjunto de test que nos quite el miedo a la refactorización cuando sea necesario.

Técnicas TDD, etc.

5.- Y dejar claro cosas como:

  • Las prisas no justifican un mal código.
  • Poco a poco, la deuda técnica se acumula en las zonas que ya estaban llenos de deuda.
  • La programación puede ser divertida, también lo puede ser la criptografía, sin embargo es recomendable no combinarla.
  • “¡No me importa si funciona en tu máquina! ¡No estamos vendiendo tu máquina!”.
  • Codifica siempre como si la persona que finalmente mantendrá tu código fuera un psicópata violento que sabe dónde vives (Martin Golding).
  • etc

Y muchas cosas más…………….

Evidentemente he sido incapaz en los proyectos que he estado de implementar todas estas técnicas o teorías.. pero creo que el concepto esta claro y se podría resumir en estos puntos:

  • Formación continua entre los miembros del equipo.
  • Fomentar la premisa de buscar la excelencia en el código trabajando en equipo.
  • No esconder la información y fomentar el compartirla.
  • Fomentar un buen entorno de trabajo: Gamification (http://vimeo.com/32435331)
  • Y automatizar la generación e inspección del código.

Un saludo.

Anuncios
¿Qué herramientas utilizáis para controlar la calidad de vuestro código?

Tutorial de integración continua

Estupendo tutorial de Integración Continua escrito por Carlo Zuluaga.

Este es el indice del tutorial:

  • Introducción.
  • Instalación y configuración.
    1. Instalación en Windows.
    2. Instalación en Linux.
    3. Instalación de Apache ANT.
    4. Instalación de Apache Maven.
    5. Instalación y Configuración de VisualSVN Server
  • Configurar proyecto de ejemplo
  • Creación de un Proyecto Básico con Hudson
  • Plugins
    1. Pruebas unitarias con JUnit
    2. Cobertura de código con Emma.
  • Sonar
    1. Instalación de MySQL.
    2. Instalación de SONAR.
    3. Integración con Hudson.
    4. Análisis del código fuente.
  • Administración de Hudson.
    1. Preguntas Comunes.
    2. Seguridad.
  • Recomendaciones para una instalación.
  • Referencias.
  • Como podéis ver muy completo y pensado para montarlo desde el principio. Lo podéis encontrar en esta dirección: http://carloszuluaga.wikidot.com/hudson

    Tutorial de integración continua