Gå til innhold

Tanker rundt kodestandard / programming guidelines


Anbefalte innlegg

Videoannonse
Annonse

Hvilket språk er det du tenker på?

 

Forskjellige språk har sine konvensjoner, så det du ser er et resultat av forskjellig bakgrunn.

 

Den første funksjonsdefinisjonen er vanlig i bl.a. C og java.

 

Det å bruke underscore foran variable navn, mener jeg kommer fra et eller annet språk for å angi scope.Husker ikke hvilket i farta, for det er et noe sært design. _ har også vært brukt i noen språk for å indikere private variabler, mens andre bruker m foran variablenavnet.

 

Ditt eksempel, m_varNavn er veldig feil i mine øyne, da du blander to stilarter. Enten m_var_navn, eller mVarNavn. Eller dropp m,en helt.

Lenke til kommentar

Fordi skjermen til de som skriver slik kode er femten linjer høy. Det er det eneste jeg kan komme på :p

 

Er vel mest smak, behag, og guidlines på enkelte prosjekter som gjør at det blir slik.

 

 

Ang. variabelnavn foretrekker jeg VarName for public, og _varName for private.

Jeg er nok sær, men dette virker mest logisk i mitt hode.

Lenke til kommentar

Hvilket språk er det du tenker på?

 

Forskjellige språk har sine konvensjoner, så det du ser er et resultat av forskjellig bakgrunn.

 

Den første funksjonsdefinisjonen er vanlig i bl.a. C og java.

 

Det å bruke underscore foran variable navn, mener jeg kommer fra et eller annet språk for å angi scope.Husker ikke hvilket i farta, for det er et noe sært design. _ har også vært brukt i noen språk for å indikere private variabler, mens andre bruker m foran variablenavnet.

 

Ditt eksempel, m_varNavn er veldig feil i mine øyne, da du blander to stilarter. Enten m_var_navn, eller mVarNavn. Eller dropp m,en helt.

 

Jeg tenker sånn generelt. Jeg koder PHP, JAVA, C# og C++ og bruker samme standard på alt sammen.

 

Og er jo litt med vilje jeg fyrer opp denne samtalen da jeg vet at det er ulikt hva man følger.

 

Jeg er veldig uenig i at med "m_varName" så blander man to stilarter. "mVarName" er etter min mening vanskligere å lese, og dermed vanskeligere å oppfatte når man bare kaster et blikk over flere variabler. "m_varName" kan ikke misforstås :) "mVarName" er i mer konflikt da "m" ikke har noe med variabelnavnet sånn sett å gjøre og "ødelegger" da for en standard om camelcase med variabelnavn skrevet slik som "variabelNavn".

Lenke til kommentar

Hvorfor er det noen som tviholder på å skrive

 

function(args) {
...
}

 

når det aller best skrives (:))

 

function(args)
{
...
}

 

Første er jo best, den andre sløser jo en hel linje til ingenting ;)

 

Er akkurat som Vim vs Emacs diskusjoner, man blir aldri enig.

 

Man sløser en linje? Vil ikke compileren drite i mellomrom og spaces når den kompilerer da...

 

Anyways: jeg har ingen problemer med å sløse en "hel linje" for å øke leservennligheten. Man bbør vel sette leservennlighet og struktur ganske høyt når man sitter og koder hele dagen :)

Lenke til kommentar

Anyways: jeg har ingen problemer med å sløse en "hel linje" for å øke leservennligheten. Man bbør vel sette leservennlighet og struktur ganske høyt når man sitter og koder hele dagen :)

Akkurat det, er jeg enig med deg i.

 

Det beste rådet angående kodestandard som jeg har hørt, er "Velg en standard, og hold deg til den".

 

Generelt sett, så er jeg tilhenger av en så slank stanard som mulig. Jeg ser mange som lager store tunge dokumenter som detaljstyrer alt mulig. Det blir fort uproduktivt da man fokuserer på feil ting ...

 

For meg er de viktigste punktene:

 

1) Forby "Hungarian notation". Det skaper kun støy og forvirring.

2) Bruk gode og beksrivende navn på klasser, metoder og variabler.

3) Følg den gjengse standarden til språket du programmer i. Dvs. plassering av {, } osv følger det som de fleste bruker.

4) Sett "indentation length" og "tab length" til det samme. Bruk en editor som lagrer indenter som tab - ikke space.

 

Regel 4 er muligens litt spesiell, men gjør at jeg kan bruke 4 spacer og Ole 3 spacer, og filene våre går om hverandre.

Lenke til kommentar

Forskjellige konvensjoner er jo greit nok, jeg bryr meg ikke så mye om hvordan bokstavene ser ut på skjermen, det eneste jeg bryr meg om er at det er konsistent. Men skriver man Java, forventer jeg egentlig at man følger Java sin stil-guide (http://java.sun.com/docs/codeconv/), skriver man Python bør man følge PEP8 osv. At forskjellige språk har forskjellige konvensjoner er ikke så viktig, det blir bare religiøs krangling om man prøver å blande.

 

Konsistens over alt annet.

Lenke til kommentar

Er vel bare å formatere det slik man vil selv da. Har "jukset" meg til begge når jeg koder C#:

 

ctrl+k+d (VS reformat) => { på samme linje

ctrl+e+c (ReSharper cleanup) => { på egen linje

 

Bare passe på å kjøre samme formatet som det var i i utgangspunktet før jeg sjekker inn, så blir det ikke så store changesets når alle utviklerene formaterer på sin egen stil hver gang de gjør noe, eller ulike stiler i samme prosjekt :whistle:

 

_ i variabelnavn betyr vel normalt private member, de er greit å notere spesielt, så slipper man å lete etter deklarasjonen for å finne ut av scope. Alternativt kan man jo forsåvidt la leseren finne ut av det selv, eller kvalifisere bruken med me/this overalt.

Endret av MailMan13
Lenke til kommentar

Jeg har mer eller mindre ubevisst begynt å gi alle private variabler bare små bokstaver.

Tidligere skrev jeg m_minvariabel, nå bare minvariabel.

Men jeg er ikke sikker på om det er noe smart å kun skille med store og små bokstaver...

I noen fonter er det vanskelig eller umulig å se forskjellen mellom stor I og liten L: "Illicit" eller "illicit"

Lenke til kommentar

Problemet med å bruke bare små bokstaver er at lange navn fort blir uleselige. Hvis de private variablene er pakket rundt get/set, så bør det ikke være et problem, for du bruke da gettere og settere eller hur?

 

Jeg bruker alltid en monospace font i editoren min og synes ikke det er et problem å skille mellom I og l ...

Lenke til kommentar

Problemet med å bruke bare små bokstaver er at lange navn fort blir uleselige. Hvis de private variablene er pakket rundt get/set, så bør det ikke være et problem, for du bruke da gettere og settere eller hur?

Regner med han bruker camel-case med første i lower. I Java/C++ er det forsåvidt greit siden man sier get/set eksplisitt. I .Net hvor vi har properties som kapsler inn get/set vil ikke det fungere.

 

Det vil heller ikke skille på members og lokale variable.

Endret av MailMan13
Lenke til kommentar

Problemet med å bruke bare små bokstaver er at lange navn fort blir uleselige. Hvis de private variablene er pakket rundt get/set, så bør det ikke være et problem, for du bruke da gettere og settere eller hur?

 

Jeg bruker alltid en monospace font i editoren min og synes ikke det er et problem å skille mellom I og l ...

Jeg bruker Consolas, som er truetype monospace, og det er ikke noe stress der heller, men det er ikke utenkelig at andre kan ha det problemer.

 

Dessuten: kort er godt når det gjelder lokale variabler og private variabler.

Jeg skriver ikke for eksempel

bool increment_on_next_iteration;

men heller

bool incr; // Increment on next iteration

Lenke til kommentar

Regner med han bruker camel-case med første i lower. I Java/C++ er det forsåvidt greit siden man sier get/set eksplisitt. I .Net hvor vi har properties som kapsler inn get/set vil ikke det fungere.

Ja, der er det en forskjell.

Det vil heller ikke skille på members og lokale variable.

Men begynner man navn på properties med lower case? Hadde det ikke vært bedre å starte property navn med stor bokstav og lokale/private variabler med liten? Metode/funksjons kall ser man jo på argument liste eller tom () på slutten. Muligens med unntak av VB.net - der er vel parantesene friillig ?

Lenke til kommentar

Men begynner man navn på properties med lower case? Hadde det ikke vært bedre å starte property navn med stor bokstav og lokale/private variabler med liten?

Er det som er poenget, gjør man det slik er det ingen distinksjon mellom lokale og private variable. Properties er uppercase i .Net, den er grei.

 

Metodekall er greit, det er Upper [.Net] / Lower [Java] som vanlig.

Endret av MailMan13
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...