一部の言語では、ルール/ベスト プラクティスなどがあります。ソフトウェアの安全性を促進し、期待される実行時の動作を確保するなどです。頭に浮かぶのは、C/C++ の MISRA と Ada の Ravenscar プロファイルの 2 つです。コードがこれらの基準に従っていると刻印されている場合、コードには通常、あたたかいあいまいな感覚があります。Javaにそのような標準はありますか?
5 に答える
Java には MISRA C/C++ のベスト プラクティスのようなものはないと思います。Java のような言語では、C や C++ のように未定義または未指定の動作のコーナーがそれほど多くないため、Java のような言語ではあまり必要ではないと思います。持ってる。Java には明示的なポインターがないことや、配列インデックスの境界がランタイムによって常にチェックされるという事実などの機能により、Java は C や C++ よりも安全な言語になります。
ほとんどの Java 開発者が従うと思われる共通のコーディング標準があります: Code Conventions for the Java Programming Languageですが、これはベスト プラクティス ガイドというよりスタイル ガイドです。
Java 用のよく知られた静的コード分析ツールがいくつかあります。たとえば、FindBugsやPMDは、コードに危険な構造や悪い慣行がないかどうかをチェックします。
Java の潜在的な落とし穴について学びたい場合は、Effective JavaとJava Puzzlersの 2 冊の本を強くお勧めします。
追加の同様のリソースには、次のものがあります。
現在、MISRA Java はありません。また、MISRA Java を作成する当面の計画もありません。
このトピックは、MISRA テクニカル ボードによって数回簡単に議論されましたが、要求 (および/またはそれに取り組むボランティア) がなければ、実現する可能性は低いです。
更新: 6 年後...
この質問は、私が講演した会議で何度か聞かれましたが、通常は聴衆から幅広い支持を得ています。私はいつも、聴衆に委員会の一員になることを志願する人を尋ねることで答えます...部屋を沈黙させます:(
TL;DR: 十分な数のボランティアが前に出てくれれば、やります!
[MISRA Tech Board のメンバーではありますが、個人的な立場で投稿しています]
SEI 証明書:
Java コーディング ガイドラインには、Java Standard Edition 7 プラットフォーム環境で安全にプログラミングするための推奨プラクティスが含まれています。これは進行中の作業であり、この取り組みを成功させるために、フィードバックと参加を積極的に求めています。すべての貢献者に感謝し、感謝します。
https://www.securecoding.cert.org/confluence/display/jg/Java+Coding+Guidelines
このスレッドをフォローしている方のために、Open Safety Critical JAVA (oSCJ) イニシアチブが進行中であり、Safety-Critical Applications (JSR-302) 用の Java 言語のサブセットを定義しています。 http://jcp.org/en/jsr/detail?id=302
「CodeComplete」という本があります。これは、Microsoftで働いた経験があり、2/3の異なる高級言語を使用した専門的なソフトウェア開発の知識も持っているプログラマーによって書かれています。私はMISRAC++のほかにこの本を使用しています。「CodeComplete」は言語に依存しない本であり、専門的なソフトウェアエンジニアリングの実践を形作るのに役立ちます。