Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Java kódolási konvenciók

Hasonló előadás


Az előadások a következő témára: "Java kódolási konvenciók"— Előadás másolata:

1 Java kódolási konvenciók

2 Miért van szükség kódolási konvenciókra?
~80% karbantartás több emberi erőforrás olvashatóság, érthetőség forráskód közzététele

3 Java forrásfájlok .java illetve .class kiterjesztések ~2000 programsor
tartalmaz publikus osztályt vagy interfészt Tartalmazási sorrend: Kezdő megjegyzések Csomag-, importdeklarációk Osztály-, interfészdeklarációk

4 Kezdő megjegyzések /* * Osztálynév * * Verzióval kapcsolatos információk * Dátum * Copyright megjegyzések */

5 Csomag-, importdeklarációk
első sor, mely nem megjegyzés: csomagdeklarációk utána import deklarációk példa: package csomag1.csomag2.csomag3; import javax.sound.midi.MidiChannel; import javax.sound.midi.MidiSystem; import javax.sound.midi.MidiUnavailableException; import javax.sound.midi.Synthesizer; vagy: import javax.sound.midi.*;

6 Osztály-, interfészdeklarációk (sorrend)
Osztály- vagy interfészdeklaráció része Megjegyzések 1 Osztály/interfész dokumentációs megjegyzés (/** */) 2 Osztály/interfész fej 3 Osztály/interfész implementációs megjegyzések (ha szükséges) Tartalmazhat osztály vagy interfész szintű kiegészítő információkat, amelyek nem kerültek a dokumentációs megjegyzésbe. 4 Osztályváltozók Sorrend: nyilvános, protected, félnyilvános, privát 5 Példányváltozók Sorrend: u.a. 6 Konstruktorok 7 Metódusok Sorrend: működés alapján, olvashatóság, érthetőség

7 Behúzás, sorhossz behúzás alapegysége 4 szóköz karakter = 1 tab
80 karakterű sorhossz Sortörési alapelvek: vessző után operátor előtt magas szintű törések preferálása az alacsonyszintűekkel szemben új sor elhelyezése az előző sorban lévő azonos szintű kifejezés kezdetéhez igazítva ha a fenti szabályok a kód összezavarásához vezetnének, vagy a jobb margónál sűrűsödne -> kisebb behúzások

8 Behúzás, sorhossz (példa)
peldaMetodus(hosszuKifejezes1, hosszuKifejezes2, hosszuKifejezes3); példa 2: valtozo = peldaMetodus1(hosszuKifejezes1, peldaMetodus2(hosszuKifejezes2, hosszuKifejezes3));

9 Aritmatikai kifejezéseken belüli sortörés (példa)
longName1 = longName2 * (longName3 + longname4 - longName5) + 4 * longName6; // Ajánlott példa 2: longName1 = longName2 * (longName3 + longname4 - longName5) + 4 * longName6; // Kerülendő

10 Sortörés a feltételes kifejezésnél 1.
//Ne használjuk ezt a behúzást if ((condition1 && condition2) || (condition3 && condition4) || (condition5 && condition6)){ doSomethingAboutIt(); } //Helyette így //Vagy így if ((condition1 && condition2) || (condition3 && condition4)

11 Sortörés a feltételes kifejezésnél 2.
alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta : gamma; alpha = (aLongBooleanExpression) ? beta

12 Megjegyzések implementációs (//, /**/) dokumentációs (/** */) Célja:
típusai: blokk, egysoros, utó-, sorvégi megjegyzés forráskód szövegének magyarázata dokumentációs (/** */) specifikáció magyarázata Célja: áttekintés nyújtás plusz információk ott ahol a kód nem egyértelmű segíti a megértést, áttekinthetőséget Hátrányok, kerülendő momentumok: redundáns adatok módosítása -> többletmunka könnyen elévülhet minőség <--> megjegyzés mennyisége

13 Implementációs megjegyzések 1.
Blokk megjegyzések Használata: fájlok, metódusok, adatstruktúrák, algoritmusok leírása Példa: /* * Ez egy blokk megjegyzés */ Megjegyzés: kóddal azonos szinten kell lennie

14 Implementációs megjegyzések 2.
Egysoros megjegyzések rövid azon a szinten amelyen az előző sor van előtte üres sor Példa: if (feltétel){ /* Ha a feltétel teljesül. */ ... }

15 Implementációs megjegyzések 3.
Utómegjegyzések még rövidebb megjegyzések kóddal egy sorban, amit magyaráznak több esetén mind azonos távolságra Példa: if (a == 2){ return TRUE; /* speciális eset */ } else { return isPrime(a); /* csak páratlan számok esetén */ } Sorvégi megjegyzések (//) blokk megjegyzés egysoros megjegyzés utómegjegyzés

16 Dokumentációs megjegyzés
Használata: osztályok, interfészek, metódusok, adattagok jellemzése Jellemzői: deklaráció előtt kell szerepelnie az itt megadottak megjelennek a dokumentációban

17 Dokumentációs megjegyzés (példa)
/** * Dokumentáció szövege * szam miért kell a "szam" bemenet szoveg miért kell a "szoveg" bemenet a visszatérési érték mit ad vissza */ public boolean valami(int szam, String szoveg){ ... }

18 Deklarációk Helye: lehetőleg az adott blokk elején
kivétel a for ciklus Ajánlott: int level; //szint int size; //tábla mérete vagy int level; //szint int size; //tábla mérete Object entry; //bejegyzés Kerülendő: int level, size; Inicializálás ahol deklaráltuk, kivéve ha egy számítás eredménye lesz az értéke

19 Osztály, interfész deklarációk
metódus név és paraméterlista között ne legyen szóköz metódus fejével egy sorba kerüljön a nyitó ("{") zárójel a záró ("}") zárójel mindig egymagában új sorban legyen (kivétel üres törzs esetén) metódusok üres sorral legyenek elválasztva egymástól Utasítások egyszerű utasítások: egy utasítás egy sor összetett utasítás: közrefogott utasítások egy szinttel beljebb nyitó zárójel a sor végén, záró zárójel új sorban, sor elején, annyival behúzva mint a kezdő utasítás

20 Üres sorok, szóközök használata
üres sorokkal a logikailag összetartozó részeket emelhetjük ki két üres sor: osztály és interfész definíciók között egy üres sor: metódusok egy adott metódus lokális változói és első utasítás között blokk vagy egysoros megjegyzés előtt vagy egy metóduson belül az egyes logikai szakaszok között, olvashatóság érdekében Szóközök használata: ha az adott kulcsszót zárójel követi (kivéve metódusnál) argumentum listában minden kétoperandusú operátort (kivétel a . operátor) pl.: a += c + d; System.out.println("Valami " + a + "valami kettő"); kifejezéseket egy for utasításban típuskényszerítéseket szóköznek kell követnie pl.: a = (double) b / c;

21 Elnevezési konvenciók
Azonosító típus Az elnevezés szabályai Példák Csomagok ASCII karakterekkel kell írni, top-level domain nevek egyikének kell lennie. (com, edu, net, org, stb.) A többi komponens egyre szűkíti a kört. com.sun.eng Osztályok Főnév, belső szavak első betűi nagyok. Egyszerű, kifejező, ne legyen rövidítés class ImageSprite Interfészek Osztályhoz hasonló interface Valami Metódusok Kisbetűvel keződő ige, belső szavak nagybetűvel kezdődnek runFast()

22 Azonosító típus Az elnevezés szabályai Példák Változók Kisbetűvel kezdődik, de nem lehet _ vagy $, a belső szavak nagybetűvel kezdődjenek. Legyen beszédes, de rövid. int i; char c; float myWidth; Konstansok Csupa ANSI nagybetű, szavak elválasztása _-al static final int MIN_WIDTH = 4;

23 Áttekintés (példa)

24

25

26 Köszönöm a figyelmet!


Letölteni ppt "Java kódolási konvenciók"

Hasonló előadás


Google Hirdetések