Tartalomjegyzék
Kódolási konvenciók
- Szerző: Sallai András
- Copyright © Sallai András, 2014
- Licenc: GNU Free Documentation License 1.3
- Web: http://szit.hu
Bevezetés
A kódolási konvenciók a hatékony szoftverfejlesztés sarokkövei. Egységes stílus nélkül a munkánk nagy része keresgéléssel telik.
A következő három program. Első pillantásra talán más, más programnak tűnik. A három program egy és ugyanaz:
class Haromszog { public static double terulet(double alap, double magassag) { return alap * magassag / 2; } public static void main(String[] args) { System.out.println(terulet(30, 35)); } }
class Haromszog { public static double terulet(double alap, double magassag) { return alap * magassag / 2; } public static void main(String[] args) { System.out.println(terulet(30, 35)); } }
class Haromszog { public static double terulet(double alap, double magassag) {return alap * magassag / 2;} public static void main(String[] args) {System.out.println(terulet(30, 35));} }
Az olvashatóságot ronthatják az elnevezési szokások is. vajon mit csinál a következő program?:
class H { public static double t(double a,double b) { return a*b/2; } public static void main(String[] args) { System.out.println(t(30,35)); } }
Ilyen kis programoknál természetesen nincs nagy gond. Nagyobb programok esetén fáradtságos munkába kerülhet a visszakövetés.
Mit szokás meghatározni?
Mit szokás meghatározni a kódolási konvenciókban? Fájlok formázása behúzásokkal, a programozás azonosítóinak elnevezései.
A következő listában a gyakran használt meghatározásokat látjuk:
- fájlok formázása
- fájlok kezdése, befejezése
- behúzások - tabulátor vagy szóköz
- sorvége jelek - LF vagy CR/LF
- fájlok elnevezése
- osztályok elnevezése
- interfészek elnevezése
- metódusok elnevezése
- változónevek
- állandók nevei
Kisbetű-nagybetű stílusok
Több szóból álló azonosítók írása.
- PascalCase vagy CamelCase vagy UpperCamelCase- minden tag nagybetűvel kezdődik
- camelCase vagy Mixed case vagy lowerCamelCase - az első kicsit, a következő tagok kezdőbetűje nagy
- Snake_case vagy underscore_case
- spinal-case vagy kebab-case
- StUdLyCaPs - kevert
- Sentence case - első nagybetű
- Title case vagy hadline - első betű nagy ha lényeges (főcím) - Oxford Manual of Style
- UPPER CASE - nagybetűs
- lower case - kisbetűs
- tOGGLE cASE - első betűk kicsi
Vannak leírások, ahol a camelCase nagybetűvel kezdik: CamelCase és ennek megfelelően nagy kezdőbetűt jelöl az elején, vagyis CamelCase == PascalCase.
Ilyenkor ajánlott megkülönböztetni az első karakter kis vagy nagy kezdőbetűs írását:
- UpperCamelCase
- lowerCamelCase
Elnevezési stílusok
Magyar stílus
A magyar stílust Charles Simonyi után nevezik magyar stílusnak, származása alapján. Apja Simonyi Károly, fizikus, tudós, tanár és mérnök.
Angolul Hungarian notation, németül ungarische Notation.
A használata a C nyelvhez kötődik, mivel ott használták elsőként.
- rendszer magyar
- változóban tárolandó típus jelezzük egy vagy több betűvel, annak nevében, prefixként
- dHomerseklet - double
- iSzamlalo - int
- lSzamlalo - long
- fSzam - float
- strNev - string
- szNev - \0-val zárt string
- pFile - mutató
- dbPi - double
- alkalmazói magyar
- a változó felhasználásának területét jelezzük egy vagy több betűvel, annak nevében prefixként
- ideiglenesTarolo
- ujNev
- regiNev
C és C++ nyelvekben szokás.
Ajánlás
- OsztályNévPascalCase
- metódusNévCamalCase
- változó_underscore
- KONSTANS_NAGYBETUS
Kódolási stílusok
Megjegyzések
Ne legyenek felesleges megjegyzések. A jól megírt kód elég beszédes. Minden állomány elején legyen egy állományleíró rész.
Az utasítások után tehetünk egy soros megjegyzéseket.
/* * Lépésszámláló program * Verzió: 0.1 * 2014-10-21 * Copyright (c) Nagy József, 2014 * Licenc: GNU/GPL * /
Sorhossz
A hosszú sorokat tördeljük. Mi számít hosszú sornak? A 80 karakternél hosszabb sorok túl hosszúnak számítanak. Néhány fejlesztői környezet mutatja ennek határát.
System.out.printf( "A haromszog terulete: %.2f\n", (haromszogAlap * haromszogMagassag)/2 );
if ( bekertSzin == "piros" || bekertSzin == "zöld" || bekertSzin == "kék" || bekertSzin == "fehér"){ //... }
Blokk nyitó és záró szimbólumok
A C alapú nyelvekben a blokk nyitó és záró szimbólumok a kapcsos zárójelek. Van néhány stílus, amelynek már neve is van.
K&R stílus
if(feltétel) { //utasítás }
GNU stílus:
if(feltétel) { //utasítás }
BSD stílus:
if(feltétel) { //utasítás }
Else ág
if (feltétel) { } else { }
if (feltétel) { } else { }
if (feltétel) { } else { }
if (feltétel) { } else { }
Pascal alapú nyelvekben
A pascal nyelvben is ezek a megoldások variálhatók:
if feltétel then begin utasítások; end;
if feltétel then begin utasítások; end;
if feltétel then begin utasítások; end;
while feltétel do utasítások; end;
Behúzás
A blokkokhoz tartozó utasításokat behúzással beljebb írjuk a jobb átláthatóság érdekében:
main() { utasítás1; utasítás2; utasítás3; utasítás4; if(feltétel) { utasítás5; utasítás6; utasítás7; utasítás8; utasítás9; } utasítás10; utasítás11; utasítás12; }
Függelék
Elnevezés
Grafikus felületek esetén érdemes végiggondolni, hogyan nevezzük el nyomógombjainkat, és más komponenseinket.
Variációk kilépésgombra:
- buttonExit
- exitButton
- butExit
- btnExit
- gombKilep
Beviteli mezők:
- textSzam
- szamText
- txtSzam