8
votes

Y a-t-il un java équivalent à MISRA C?

Dans certaines langues, il existe des règles / meilleures pratiques / etc. Cela favorise la sécurité des logiciels, assurer le comportement attendu du temps d'exécution, etc. Deux qui viennent à l'esprit sont MISRA pour C / C ++ et le profil Ravenscar pour ADA. Il y a généralement un sentiment flou chaud de votre code s'il est estampillé comme suit ces normes. Y a-t-il un tel standard pour Java?


1 commentaires

J'utilise Intellij CE avec presque toutes les intentions allumées. Il vérifie mon code source tel que je saisis le code (plutôt que d'attendre de compiler le code), mais beaucoup ont des corrections rapides également, vous risquez donc de modifier le code et de changer votre code d'écriture. Il y a plus de 650 chèques, mais je trouve environ 150 sont régulièrement utiles pour moi. Parfois, j'utilise les "corrections" pour écrire du code pour moi;)


5 Réponses :


9
votes

Je ne pense pas qu'il y ait quelque chose comme les meilleures pratiques de Misra C / C ++ pour Java, et je pense que c'est aussi moins nécessaire avec une langue comme Java, car elle n'a pas autant de coins de comportement indéfini ou non spécifié comme C et C ++ ont. Des caractéristiques telles que l'absence de pointeurs explicites en Java et le fait que les limites des indices de tableau sont toujours vérifiées par le temps d'exécution, faites Java une langue plus sûre que C ou C ++.

Il existe une norme de codage commune que la plupart des développeurs Java semblent suivre: Conventions de code pour le langage de programmation Java , mais c'est plus guide de style que le guide des meilleures pratiques.

Il existe quelques outils d'analyse de code statique bien connus pour Java: Findbugs et PMD par exemple, qui vérifiera votre code pour des constructions éventuellement dangereuses ou des mauvaises pratiques.

Si vous voulez en savoir plus sur les pièges potentiels en Java, deux livres sont fortement recommandés: Java efficace et Puzzlers Java .

Des ressources supplémentaires supplémentaires sont des ressources similaires:


1 commentaires

J'ai examiné les conventions de code que vous avez mentionnées et je pense que c'est ce que je vais mettre en œuvre pour une convention. Je suis à peu près suit que dans mon style personnel de toute façon. J'étais au courant de Findbugs et de PMD, comme je les ai déjà utilisées. Je ne pensais pas qu'il y avait une mala pour Java (ou similaire), mais je pensais que je demanderais simplement à m'assurer.



3
votes

Actuellement, il n'y a pas de MISRA Java - ni aucun projet immédiat de la créer un.

Le sujet a été brièvement discuté plusieurs fois par le conseil technique MISRA, mais en l'absence de toute demande (et / ou de bénévoles pour y travailler), il est peu probable que cela se produise.

mise à jour: six ans sur ...

Cette question a été posée à plusieurs reprises, lors de conférences que j'ai été un orateur, généralement avec un large soutien de l'auditoire. Je réponds toujours en demandant à l'auditoire qui va faire du bénévolat à faire partie du comité ... qui nous détruise la salle: (

TL; DR: Si suffisamment de volontaires avancent, nous le ferons!

[Publié dans une capacité personnelle, bien qu'un membre du conseil d'administration de Misra Tech]


0 commentaires

0
votes

Il y a un livre appelé "code complet". Ceci est écrit par un programmeur qui a travaillé pour Microsoft et possède également des connaissances dans le développement de logiciels professionnels utilisant 2/3 différentes langues de haut niveau. J'utilise ce livre à part Misra C ++. "Code complet" est un livre indépendant de langue et utile pour façonner vos pratiques de génie logiciel professionnel.


0 commentaires

1
votes

Pour ceux qui suivent ce fil, il existe une initiative d'initiative Safe Safe Critical, qui définit un sous-ensemble de la langue Java pour les applications critiques de sécurité (JSR-302). http://jcp.org/fr/jsr/detail?id=302


0 commentaires

2
votes

SEI CERT:

Les directives de codage Java incluent les pratiques recommandées pour la programmation sécurisée dans l'environnement de la plate-forme Java Standard Edition 7. C'est une œuvre en cours et nous recherchons activement vos commentaires et votre implication dans la réussite de cet effort. Nous remercions et reconnaissons tous les contributeurs.

https://www.securecoding.cert.org/ Confluence / Affichage / JG / Java + Codage + Lignes directrices


0 commentaires