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

C, C++, Pascal, Assembly, Raspberry, Java, Matlab, Python, BASIC, SQL, PHP, etc.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg 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().
bearing
Inlägg: 11231
Blev medlem: 2 mars 2006, 01:01:45
Ort: Ängelholm

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

Inlägg 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.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg 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:
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg 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!
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

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

Inlägg 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
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg av Magnus_K »

Tack johano! Mycket bra!
Användarvisningsbild
mrfrenzy
Co Admin
Inlägg: 14818
Blev medlem: 16 april 2006, 17:04:10

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

Inlägg 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.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg 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.
Användarvisningsbild
mankan
EF Sponsor
Inlägg: 905
Blev medlem: 18 juli 2015, 11:23:22
Ort: Linköping

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

Inlägg 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å.
Användarvisningsbild
Lennart Aspenryd
Tidigare Lasp
Inlägg: 12607
Blev medlem: 1 juli 2011, 19:09:09
Ort: Helsingborg

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

Inlägg 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.
meconer
EF Sponsor
Inlägg: 491
Blev medlem: 27 april 2010, 20:07:46
Ort: Järfälla

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

Inlägg 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.
johano
Inlägg: 1943
Blev medlem: 22 januari 2008, 10:07:45
Ort: Stockholm

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

Inlägg 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
ClasseMan79
Inlägg: 7
Blev medlem: 8 maj 2015, 14:36:59

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

Inlägg 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.
Användarvisningsbild
Magnus_K
EF Sponsor
Inlägg: 5854
Blev medlem: 4 januari 2010, 17:53:25
Ort: Skogen mellan Uppsala-Gävle

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

Inlägg 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.
jpalsson
Inlägg: 143
Blev medlem: 20 juli 2012, 13:14:41

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

Inlägg 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" :-)
Skriv svar