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.
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
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
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
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;
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";
Noto pri kopirajto devus eki aŭ fini ĉiujn dosierojn.
// Kopirajto (c) 2002, Tutmonda Esperanta Junulara Organizo.
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
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.
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;}
La konstruiloj devus aperi laŭ ordo de komplikeco (t.e. pli da parametroj venus poste).
Publikaj metodoj devas ĉiam esti dokumentitaj. Ankaŭ metodoj kun aliaj atingorajtoj devus esti dokumentitaj.