====== Különbségek ====== A kiválasztott változat és az aktuális verzió közötti különbségek a következők.

Összehasonlító nézet linkje

Előző változat mindkét oldalon Előző változat
Következő változat
Előző változat
develop:coding_standards:general [2015. 06. 18. 13:04:21]
IB Controll Kft.
develop:coding_standards:general [2017. 05. 22. 11:30:21] (aktuális)
Sor 1: Sor 1:
 ====== Általános ====== ====== Általános ======
  
-  * A forráskódban szereplő sorok hossza legfeljebb ​**120** karakter ​lehet. Ha kell, sortörést mindig operátor után iktatunk be+  * A forráskódban szereplő ​**sorok hossza legfeljebb 120 karakter** lehet. Ha kell, sortörést mindig operátor után iktatunk be.
-    * Jobban áttekinthető ha nem kell görgetni.+
     * Kikényszeríti a túl mély szerkezetek kikerülését. Ha elértünk 3-4 indentálási mélységet,​ akkor fontoljuk meg egy új függvény vagy metódus bevezetését inkább.     * Kikényszeríti a túl mély szerkezetek kikerülését. Ha elértünk 3-4 indentálási mélységet,​ akkor fontoljuk meg egy új függvény vagy metódus bevezetését inkább.
-  * Forráskódban használjunk angol nyelvet. +  * Forráskódban ​**használjunk angol nyelvet**
-  * Behúzás tab karakterrel történik, nem space klarakterrel +  ​* **Behúzás tab karakterrel** történik, nem space karakterrel. 
-    * Alapértelmezetten egy tab karakter 4 space karakternek felel meg, de mindenki kedve szerint beállíthatja +    * Alapértelmezetten egy tab karakter 4 space karakternek felel meg, de mindenki kedve szerint beállíthatja. 
-    * A behúzás szintjei mindig egy tab karakterrel nőnek +    * A behúzás szintjei mindig egy tab karakterrel nőnek. 
-  * Láthatósági szabályok ​következő sorrendben kövessék egymást: public -> protected -> private+  * A kifejezésekben szereplő operátorok köré egy-egy szóköz kerül. 
 +    * Kivéve ​zárójel párok belső oldalai. 
 +  * A nyelv fenntartott szavait kövesse egy space karakter. 
 +  * Láthatóság mindig az engedékenytől halad a szigorú felé: public -> protected -> private
 +  * Mágikus számokat mellőzzük a 0 és az 1 kivételéve. Konstansként adjuk meg. 
 +<​code>​const int MAX_SPEED = 250</​code>​ 
 +  * Lebegő pontos számokat mindig ponttal adjuk meg, a pont előtt mindig álljon számjegy. 
 +<​code>​double num = 0.5 
 +double size = 4.0</​code>​
  
  
-===== Névadás =====+====== Névadás ​======
  
-**Az angol nyelv használandó.**+  * **Az angol nyelv használandó.** 
 +  * Kerüljük a felesleges rövidítéseket,​ használjunk beszédes változóneveket. 
 +    * file -> outputFile, path -> sourcePath / destinationPath 
 +  * A rövidítések szónak számítanak,​ így adott esetben csak a kezdő betűjük írandó naggyal.
  
-  * Kerüljük a felesleges rövidítéseket,​ használjunk beszédes változóneveket +<​code>​ip, sqlsourceIphtmlCode</​code>​
-    * src -> source, file -> outputFile +
-  * A rövidítések szónak számítanak,​ így adott esetben csak a kezdő betűjük írandó naggyal +
-   +
-<​code>​HtmlIpSql</​code>​+
  
  
-==== Változók, függvények ====+===== Változók, függvények, metódusok =====
  
-Változók, függvények nevei a camelCase formátumot kövessék. +  * Változók, függvények nevei a **camelCase** formátumot kövessék. 
-<​code>​getAddress()isFileEmpty(), minHour</​code>​+  * Használjunk gettersetter függvényeket. 
 +  * Csak az legyen publikus láthatóságú ami feltétlenül szükséges. 
 +  * Tagváltozók nevét aláhúzás jelle (_zárjuk.
  
 +<​code>​getAddress(),​ isEmpty(), minHour, firstYear_</​code>​
  
-==== Osztályok, névterek ==== 
  
-Osztályok, névterek a CamelCase ​formátumot kövessék.+===== Osztályok, névterek ===== 
 + 
 +  * Osztályok, névterek a **PascalCase** ​formátumot kövessék. 
 +  * A névtéren belül az osztályt nem kell behúzással elkülöníteni,​ a névtér végét kommentezéssel kell ellátni. 
 <​code>​HourClock,​ TimeMachine</​code>​ <​code>​HourClock,​ TimeMachine</​code>​
 +
 +<​code>​namespace CharactersList {
 +...
 +} // namespace CharactersList</​code>​
  
  
-==== Konstansok ====+===== Konstansok ​=====
  
-Konstansok mind nagybetűvel,​ és aláhúzás jellel elválasztva írandók.+Konstansok ​nevei mind **nagybetűvel**, és **aláhúzás jellel elválasztva** írandók.
 <​code>​GRAVITY,​ SPEED_LIMIT</​code>​ <​code>​GRAVITY,​ SPEED_LIMIT</​code>​
  
  
-===== Forrásfájlok ​=====+====== Vezérlési szerkezetek ======
  
-  * Minden fájlba csak egy, a vele megegyező nevű osztály kerülhet.+  ​* Az egysoros utasítás blokkoknak is nyissunk zárójeleket. 
 +  * **Egy sorba csak egy utasítás kerüljön.** 
 +  * Végtelen ciklust a while (true) formában használjuk. 
 + 
 + 
 + 
 +====== Forrásfájlok ====== 
 + 
 +  * **Minden fájlba csak egy, a vele megegyező nevű osztály kerülhet.**
   * A fájl neve meg kell egyezzen az osztály nevével, a kis- és nagybetűk is számítanak.   * A fájl neve meg kell egyezzen az osztály nevével, a kis- és nagybetűk is számítanak.
    * Az include direktívák sorrendjét úgy válasszuk meg, hogy a header fájlok között a speciálistól haladjunk az általános felé.    * Az include direktívák sorrendjét úgy válasszuk meg, hogy a header fájlok között a speciálistól haladjunk az általános felé.
      * Saját header fájlok -> programkönyvtár header fájlok -> rendszer header fájlok.      * Saját header fájlok -> programkönyvtár header fájlok -> rendszer header fájlok.
 +  * Minden header legyen ellátva header guard bejegyzéssel.
 +    * A header guard végét kommentezéssel kell ellátni.
  
  
-===== Formázás =====+<​code>#​ifndef CHARACTER_H 
 +#define CHARACTER_H 
 +... 
 +#endif // ifndef CHARACTER</​code>​ 
 +====== Formázás ​======
  
-Ha egy sor túl hosszú, meghaladja a 120 karakteret, tördelni kell. A törés mindig úgy történjen,​ hogy **az operátor a következő ​sor elejére ​kerüljön**.+Ha egy sor túl hosszú, meghaladja a 120 karaktert, tördelni kell. A törés mindig úgy történjen,​ hogy **az operátor a sor végére ​kerüljön**.
  
 <code cpp-qt> <code cpp-qt>
-if(!((windowSize.height() <= screenSize.height()) && isWindowSizeHeightPositive) +if (!((windowSize.height() <= screenSize.height()) && isWindowSizeHeightPositive) || 
-    ​|| !((windowSize.width() <= screenSize.width()) && isWindowSizeWidthPositive))+   !((windowSize.width() <= screenSize.width()) && isWindowSizeWidthPositive))
 { {
     resize(QSize(450,​ 200));     resize(QSize(450,​ 200));
Sor 73: Sor 103:
  
 <code cpp> <code cpp>
-if (isEmpty()) {+if (isEmpty()) 
 +{
     cout << "​Empty";​     cout << "​Empty";​
 } else { } else {