tools sonar quality practices linter coverage code checklist best java code-review

sonar - Revisión de código en Java?



sonar code coverage (9)

Vi algunas preguntas similares pero ninguna responde esta pregunta. Para realizar revisiones del código de Java, ¿qué mira a menudo? ¿Recomiendas libros, artículos o herramientas que más te impresionen?


Además de lo que se dijo, realmente puedo recomendar Jupiter , la herramienta de revisión de código de Eclipse. Funciona bien y solucionan cualquier error bastante rápido.


Antes que nada, consiga algo de literatura para las revisiones del código de Fagan: hay muchas cosas en la revisión del código que pueden hacerlas más efectivas pero que no dependen del idioma.

Después de eso, buscaría lo siguiente:

  • Tamaño de clase y método: las clases grandes y los métodos largos tienden a ser más frágiles.
  • ¿Puedes decir cuál es el "secreto" de una clase, es decir, puedes decir cómo encapsula un cambio potencial?
  • En general, busque la agregación sobre las interfaces de implementación y las interfaces sobre la herencia.
  • Especialmente si está haciendo TDD o pruebas unitarias disciplinadas, busque interfaces para la mayoría de las clases principales; esto facilita la creación de objetos simulados y el cambio de implementaciones más adelante.
  • Javadocs cumple con los estándares.
  • Evite declaraciones compuestas complicadas.
  • Nombres de métodos "fluidos", es decir, desea poder leer los métodos como oraciones. "if object is initialized" debería decir if(obj.isInitialized()) ".
  • Los comentarios reflejan lo que hace el código.
  • El código hace lo que se espera.

Aquí hay una lista no tan completa:

  • Cumplimiento de normas y directrices (Esto significa que debe tener estándares de codificación establecidos para su proyecto)
  • Documenatation. Todo buen código debe ser documentado limpiamente.
  • código repetitivo (candidato a refactorización)
  • nombres de variables significativas
  • ámbitos de variables y métodos (privado vs. público)
  • Uso de buenos patrones de diseño (si es posible)
  • Buenos casos de prueba asociados con el código. Preferiblemente casos de prueba automatizados (no es fácil automatizar todos los casos de prueba, aunque es deseable. Si tal es el caso, debe documentar cómo probar la funcionalidad dada)

Además, desde que habló sobre Java, hay muchas herramientas disponibles que le permiten analizar el código y verificar el estilo y la limpieza del código, e incluso los posibles problemas.

Todo esto se puede configurar con un proceso automatizado de compilación / integración continua y buscar problemas incluso antes de pasar por una revisión manual del código. Utilicé PMD y Checkstyle en mi último proyecto y me sorprendió gratamente descubrir cuántos problemas pudimos descubrir y corregir incluso antes de que nos sentáramos para una revisión del código.

Aquí hay un artículo que siempre comparto con mi equipo para revisar el código. Esto solo describe las pautas generales que rodean las revisiones de código. http://www.developer.com/java/other/article.php/3579756

Una cosa a tener en cuenta es que las revisiones de código uno a uno no son muy efectivas. Personalmente, me gusta usar las revisiones de código como un mecanismo de aprendizaje para que otros miembros del equipo entiendan en qué está trabajando cada persona del equipo. Siempre debe ser un ejercicio en equipo. Permite a los miembros más jóvenes cierta exposición a algunas buenas prácticas.


no solo para Java, sino que hay una herramienta basada en web llamada Crucible para revisar (código, pero puede ser aplicable para otras cosas orientadas al código, y no solo para Java).

** divulgación: trabajo para Atlassian. *


He usado tanto Jupiter como Crucible y recomendaría Crucible si su tienda tiene requisitos y condiciones como:

  • Tiene muchas líneas de código diferentes que desea revisar rápidamente
  • Quieres tener un montón de pequeñas críticas para verificar los cambios
  • Haga que los desarrolladores trabajen de forma remota
  • Haga que los desarrolladores usen IDEs diferentes
  • Tu equipo usa Confluence y Jira. Crucible se integra muy bien con las dos herramientas
  • Tienes el presupuesto para gastar dinero en una herramienta de revisión de código

Júpiter es bueno para equipos pequeños y disciplinados que usan Eclipse. La lista de correo responde y la mejor parte es que Júpiter es gratis.


Además de las respuestas anteriores, observamos las siguientes cosas en las revisiones de nuestro código:

  • Cerrando todas las corrientes en bloque finalmente
  • Manejo de excepciones. Preferimos usar el registrador para registrar en lugar de ex.printStackTrace () en nuestra empresa
  • Eliminar los métodos / variables no utilizados
  • Busque la causa potencial de NullPointerException

Puede usar AgileReview . Este es un plugin de eclipse para revisiones de código en diferentes idiomas, también Java.



Creo que necesitas un poco más de información en tu pregunta. Además, agregaría un par de etiquetas más además de Java. En general, cuantos más detalles proporciones, mejores serán las respuestas que recibas :)

Aquí hay algunos enlaces para ayudarlo a responder sus preguntas:

http://en.wikipedia.org/wiki/Fagan_inspection

Aquí hay un par de artículos que pueden proporcionar cierta ayuda: - http://www.developer.com/java/other/article.php/3579756 - http://today.java.net/pub/a/today/2006 /08/17/code-reviews.html - Básicamente, buscaba en Google y preguntaba sobre ayuda

Posibles herramientas: - https://.com/questions/131153/open-source-code-review-tools-mondrian