Tartalomjegyzék

< Programozás

Kódolási konvenciók

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:

Kisbetű-nagybetű stílusok

Több szóból álló azonosítók írása.

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:

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.

C és C++ nyelvekben szokás.

Ajánlás

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:

Beviteli mezők: