diff --git a/Suli/13.b/Programozás (Tusjak Brigitta)/Elmélet/2025. 01. 24.txt b/Suli/13.b/Programozás (Tusjak Brigitta)/Elmélet/2025. 01. 24.txt new file mode 100644 index 0000000..e280df4 --- /dev/null +++ b/Suli/13.b/Programozás (Tusjak Brigitta)/Elmélet/2025. 01. 24.txt @@ -0,0 +1,67 @@ +A tiszta kód olyan programkód, amely olvasható, könnyen érthető és karbantartható. Ennek elérése érdekében a tiszta kód az egyszerűség, átláthatóság és megfelelő struktúra elveit követi. + +Miért fontos a tiszta kód? +A tiszta kód elengedhetetlen a hosszú távú karbantartás és fejlesztés szempontjából. Egy tiszta kódbázis segíti a csapatot a hatékony együttműködésben és csökkenti a hibák keletkezésének esélyét. + - Olvashatóság: A kódot más fejlesztők könnyen megérthetik. + - Egyszerűség: A bonyolultság csökkentése gyorsabb hibajavítást tesz lehetővé. + - Karbanthatóság: A kód hosszú távon fenntartható és módosítható marad + +Olvashatóság +Az olvashatóság azt jelenti, hogy a kód könnyen érthető mind a fejlesztők, mind a tesztelők számára. Ennek érdekében: + - Használjunk értelmes változó -és függvényneveket + - Strukturáljuk a kódot logikus blokkokra + - Használjunk megfelelő indentálást (vízszintes elválasztás / igazítás) és sorhosszúságot + +Egyszerűség +Az egyszerűség elve szerint a kódot a lehető legegyszerűbben kell megírni, miközben minden szükséges funkcionalitást megvalósít. Kerüljük: + - A felesleges bonyolultságot + - A fölösleges és redundáns kódrészleteket + +Karbantarthatóság +A karbantarthatóság érdekében a kódnak modulárisnak kell lennie, és megfelelően dokumentáltnak. Ez azt jelenti, hogy a kódrészleteket könnyen újra lehet használni és módosítani. + +Indentálás és sorhosszúság +Indentálás: Kövessük a nyelv által javasolt szabványokat (C# esetében 4 szóközzel vagy tab karakterrel igazítjuk a sor elejét). +Sorhosszúság: Tartsuk a sorokat 80-100 karakter között, hogy a kód olvasható maradjon minden eszközön. + +Fehér terek és kommentek helyes használata + +Fehér terek használata +Hagyjunk üres sorokat a logikai blokkok között a kód struktúrájának kiemelésére. Használjunk szóközöket az operátorok közül a kód olvashatóságának javítása érdekében. + +Kommentek +A kommentek a kód megértését segítikm de csak akkor használjuk őket, ha valóban szükséges. A fölösleges kommentek zavarók lehetnek és csökkentik az olvashatóságot. + +Projekt struktúrája + - Osztályokat és metóduspkat rendezzük logikus modulokba ls csomagokba. + - Egy fájl egyetlen felelősséget lásson el. + +Függvények és metódusok tisztasága +Az egytlen felelősség elve + - Egy függvény vagy metódus csak egy dolgot végezzen és azt jók végezze el. +Rövidség és egyszerűség + - A függvények legyenek rövidek és kerüljük a túlzott összetettséget. Ha egy függvény túl hosszú, osszuk fel kisebb részekre. + +Refaktorálás +A refaktorálás szükségessége +A refaktorálás célja a kód minőségének javítása anélkül, hogy megváltoztatnánk annak viselkedését. Ez segít az olvashatóság és karbantarthatóság növelésében + +Gyakori refaktorálási lépések + - Változók és függvények átnevezése + - Redundáns kód eltávolítása + - Hosszú függvények felosztása kisebbekre + +Kódszagok felismerése és javítása +Kódszagok definíciója +A kódszag olyan kódrészlet, amely potenciális problémára utal. Ezek közé tartozik: + - Hosszú függvények: Túl sok mindent csinálnak + - Redundancia: Ugyanaz a kód több helyen is előfordul + - Túl sok paraméter: Egy függvény túl sok bemenetet igényel + +SOLID alapelvek alkalmazása +A SOLID alapelvek segítenek az objektumorientált kód struktúrálásához: + - S: Egyszeri felelősség elve - Egy osztály csak egy dolgot csináljon. + - O: Nyitott zárt elve - Egy osztály legyen nyitott a bővítésre, de zárt a módosításra. + - L: Liskov helyettesítési elv - Egy származtatott osztály helyettesíthető legyen az alaposztályával anélkül, hogy a program helytelenül működne. + - I: Interfész-szegregációs elv - Az interfészek legyenek kisebbek és specifikusabbak, hogy az implementáló osztályok ne legyenek kénytelenek fölöseges metódusokat megvalósítani. + - D: Függőség-inverzió elve - A magas szintű modulok ne függjenek alacsony szintű moduloktól, mindkettő absztrakciótól függjön. \ No newline at end of file