Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:kodolasi_konvenciok

< Programozás

Kódolási konvenciók

  • Szerző: Sallai András
  • Copyright © Sallai András, 2014
  • Licenc: GNU Free Documentation License 1.3

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
oktatas/programozas/kodolasi_konvenciok.txt · Utolsó módosítás: 2020/08/10 08:42 szerkesztette: admin