Sida 1 av 1

Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 11:13:54
av Magnus_K
Hej!

Tror jag frågat tidigare men den här gången måste jag ta tag i det på allvar. Tanken är att skriva ut en lathund och sätta upp på väggen.

Kan ni tipsa om ett bra dokument som beskriver hur man får lättläst och enhetlig kod? Det behöver inte vara någon standardmanual på 500 sidor, utan ett dokument som på ett lättläst sätt beskriver det jag efterfrågar.

Som exempel så sitter jag nu med en variabel som ska innehålla status (hög/låg) på en knapp. Bör denna kallas stateButton, pushButtonState, buttonState, button_state etc etc?
Jag måste få till något enhetligt när det kommer till versala/gemena bokstäver, understreck, verb/substantiv/adjektiv när det kommer till att skilja mellan variabler, funktioner och annat.

Har för mig jag fick tips att placera tex do framför funktioner, tex doFlush().

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 11:29:04
av bearing
Sånt här är ju ganska subjektivt. Så om jag skulle ge dig ett dokument kanske det inte passar dig.
Tror du helt enkelt får googla runt efter "naming conventions" och välja en som faller dig i smaken.

Finns nog ett sånt dokument på varje seriöst kodutvecklande företag. Brukar ingå i ett dokument som heter "coding conventions" eller liknande.

Jag tyckte det vi hade på mitt tidigare jobb var bra, men det har jag inte tillgång till längre.

Men jag tar också gärna emot tips, särskilt om det är någorlunda kortfattat.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 11:32:49
av Magnus_K
Förstår att det är ganska personligt, men när man skriver så lite kod som jag gör så kommer man knappt till den nivån att det ens kan bli personligt.
Brukar gå tillbaka till lite gamla projekt men inser bara att jag aldrig gjort likadant :wink:

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 11:35:13
av Magnus_K
Det här kanske? -> https://users.ece.cmu.edu/~eno/coding/CCodingStandard.html

Tack för tipset om naming conventions, det underlättade sökningen!

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 11:45:15
av johano
Några av mina små "regler" som har utvecklats genom åren:

#defines: alltid i versaler, separerade med _
exempel

Kod: Markera allt

#define INPUT_PIN 3
#define SCREEN_WIDTH 640
Konstanter: PascalCase (camelCase men med inledande versal)
exempel

Kod: Markera allt

const int ReadTimeout = 100;
const long MaxConnectionPoolSize = 16;
Variabler: camelCase
namnet bygger jag ofta upp med först _vad_ "huvudobjektet" är (button), sedan fyller på med mer
och mer "detaljerad" specifikation om vilken "del" av det som avses (State)

väldigt lokala och kortlivade variabler i loopar: i, x, y, r, c e.dyl

exempel:

Kod: Markera allt

int buttonState = true;
int buttonBackgroundColor = COLOR_GRAY;
float employeeSalary;

for(var y=0;y<SCREEN_HEIGHT;y++) {
  for(var x=0;x<SCREEN_WIDTH;x++) {
     readScreenPixel(x, y);
     Screen.readPixel(x, y);
  }
}

funktioner: camelCase
första ledet alltid verbet som ska utföras, därefter uppbyggt på samma sätt som variablerna.
Använder dock aldrig allmänna verb som "do" då de bara adderar "fluff", ditt exempel hade "flush()"
varit alldeles tillräckligt (om det inte är absolut nödvändigt för att skilja dem från andra grejer)
Däremot hade jag nog lagt till _vad_ som flushas: "flushCache()"
exempel:

Kod: Markera allt

void flushCache() {}
void* createObject() {}
int getCustomerWeight() {}
metoder: camelCase
byggs upp exakt som funktioner, men utelämnar såklart "huvudobjektet"
exempel

Kod: Markera allt

class Cache()
{
    public:
        void flush();
};

/j

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 12:08:49
av Magnus_K
Tack johano! Mycket bra!

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 19:31:36
av mrfrenzy
Vilket språk använder du?

Använder du några bibliotek väldigt mycket och kan det kanske finnas möjlighet att du i framtiden kommer förbättra något av dessa bibliotek och dela med dig av din kod till andra så den kanske blir inkluderad i biblioteket?

Då kan det ju vara en bra början att kolla om det finns en bra coding standard där att följa.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 19:45:41
av Magnus_K
Gör mitt bästa att hålla mig till C, men då jag knappt ser skillnad på språken så spelar det knappt någon roll :)

Sen chansen att jag ska förbättra något bibliotek kan nog ses som mycket liten, men i och för sig, min kod delar jag mer än gärna med mig av, om någon mot förmodan vill ha den.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 20:13:22
av mankan
På jobbet när vi var ägda av Google funderade vi på att byta till deras: https://google.github.io/styleguide/cppguide.html men vi reviderade den egna lite istället. Jag är numera så van vid den så jag använder den hemma också.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 20:15:22
av Lennart Aspenryd
Niklaus Wirth skapade ett språk för undervisning, det var inte tänkt att användas för programmering. Men någon Dansk övertalade / övertalades att kör detta språk för Borland.
Språket var Pascal och där kan man nog finna en hel del nycklar till döpning Namngivning.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 22:17:15
av meconer
Jag håller på att ta mig igenom en bok som heter "Code Complete". En rejäl tegelsten och väldigt många ord för att beskriva saker men den innehåller väldigt mycket bra.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 23 mars 2017, 22:30:10
av johano
Ja. den är bra!

En annan bok jag starkt kan rekommendera är "Writing Solid Code" av Steve Maguire, visserligen rätt gammal nu men ändå lika aktuell idag.

/j

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 24 mars 2017, 10:24:16
av ClasseMan79
Egentligen inte det du söker men en "Linter" kan vara till hjälp för att få lite mer ordning på koden. Sök efter c linter för mer info.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 24 mars 2017, 11:04:55
av Magnus_K
Ja tackar för alla bra tips.
Ska se om jag kan komma över dom där böckerna, eller i alla fall en chans att slå lite i dom.

johano:s lathund räcker ganska långt och google:s stilguide var också stilig.

Re: Söker bra referensdokument för att hålla koden enhetlig

Postat: 5 april 2017, 22:35:11
av jpalsson
mankan skrev:På jobbet när vi var ägda av Google funderade vi på att byta till deras: https://google.github.io/styleguide/cppguide.html men vi reviderade den egna lite istället. Jag är numera så van vid den så jag använder den hemma också.
Den var bra!

Ett guldkorn hittade jag, "Do not use Hungarian notation" :-)