Koodin kirjoittaminen Javalla ja Javadoc:

Ensimmäiseksi on hyvä muistuttaa mieliin ettei hyväkään koodin muotoilu
paikkaa huonosti nimetteyjä ja kommentoituja muuttujia. Myös luokkien ja
metodien nimeämiseen on syytä käyttää hetki aikaa.
Sovittiin, että käytetään englannin kieltä. Silloin myös kommentit on
kirjoitettava englanniksi.

Sitten varsinaiseen asiaan esimerkin
http://java.sun.com/docs/codeconv/html/CodeConventions.doc10.html#186
avulla:

Alkuun siis yleiset tiedot seuraavasti (huomatkaa kaksi riviä tyhjää
tämän jälkeen, muuten AINA yksi):

/*
 * @(#)Luokan nimi Päiväys versio
 *
 * Copyright-tiedot
 *
 */
 

package java.blah;

import java.blah.blahdy.BlahBlah;

/**
 * Varsinaninen luokan kuvaus.
 *
 * @version     1.82 18 Mar 1999
 * @author      Firstname Lastname
 */
public class Blah extends SomeClass {
    /* A class implementation comment can go here. */

    /** classVar1 documentation comment */
    public static int classVar1;

    /**
     * classVar2 documentation comment that happens to be
     * more than one line long
     */
    private static Object classVar2;

    /** instanceVar1 documentation comment */
    public Object instanceVar1;
    /** instanceVar2 documentation comment */
    protected int instanceVar2;

    /** instanceVar3 documentation comment */
    private Object[] instanceVar3;

    /**
     * ...constructor Blah documentation comment...
     */
    public Blah() {
        // ...implementation goes here...
    }

    /**
     * ...method doSomething documentation comment...
     */
    public void doSomething() {
        // ...implementation goes here...
    }

    /**
     * ...method doSomethingElse documentation comment...
     * @param someParam description
     */
    public void doSomethingElse(Object someParam) {
        // ...implementation goes here...
    }
}

MUITA TÄRKEITÄ ASIOITA:

-Niin metodeissa kuin luokkamuuttujissa on syytä pitää esittelyjärjestys
kiinteänä eli ensin public, sitten protected ja lopuksi private.
-Yksi declaration/statement per rivi (rohkaisee kommentoimaan)
-Rivien pittudet <=80 jos ei onnistu katkaistava pilkun, +-merkin tms.
kohdalta.
-Neljä välilöyntiä on sisennyksen oikea suuruus.
-Yksi rivi tyhjää erillisten loogisten osiotten välillä
-Välilyönti eroittamaan muuttujat PAITSI sulun alussa ja lopussa sekä
ennen puolipistettä.
   OIKEIN:   a += c + d;
                 a = (a + b) / (c * d);
                 a++; // poikkeus! (bittihommat myös yhteen)
-Rakenteisten lauseiden oikeat muodot esimerkkien avulla. Nyrkkisääntö on
että kaikki
rakenteiset lauseet on kirjoitettava kaarisulkujen sisään. (Vaikka
ei olisi pakko.)
  OIKEIN:
        if (condition) {
            statements;
        }

        if (condition) {
            statements;
        } else {
            statements;
        }

        for (initialization; condition; update) {
            statements;
        }

        while (condition) {
            statements;
        }

        do {
            statements;
        } while (condition);

        switch (condition) {
            statements;
            break;

        case XYZ:
            statements;
            break;

        default:
            statements;
            break;                      // aina break!
        }

        try {
            statements;
        } catch (ExceptionClass e) {
            statements;
        }

-Nimeäminen: pakkaukset pienellä xxx.yyy.zzz, luokat isolla
alkukirjaimella,
metodit ja muuttujat pienellä alkukirjaimella mutta jos koostuvat usesta
sanasta
loput isoilla esim. run() tai runFast(). Vakiot ISOLLA, usesta sanasta
koostuvat
vakiot erottimena alaviiva eli esim. CONST ja IS_CONSTANT.

Siinä se ja lopuksi muistutus javadocista eli ennen jokaista metodia on
seuraavat asiat kerrottava ko. järjestyksessä (kaikkia ei toki aina
tarvita)
/** Lyhyt selostus metodista
 * @param joku kuvaus parametreistä
 * @return joku kuvaus palauttavasta arvosta
 * @exception joku kuvaus poikkeuksesta
*/

Esimerkistä ohjeen alkupuolelta löytyy sitten loput kuvaukset mitä
javadocciin tarvitaan.

No kun nyt tuli naputeltua tämä ohje niin palaan siihen PrettyPrinteriin
myöhemmin.
Se on siis kuitenkin ihan kätevä ohjelma jolla pitäsi juuri edellä kuvatun
tyyppistä koodia syntyä.

Linkkejä:
Code Convention:
http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html