Kelkaj programadaj stilaj reguloj
Ĉiuj programadaj stilaj reguloj ne devas postuli, ke ĉiuj programistoj blinde sekvos ilin ĉar inteligenta programisto ĉiam rajtas malkonsenti. Ĉiam devas esti fortika racia argumento por ĉiu regulo, kun konkretaj ekzemploj. Ajnan regulon oni povas malobei, se la kialo estas klare dokumentita en la taŭga loko.
Tiu dokumento uzas la kutiman konvencion pri terminoj:
devas
kiam estas strikte postulite obei regulon.
devus
kiam estas emfaze rekomendite obei regulon.
Tiu dokumento baziĝas je la programadaj reguloj far Sun (http://java.sun.com/docs/codeconv/html/CodeConvTOC.doc.html). Kiam mankas regulo en tiu dokumento, programisto devus obei la regulojn de Sun.
pakaĵa nomo
klasa k interfaca nomoj
metoda nomo
parametra, atributa k variabla nomoj
konstanta nomo
kopirajta noto
pakaĵa k importadaj deklaroj
klasa difino
atributoj kaj atingometodoj
konstruiloj
metodoj

pakaĵa nomo
Nomoj de pakaĵoj devus esti entute minusklaj kaj prefere unuvortaj. Ĉiuj pakaĵoj devus troviĝi sub la org.esperanto pakaĵo.

    org.esperanto.generil
    org.esperanto.komunar.datumar

ĝenerala enhavo

klasa k interfaca nomoj
Nomoj de klasoj k interfacoj devas eki per majusklo, kun majusklo komence de ĉiu vorto. Krom la vortkomencaj literoj, ĉiuj literoj devas esti minusklaj. La lasta vorto de nomo de klaso aŭ interfaco devus esti substantivo. La nomo de klaso difinanta escepton devus finiĝi per Escepto.

    Servo
    SeancaGenerilo
    LandaKategorio

ĝenerala enhavo

metoda nomo
Nomoj de metodoj devas eki per minukslo, kun majusklo komence de ĉiu vorto. Krom la vortkomencaj literoj, ĉiuj literoj devas esti minusklaj. La unua vorto de nomo de klaso aŭ interfaco devus esti verbo (je la u-formo); la aliaj vortoj devus esti ties komplementoj. Metodoj, kies rezulto estas bulea, devus havi demandan formon.

    donuFamilianNomon
    trovuLauxAgxo
    cxuValidasPasvorto

ĝenerala enhavo

parametra, atributa k variabla nomoj
Nomoj de parametroj, atributoj k variabloj devas eki per minukslo, kun majusklo komence de ĉiu vorto. Krom la vortkomencaj literoj, ĉiuj literoj devas esti minusklaj. Oni devus eviti unuliterajn nomojn krom por labora variablo (ekzemple en iteracioj). Oni ne devas uzi la C++-kutimon pri komencaj aŭ finaj substrekoj por privataj variabloj.

    KomunaraNumerilo seanco;
    LandaDetalaro detaloj;
    int i = 0;

ĝenerala enhavo

konstanta nomo
Nomoj de konstantoj devus esti entute majuskle, kun substrekoj por disigi vortoj.

    final static String STATHAVA = "stathava";
    public final static String IMPLICA_LANDA_TABELO = "ISO3166";

ĝenerala enhavo

kopirajta noto
Noto pri kopirajto devus eki aŭ fini ĉiujn dosierojn.

    // Kopirajto (c) 2002, Tutmonda Esperanta Junulara Organizo.

ĝenerala enhavo

pakaĵa k importadaj deklaroj
Post la pakaĵa deklaro la importadaj deklaroj devas grupi la normajn antaŭ la projektajn. La importitaj pakaĵoj devus aperi laŭ alfabeta ordo.

    package org.esperanto.adresar.prezentar;

    import java.*; // unue venas normaj pakaĵoj
    import javax.*; // kaj normaj etendaĵoj

    import org.apache.*; // sekvas pakaĵoj el aliaj projektoj
    import org.xml.*;
    import org.w3c.*;

    import org.esperanto.*; // kaj finfine propraj

ĝenerala enhavo

klasa difino
La difino de klaso devas sekvi sian javadoc komenton, kiu priskribas la celon kaj uzon de tiu klaso. La formatigaj etikedoj devus obei la regulojn por XHTML. La deklaroj extends kaj implements devus esti sur apartaj linioj. Kunlabore kun CVS eblas aŭtomate plenigi la indikojn @author k @version.

ĝenerala enhavo

atributoj kaj atingometodoj
Publikaj atributoj devas ĉiam esti dokumentitaj. Ankaŭ atributoj kun aliaj atingorajtoj devus esti dokumentitaj. Leg- kaj skrib-metodoj devus troviĝi proksime de la atributa difino. Tiuj metodoj devus obei la regulojn por JavaBeans aŭ esperantigitan varianton (t.e. akuzativigo de la atributa nomo, donu por legi la atributan valoron kaj prenu por enskribi novan valoron).

    protected LandaDetalaro detaloj;
    public LandaDetalaro donuDetalojn() {return detaloj;}
    public void prenuDetalojn(LandaDetalaro detaloj) {this.detaloj = detaloj;}

ĝenerala enhavo

konstruiloj
La konstruiloj devus aperi laŭ ordo de komplikeco (t.e. pli da parametroj venus poste).


ĝenerala enhavo

metodoj
Publikaj metodoj devas ĉiam esti dokumentitaj. Ankaŭ metodoj kun aliaj atingorajtoj devus esti dokumentitaj.


ĝenerala enhavo