Mejora tu código Java con PMD

PMD es una herramienta que comprueba que nuestra aplicación cumpla una serie de reglas que nos ayudan a obtener un código más elegante, sencillo y mantenible. Estas reglas se agrupan por conjuntos y pueden ser reglas de complejidad, como que la complejidad ciclomática no sea demasiado alta; de diseño, como no usar interfaces como meros contenedores de constantes; de optimización, como procurar usar ArrayList en lugar de Vector; etc.

PMD se puede utilizar desde linea de comandos, o puede integrarse con multitud de IDEs y herramientas, como Eclipse, NetBeans, Maven o JEdit. Y aunque algunos de los casos que comprueba PMD ya se tengan en cuenta en Eclipse, sigue siendo una utilidad muy interesante para añadir a nuestra caja de herramientas.

Para instalar el plugin de PMD para Eclipse tenemos que añadir la URL desde la que actualizar el software, http://pmd.sourceforge.net/eclipse, en el diálogo Help -> Software updates -> Available Software -> Add Site, marcar el componente correspondiente dependiendo de nuestra versión de Eclipse y seleccionar Install.

Una vez terminado el proceso podremos gestionar las reglas de PMD desde Window -> Preferences -> PMD -> Rules Configuration. En la misma sección también podemos añadir nuevas reglas utilizando consultas XPath.

Al instalar PMD tendremos acceso a una nueva perspectiva a la que podemos acceder desde Window -> Open Perspective -> Other -> PMD. Para empezar a utilizar PMD haremos clic con el botón derecho sobre el proyecto, el paquete o la clase que queramos comprobar y seleccionaremos PMD -> Check code with PMD.

En la vista Violations Overview podremos ver un resumen de las reglas que incumple nuestro código, con el nombre de la regla, el número de violaciones por paquete, clase y método y el número de violaciones cada 1000 líneas de código.

En Violations Outline podremos ver una pequeña descripción de la regla que rompe nuestro código, asi como la línea de código en el que se encontró el error. Si hacemos clic sobre una de las entradas de la lista se abrirá la clase correspondiente en la línea a corregir. Si necesitamos más información sobre el error podemos hacer clic sobre este y seleccionar Show Details, donde podremos consultar una descripción completa de la regla, asi como ejemplos y la expresión XPath utilizada.

Comentarios
  1. Pues parte de lo bueno de programar, es programar como a uno le da la gana, es verdad que el codigo mantenible es bueno y toda esa vaina, pero lo dirvertido es programar como a uno le gusta.

    Saludos

    Responder

    • fdCarlos

      muy bien Ecarrin: lo importantes es programar

      y para los que no les gusta arreglar el codigo de otros ps para eso les pagan o pero no se preocupen ya que cada vez se estan escribiendo boots que arregle el codigo por ustedes, asi ya se podran ir a sentar en su sillita y a limarse las uñas.

      bueno ya que a las empresas solo les importa tener menos personal jejeje.

      Responder

  2. Leandro

    Ecarrion, no todos programa para divertirse… hay gente que trabaja de esto y te puedo asegurar que no es nada divertido tener que mantener codigo horriblemente escrito. La mayoria de los desarrolladores piensan como vos y la verdad es que son un verdadero desastre.

    Responder

  3. Leandro tiene razón.. anda que no se lo pasa uno bien ni nada despotricando al anterior programador por no haber comentado absolutamente una línea de código.. esta muy bien programar para uno mismo.. pero siempre hay que programar como si quien fuera a leer el código fuera el diablo 😉

    Responder

  4. Asterion

    Y que lo digas deckerix…
    Un compañero nos se fue de la copañia y nos dejó el modulo mas grande del sistema SIN COMENTAR y todo parchado…
    va a ser una pesadilla modificar o arreglar un posible desperfecto :'(

    Responder

  5. […] que otra entrada sobre este IDE y sus plugins, como Configurar Eclipse, Decompilar clases Java, Mejora tu código Java con PMD, Eclipse y estándares de código o Subclipse: plugin de Subversion para […]

    Responder

  6. Mairelin

    Programar no basta con tirar el codigo, y la diversion no tiene nada que ver con la organización, podemos divertirnos tratando de hacer un balance entre la mantenibilidad y el consumo de recursos de nuestras aplicaciones.

    Pues no hay nada peor que trabajar sobre un código vuelto un espagueti, de que te sirve divertirte haciendo un programa que luego no podras mantener, mejorar o evolucionar.

    Responder

  7. kcobuntu

    Se nota que Ecarrion o es muy nuevo, o no trabaja de esto, o simplemente es un completo idiota.
    Saludos

    Responder

  8. […] que otra entrada sobre este IDE y sus plugins, como Configurar Eclipse, Decompilar clases Java, Mejora tu código Java con PMD, Eclipse y estándares de código o Subclipse: plugin de Subversion para […]

    Responder

  9. Dani

    Muy bien Ecarrion,

    Me gustaría oirte repetir eso cuando el jefe te haga quedar a hacer horas extras cuando tengas que “descifrar” el código ajeno 😉

    Responder

  10. Alvaro vargas

    Amigo tu siempre puedes desarrollar como te de la gana siempre y cuando lo hagas con calidad.. Sino serías otro mas de los mediocres que hacen las cosas a las patadas.

    Mi invitación es que se permitan conocer nuevas herramientas que ayuden que sus cosas sean de calidad, optimo, y porque no: apoyar mejorar sus codigos porque no todos nacimos aprendidos.

    Exitos y que esta herramienta sea de gran utilidad para quienes saben de su importancia en el proceso de ing. del software

    Responder

  11. Anónimo

    Ecarrion

    Si vas a programar como te de la gana… no programes y échate la siesta.

    Yo complemento PMD y CheckStyle… aunque a veces realizas las mismas comprobaciones todo lo que sea estandarizar el código cuando desarrollar aplicaciones “brutales” me parece necesario y de buena praxis.

    Un saludo.

    Responder

  12. Yamil

    Sin repetir nada me uno a lo que la gran mayoría de los que opinaron, programar con buenas prácticas no sólo es bueno para el otro que lea tu código también es bueno para mantener tu propio código, seguro que en un Hello world no importa pero cuando tienes aplicaciones que compiladas llegan a varias megas e incluso gb te aseguro te pierdes hasta en tu propio código. Les sugiero también usar pmd con herramientas como hudson.

    Responder

Deja un comentario