2011-05-18 18 views
6

En algunos idiomas, existen reglas/mejores prácticas/etc. que promueven la seguridad del software, garantizan el comportamiento de tiempo de ejecución esperado, etc. Dos de los que se me ocurren son MISRA para C/C++ y el perfil de Ravenscar para Ada. Por lo general, hay una sensación cálida y difusa sobre su código si está sellado de acuerdo con estos estándares. ¿Hay algún estándar para Java?¿Hay un Java equivalente a MISRA C?

+0

utilizo IntelliJ CE con casi todas las intenciones encendidos. Comprueba mi código fuente mientras escribo el código (en lugar de esperar para compilar el código), pero muchos también tienen soluciones rápidas, por lo que es más probable que cambie el código y cambie la forma en que escribe el código. Hay más de 650 comprobaciones, pero encuentro que unas 150 son regularmente útiles para mí. En algún momento utilizo las "correcciones" para escribir código para mí;) –

Respuesta

5

No creo que exista algo así como las mejores prácticas de MISRA C/C++ para Java, y creo que también es menos necesario con un lenguaje como Java porque no tiene tantos rincones de comportamiento indefinido o no especificado como C y C++ tienen. Las características como la falta de punteros explícitos en Java y el hecho de que los límites de los índices de matriz siempre son controlados por el tiempo de ejecución hacen que Java sea un lenguaje más seguro que C o C++.

Existe un estándar de codificación común que la mayoría de los desarrolladores de Java parecen seguir: Code Conventions for the Java Programming Language, pero eso es más una guía de estilo que una guía de prácticas recomendadas.

Hay algunas herramientas buenas y conocidas de análisis de código estático para Java: FindBugs y PMD por ejemplo, que va a revisar su código para construcciones posiblemente peligrosos o malas prácticas.

Si desea conocer las posibles dificultades en Java, le recomendamos dos libros: Effective Java y Java Puzzlers.

+0

+1: La mejor respuesta a la pregunta que he visto en un momento :) –

+0

Eché un vistazo a las convenciones de código que mencionas, y creo que eso es lo que soy va a implementar para una convención. De todas formas, sigo eso en mi estilo personal. Conocía FindBugs y PMD, como los he usado antes.No pensé que hubiera un MISRA para Java (o similar), pero pensé que lo haría solo para asegurarme. – gmletzkojr

2

Actualmente, no hay MISRA Java ni planes inmediatos para crear uno.

El tema ha sido discutido un par de veces por el Consejo Técnico de MISRA, pero en ausencia de cualquier demanda (y/o voluntarios para trabajar en él) es poco probable que suceda.

[Publicado a título personal, aunque un miembro de Misra Junta Tech]

0

Hay un libro llamado "código completo". Esto está escrito por un programador que ha trabajado para Microsoft y también tiene conocimiento en el desarrollo de software profesional utilizando 2/3 idiomas diferentes de alto nivel. Uso este libro además de MISRA C++. "Code Complete" es un libro independiente del idioma y útil para dar forma a sus prácticas profesionales de ingeniería de software.

0

Para aquellos que siguen este hilo, existe una iniciativa Open Safety Critical JAVA (oSCJ) que está definiendo un subconjunto del lenguaje JAVA para Aplicaciones de Seguridad Crítica (JSR-302). http://jcp.org/en/jsr/detail?id=302