悪魔がjavadocを思いついた理由

良いプログラムは十分に文書化されるべきだと考えられています。

SUNは、「Javaクラスのドキュメント化の標準」である特別なjavadocフォーマットを考案しました。 私の練習では、一部のコードがコードレビューに合格しなかったのは完全に当​​たり前のことでした。一部のメソッドにはコメントがないためです。

このアプローチは時代遅れであり、今日はコメントが悪である理由を説明します。



人生の例


これは、怠けすぎず、メソッドについてコメントを書いた非常に勤勉なプログラマーによって2010年に書かれた実際のコードです。 満足しましたが、マシンからコーヒーを注いで、ここにあるものを見てみましょう。
public class AddressUtil {
/**
* Format string as address , expected input
* format:"EE ; ;Tallinn;Narva mnt;120B;831;10127"

*
* @param flatAddress
* @return Formatted address

*/
public static String toString(String flatAddress) {......}
}

いいね! 特別なプログラムがHTMLドキュメントを生成できるjavadoc形式のコメントが正しくフォーマットされています。 それから、この方法が(理論的に)何をするかを簡単に理解できます。

悪魔はどこに隠れましたか?


しかし、悪魔が隠れたささいなことはどこにありますか? そして、ここにあります:


魔法


それでは、ウィザードをプレイして、いくつかの色のついたピースをガーランドに変えましょう。 魔法のパスを作りましょう。 Sim-salyabim、Akhalai-mahalai、Lasyaki-masya ...
その結果、何が得られましたか?
public class AddressUtil {
public static String formatAddress (String flatAddress) {......}

@Test public void testFormatAddress() {
assertEquals("Narva mnt 120B-831 10127 Tallinn",
AddressUtil.formatAddress("EE ; ;Tallinn;Narva mnt;120B;831;10127"));
}

}

新しいオプションが古いオプションより優れているのはなぜですか?

一言で言えば


良い名前+テスト=ドキュメント

より具体的には、「実行可能なドキュメント」、つまり、単に読むだけでなく「実行」できるドキュメントであり、それがまだ適切であることを自動的にチェックします。

彼らは、孔子がベッドの上にポスターを掛けたと言います。

コメントを実行可能なドキュメントに変換する

あとがき


私は、キッチンから戻ってきた勇敢なプログラマーが私たちの魔法の動きを見ていないので、フォーカスを理解できないのではないかと心配しています。 タワーは、彼のコメントが「失われた何かを失う」という単なる事実によって取り壊され、彼はそのような破壊的な活動のために私たちを見つけて破壊しようとします。 その間、彼のコーヒーは冷やされました。 それは悪くありません。コーヒーは有害であると言われています。 それで、今日は良いことをしました。



更新
ドキュメントなしでオープンソースのライブラリを使用するのは不便であるという事実についてのコメントには多くのdigりがありました。 この記事はエクスポートされたコードに関するものではありません。 それは、あなたとあなたの同僚が書く「内部」コードに関するものであり、あなたとあなたの同僚だけが使用し、あなたはまだ繰り返し変更する必要はありません。 「エクスポート」コードでは、すべてが異なります。ドキュメントが必ず必要ですが、その状態は個別に監視する必要があります。 変更する必要はなく、読むだけです。 これはまったく異なる話です。


アンドレイ・ソルンツェフ

Source: https://habr.com/ru/post/J97320/


All Articles