Felhasználói eszközök

Eszközök a webhelyen


oktatas:programozas:kodolasi_konvenciok

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

oktatas:programozas:kodolasi_konvenciok [2019/08/22 11:31] (aktuális)
admin létrehozva
Sor 1: Sor 1:
 +[[oktatas:​programozás|<​ Programozás]]
 +
 +====== Kódolási konvenciók ======
 +
 +  * **Szerző:​** Sallai András
 +  * Copyright (c) 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:
 +
 +<​code>​
 +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));
 + }
 +}
 +</​code>​
 +
 +<​code>​
 +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));
 + }
 +}
 +</​code>​
 +
 +
 +<​code>​
 +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));}
 +}
 +</​code>​
 +
 +Az olvashatóságot ronthatják az elnevezési szokások is. vajon mit csinál a következő program?:
 +<​code>​
 +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));​
 + }
 +}
 +</​code>​
 +
 +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 CamleCase 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.
 +
 +<​code>​
 +/*
 + * Lépésszámláló program
 + * Verzió: 0.1
 + * 2014-10-21
 + * Copyright (c) Nagy József, 2014
 + * Licenc: GNU/GPL
 + * /
 +</​code>​
 +
 +
 +
 +==== 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. ​
 +
 +<​code>​
 +System.out.printf(
 +    "A haromszog terulete: %.2f\n",​
 +    (haromszogAlap * haromszogMagassag)/​2
 +    );
 +</​code>​
 +
 +
 +<​code>​
 +if ( bekertSzin == "​piros"​ ||
 +     ​bekertSzin == "​zöld" ​ ||
 +     ​bekertSzin == "​kék" ​  ||
 +     ​bekertSzin == "​fehér"​){
 +        //...     
 +}
 +</​code>​
 +
 +==== 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
 +<​code>​
 +if(feltétel) {
 +    //​utasítás
 +}
 +</​code>​
 +
 +
 +GNU stílus:
 +<​code>​
 +if(feltétel) ​
 +    {
 +        //​utasítás
 +    }
 +</​code>​
 +
 +BSD stílus:
 +<​code>​
 +if(feltétel) ​
 +{
 +    //​utasítás
 +}
 +</​code>​
 +
 +
 +==== Else ág ====
 +
 +<​code>​
 +if (feltétel) {
 +
 +} else {
 +
 +}
 +</​code>​
 +
 +
 +<​code>​
 +if (feltétel) {
 +
 +
 +else {
 +
 +}
 +</​code>​
 +
 +
 +<​code>​
 +if (feltétel) ​
 +{
 +
 +
 +else 
 +{
 +
 +}
 +</​code>​
 +
 +
 +
 +<​code>​
 +if (feltétel) ​
 +    {
 +
 +    } 
 +else 
 +    {
 +
 +    }
 +</​code>​
 +
 +==== Pascal alapú nyelvekben ====
 +
 +A pascal nyelvben is ezek a megoldások variálhatók:​
 +<​code>​
 +if feltétel then
 +begin
 +    utasítások;​
 +end;
 +</​code>​
 +
 +<​code>​
 +if feltétel then begin
 +    utasítások;​
 +end;
 +</​code>​
 +
 +<​code>​
 +if feltétel then
 +    begin
 +    utasítások;​
 +    end;
 +</​code>​
 +
 +
 +<​code>​
 +while feltétel do 
 +    utasítások;​
 +end;
 +</​code>​
 +
 +===== Behúzás =====
 +
 +
 +A blokkokhoz tartozó utasításokat behúzással beljebb írjuk a jobb átláthatóság érdekében:​
 +
 +<​code>​
 +
 +
 +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;​
 +}
 +</​code>​
 +===== 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: 2019/08/22 11:31 szerkesztette: admin