les4
TRANSCRIPT
Inleiding tot ProgrammerenPracticum 4Ruben Van den [email protected]
Monday 5 March 12
Code Conventions• Richtlijnen voor een specifieke programmeertaal
die een bepaalde programmeerstijl aanbevelen.• Kan betrekking hebben op:
- Indentatie- Commentaar- Witruimte- Naamgeving- Programmeerpraktijken- Vuistregels- ...
2Monday 5 March 12
Code Conventions• Voordelen
- Code is beter leesbaar- Code en gedachtengang zijn beter te begrijpen voor
collega’s (en lesgevers)- Onderhoud aan code is gemakkelijker- Projecten met meerdere programmeurs hebben
uniforme stijl
• Nadelen- Vraagt een beetje discipline van de programmeur- Niet afgedwongen door de compiler
3Monday 5 March 12
C++ Bronfiles• Elk .cpp bronbestand bevat (in volgorde):
- Een algemeen commentaarblok met korte beschrijving, datum en naam
- Een include-blok- Globale using-statements- Body-gedeelte met functies e.a.
4
/** * Main function for my calculator program * @author Ruben Van den Bossche * @date 5/03/2012 */
Monday 5 March 12
C++ Bronfiles• Elk .h header-bestand bevat (in volgorde):
- Multiple definition guard
- Een algemeen commentaarblok met korte beschrijving, datum en naam
- Een include-blok- Globale using-statements- Body-gedeelte met o.a. functie- en klassedeclaraties
5
#ifndef INC_MYCALC_H#define INC_MYCALC_H
// Content of header file
#endif /* INC_MYCALC_H */
Monday 5 March 12
C++ Bronfiles• Bij elkaar horende broncode en header files
hebben steeds dezelfde naam.• Header files met een klassedefinitie hebben
steeds dezelfde naam als de klasse.
6Monday 5 March 12
Indentatie• Alle onderdelen van slides 4-5 komen tegen de
kant• Indenteer elk blok met 1 tab
7
int somefunction(int someargument) { ... while(i < 5) { ... } ...}
Monday 5 March 12
Indentatie: accolades• Openingsaccolade staat op dezelfde lijn als de
vorige instructie• Sluitingsaccolade staat op een nieuwe regel
8
int somefunction(int someargument) { ... while(i < 5) { ... } ...}
Monday 5 March 12
Indentatie: regels afbreken• Vermijd lange regels (nooit horizontaal scrollen!)• Breek regels af
- na een komma- voor een operator- higher-level boven lower-level
• Indenteer afgebroken stuk één tabpositie extra
9
if ((variabele1 < variabele2) && ((variabele3 < variabele4) || (variabele3 >= variabele5))) { // do something}
Monday 5 March 12
Commentaar• In je code waar nodig
• Functies, klassen en methoden
10
// print all odd int's smaller than 10for(int i = 1; i < 10; i += 2) { cout << i << endl;}
/* * This function multiplies its argument * @param someargument The value to double * @return The doubled value */int someFunction(int someArgument) { return someArgument * 2;}
Monday 5 March 12
11Monday 5 March 12
Naamgeving• Gebruik weinig afkortingen en kies namen van
functies, variabelen, klassen zo logisch mogelijk.• Types en klassen beginnen met een hoofdletter.• Functies, methodes, variabelen beginnen met
een kleine letter.
• In geval van meerdere woorden worden deze onderscheiden door een hoofdletter
12
int someVariable = 5;class SomeClass;
Monday 5 March 12
13Monday 5 March 12
Witregels en instructies• Plaats een witregel tussen elk van de onderdelen
op slide 4-5• Plaats een witregel tussen elke functie en klasse
• Plaats nooit meer dan 1 statement op een regel- Niet:
- Wel:
14
i++; j++;
i++;j++;
Monday 5 March 12
Spaties• Plaats een spatie:
- rond elke operator- na elke komma
• Niet:
• Wel:
15
bool b=(((a/d)+c)||(e==4));int arr[]={1,2,3,4,5};
bool b = (((a / d) + c) || (e == 4));int arr[] = {1, 2, 3, 4, 5};
Monday 5 March 12
En nog dit...
• Wij vinden code conventions heel belangrijk• Fouten tegen deze regels worden zwaar bestraft
16Monday 5 March 12