"Karsten Mandrup Nielsen" <kmn@logimatic.dk> wrote
> Hejsa,
>
> Vi er i øjeblikke ved at lave en code convension til brug ved java
udvikling
> og vi baserer det på suns udgave.
>
> Nu er der kommet forslag om at navngive variabler med type først. ex.
> intKundeNummer - strNavn osv.
>
> Jeg er ikke tilhænger af dette, men savner nogle gode argumenter?
Hejsa der...
Det var dog en tåbelig navngivnings ide om jeg må være så fri.
Og argumenter imod:
1) Man bør altid så vidt muligt i navngivning af variable, klasser, metoder
osv, holde sig til problem-området. Det skaber kun forvirring og fjerner
fokus når man bruger datalogiske betegnelser som linkedObjectList istedet
for kundeListe og printerStatusFlag istedet for printerReady.
2) Alle moderne udviklingsværktøjer (og der findes sikkert også nogle
scripts til Emacs) kan lynhurtigt fortælle hvilken type en variabel er, og
man kan som regel også se det i Structure-træet i venstre side af ens IDE
3) Sålænge systemet kører i Danmark er det sikkert meget sjovt med
intPostNummer, men når det så også skal benyttes i England, hvor postnumre
jo er tekst-strenge, så er det irriterende at skulle ændre alle
intPostNummer til stringPostNummer (det kan nemt klares med refactoring, men
husker man at gøre det ? Og hvorfor spilde sit liv på at lede efter
compilerfejl når man ikke kan (int)intPostNummer ?)
4) int, long og så videre er selvfølgelig nemt nok, men hvad nu når det er
f.eks en JCheckBoxMenuItem der kan vælge mellem HTML og PlainText, men den
bliver leveret af en factory, der leverer generelle JMenuItems, som man så
typecaster ? Hvad skal sådan en fætter hedde ? Skal det være en
(JCheckBoxMenuItem)jcheckboxmenuitemHTMLorPlainText eller en
(JCheckBoxMenuItem)jmenuitemHTMLorPlainText ?
Eller hvis man ønsker at behandle alle JComponents ens ? Hvad skal de så
hedde ? Bare det at man overhovedet skal bruge tid på at tænke over det,
viser at man har valgt en forkert navne-konvention.
5) Hvis man endelig vil angive typen af en variabel, f.eks om det er en
liste, en connector, en tabel, et indtastningsfelt eller sådan noget, så er
kotymen at man angiver det i slutningen af navnet. Feks JFormattedTextField,
customerList, databaseConnector og videre i den stil.
Sig endelig til hvis du skal bruge flere argumenter, jeg skal også gerne
komme og holde et foredrag
Hvis du vil have mere vægtige ord bag dig, så vil jeg henvise til Steve
McConnell: "Code Complete", ISBN 1-55615-484-4. Kapitel 9 handler
udelukkende om navngivning. Det har også et afsnit om Hungarian Naming
Convention, som jeg allerhelst så fjernet fra jordens overflade.
mvh
Peter Lind
PS: En anden skribent foreslog at man holdt sig til engelske variabelnavne.
Jeg er ikke helt enig. Der er ikke noget som helst galt i danske
variabelnavne, så længe ALLE variabelnavne er i det samme sprog, og
STØRSTEDELEN af metodenavnene ligeså. Og da java understøtter æ,ø og å, så
lad være med at finde på ting som saetSideHoejde, men brug sætSideHøjde.
Problemet ved danske metodenavne er at get og set ikke rigtigt lader sig
oversætte...