コアコードのクリーンアップ(4章注記)


なるべくコメントを書かない


注記悪いコードを補うことはできません。

// 직원에게 복지 혜택을 받을 자격이 있는지 검사한다.
if ((employee.flags & HOURLY_FLAG) && employee.age > 65))

// ==> 복지 혜택에 연금 혜택 기준이 추가된다면?

// 의미있는 이름을 지으면 해결된다.
if (employee.isEligibleFourFullBenefits())
コードにコメントを追加する一般的な理由は、コードの品質が悪いためです.
自分がもたらした混乱を注釈で説明するのではなく、時間をかけて改善しなければならない.
コードで意図を表現することもできます!

議長は見送られた。


コードの変化に追随できず,注釈は棚上げされた.
コードはコンパイルされて呼び出されますが、コメントはコメントにすぎません.そのため、元の場所に置かれ、最終的には意味のないテキストになります.

よい議長

// kk:mm:ss EEE, MMM dd, yyyy 형식
Pattern timeFormat = 
	Pattern.compile("\\d*:\\d:\\d* \\w*, \\w* \\d* \\d*");
実装に関する情報を提供します.
// 스레드를 많이 생성하여 시스템에 영향을 끼쳐 테스트를 만들도록 함
for (int i = 0; i < 15000; i++) {
	SomeThread someThread = ThreadBuilder.builder().build();
}

// 유저로부터 입력받을 값을 저장할 때 trim으로 공백제거 필요
String userName = userNameInput.trim();
意図と重要性を説明する.
//TODO

//FIXME
  • TODO:次にやるべきこと.今は解決していませんが、後でやるべきことを事前にメモしておくとき.
  • FIXME:問題がありますが、すぐに修正する必要はありません.できるだけ早く修正したほうがいい.
  • IDEでハイライト表示したり、別のウィンドウで表示したりできます.

    コメントがコメントより大きい


    java.lang.annotation
    コメント=コードのメタデータ
  • コードの実行フローを妨害してもよいし、コメントのようにコードに関する情報を提供してもよい.
  • @Depented:コンパイラから警告が表示されます.IDEでの使用時の表示
    @NotThreadSafe:存在しないことを示します.

    JavaDoc


    JavaコードでHTML形式でAPIドキュメントを生成するツール

    // This is a single line comment
    
    /*
     * This is a regular multi-line comment
     */
    
    /**
     * This is a Javadoc
     */

    Class level

    /**
     * Hero is the main entity we'll be using to ...
     *
     * Please see the {@link com.baeldung.javadoc.Person} class for true identity
     * @author Captain America
     */
    public class SuperHero extends Person {
    	// fileds and methods
    }

    Field level

    /**
     * The public name of a hero that is common knowledge
     */
    private String heroName;

    Method level

    /**
     * <p>This is a simple description of the method ...
     * <a href="http://www.supermanisthegreatest.com">Superman!</a>
     * </p>
     * @param incomingDamage the amount of incoming damage
     * @return the amount of health hero has after attack
     * @see <a href="Http://www.link_to_jira/HERO-402">HERO-402</a>
     * @since 1.0
     */
    public int successfullyAttacked(int incomingDamage) {
    	// do something
    	return 0;
    }

    Javadocドキュメント



    リファレンス


    同報告書は、ゼロベースラインクリーニングコード毎月1冊の授業後のまとめである.