そもそもなぜそこにあるのですか?
不安定なコードをメインラインにチェックインしましたか?どうして?
不安定なコードは、trunk / main / masterなどのメイントランク名にはチェックインしないでください。これはリスクの高い開発であると見なされ、代わりに、メインにチェックインするのではなく、作業した独自のブランチで隔離する必要があります。
高度なSCM分岐戦略を読むことを強くお勧めします。特に、開発の役割と、リスクの高い開発と見なされるものについての説明に注意してください。
一般に、リスクの高いプロジェクトごとに別々のブランチを使用することを検討してください。高リスクプロジェクトは、大規模、多数の人々、なじみのない主題、高度に技術的な主題、非常に厳しいスケジュール、不確実な納期、不完全または不安定な要件、および地理的に分散したプロジェクトチームによって特徴付けられます。同様に、各リリースで低リスク開発のために単一のブランチを指定することを検討してください。[WING98]を含むいくつかのソースは、この目的のためにメインラインを使用することを推奨しています。この一連の行動に取り組む前に、メインラインについて上記で検討した要因を考慮してください。製品ファミリの複数のメンバーがメインラインを通じて調整している場合でも、低リスク開発はメインラインとは異なるポリシーを持つ場合があります。
不安定な(または未使用の)コードをメインラインにチェックインさせることは、このコードを維持しようとする将来の開発努力を混乱させることを意味します。誰かの「死んだcodE」と言って削除するまで、今から終わりまでのすべてのブランチと担当者のクローンにはこれが含まれます。
「まあ、ブランチで忘れられた」と言う人もいますが、それは真実かもしれませんが、メインラインで死んだ(そして不安定な)コードを忘れると、それが削除されるまで将来のすべての開発を混乱させるため、何倍も悪化します-そしてそれはさらに忘れられています。"/ fooProject / branches / WeisBigIdea"(または同等のもの)の適切な名前のブランチが表示され、将来的には(特にそれが機能する場合)作業が容易になります。
@Deprecated
最初のことは@Deprecated
注釈です。これはjavadocを超えて、コンパイラの警告を吐き出します。javac
次の-deprecation
ように説明されるフラグを提供します。
非推奨のメンバーまたはクラスの各使用またはオーバーライドの説明を表示します。なければ-deprecation
、javac
ショーのソースファイルの要約は、使用またはオーバーライドは、メンバーやクラスを非推奨のこと。-deprecationはの省略形です-Xlint:deprecation
。
前述のように、これは標準のコンパイラ警告を超えています。
多くのIDEでは、廃止されたメソッドと値は取り消し線付きで表示されます。
foo.bar();
そして、次のような出力を生成します:
$ javac -Xlint:all Foo.java Bar.java
Bar.java:2: warning: [deprecation] Foo in unnamed package has been deprecated
interface Bar extends Foo { }
^
ビルド構造によっては、ビルドが壊れる可能性があります。これは、クラスの1つが使用された場合にのみビルドを中断します(単にコンパイルされるだけではありません)。
@CustomAnnotation
これには多くのアプローチがあります。たとえば、Lightweight javac @Warningアノテーションは、そのアノテーション付きの何かが使用されるとコンパイル時に警告を発するアノテーションプロセッサを提供します(カスタムアノテーションプロセッサに関するnetbeansチュートリアル、背後で何が起こっているのかを知ることができます)シーン)。
オラクルは、Javaのメタデータを@Unfinished
最大限に活用する、パート2:カスタムアノテーションで、アノテーションにカスタムアノテーションを使用する例を説明しています。。
AnnotationProcessor、あなたはコンパイル時に任意のコードを実行することができます。何をしたいかを決めるのはあなた次第です。警告、何かが使用されている場合はビルドを中断します。この種のコードを作成する方法については、Web上に多数のチュートリアルがあります。コンパイル時にエラーを生成するか(これは迷惑で、削除されることになります)、または使用する場合は(作成するのがやや複雑になります)。
これはすべて、実際に注釈プロセッサを使用するようにビルドを変更することを意味することに注意してください。