Kezdőoldal » Számítástechnika » Programozás » OOP-ben miért kell a minél...

OOP-ben miért kell a minél szűkebb (lehetőleg privát) láthatóságra törekedni? Milyen veszélyforrásokat rejt magában, ha nem teszünk így?

Figyelt kérdés
2017. márc. 15. 12:19
1 2
 1/14 anonim ***** válasza:
2017. márc. 15. 12:23
Hasznos számodra ez a válasz?
 2/14 anonim ***** válasza:
Hogy egy nagyobb kódhalmazban mindent ugyanúgy hívnak, és 800 helyen van definiálva, és mind látható, és sok sikert, hogy le tudd fordítani a kódot.
2017. márc. 15. 12:34
Hasznos számodra ez a válasz?
 3/14 anonim ***** válasza:
házi?
2017. márc. 15. 12:41
Hasznos számodra ez a válasz?
 4/14 |Orfeusz| ***** válasza:

Amihez nem férnek hozzá kívülről, azt nem is lehet elrontani kívülről. A te kis programrészednek a működését ismered, készítsd fel minden lehetséges interakcióra, és akkor nem fog hibás működést mutatni.


Veszélyforrás: kusza kód, összeakadnak különböző függvények/változók, rosszul hívják meg a függvényeit, stb.

2017. márc. 15. 12:41
Hasznos számodra ez a válasz?
 5/14 anonim ***** válasza:
Hát mert ha én odamegyek hozzád és beállítom, hogy a szívritmusod az percenként 0 legyen, akkor meghalsz. És ez neked nem annyira esne jól. Sőt, így ellenőrzés nélkül azt is mondhatnám, hogy -5 legyen. Az ugye bár az adattípusnak megfelelő érték, de szemantikailag hibás.
2017. márc. 15. 13:44
Hasznos számodra ez a válasz?
 6/14 anonim ***** válasza:

Kicsi, zárt, önálló függvényekre és osztályokra van szükség! Az átláthatóságra kell törekedni! Iskolai feleadatokból persze ennek a haszna nem látszik, de egy több millió soros kódbázist átalakítani, vagy hibát keresni benne nagyságrendekkel nehezebb, ha nem egyértelmű első ránézésre, hogy melyik osztály/függvény mit csinál és mihez van hozzáfáráse. Nagyobb kódbázisokat rendszerint 5 évente újra szoktak írni olyan helyeken, ahol nem tartják be a clean code szabályokat. Egyszerűen a sok globális/publikus változó, a túl nagyra nőtt osztályok, programon keresztül-kasul lövöldözgetett delegate-ek olyan spagetti kódot eredményeznek, amin nincs élő ember, aki kiigazodik. Ilyenkor kikukázzák az egészet és kezdik előlről. Ez a rossz programozók és rossz munkahelyek ismertetőjegye.


Ügyelni kell még olyan dolgokra is, hogy:

Egy osztály/függvény csak egy bizonyos dologgal foglalkozzon.

Ne használjunk sehol se rövidítéseket, minden változó/függvény/osztály nevéből derüljön ki, hogy az mit csinál.

Lehetőségekhez mérten minden ismétlődő kódblokkot próbáljunk kiváltani egy hívható függvénnyel.

A kód mondatszerűen olvasható legyen. Csak azt a kód sort lássuk el kommentel, amiből nem látszik egyértelműen, hogy mit csinál.

Nyelvtől függően minden változó/property alapértelmezetten readonly, const, getter ... már azzal sok fejfájást meg tudunk spórolni ha törekedünk arra, hogy minden változó inicializáláskor kapjon csak értéket és később nem változhat az értéke.


A programozás főként csapatmunka. A kódodnak mások számára is könnyen érthetőnek kell lennie és az x évvel későbbi önmagad számára is, ha át kell írnod!

2017. márc. 15. 14:01
Hasznos számodra ez a válasz?
 7/14 anonim ***** válasza:

pl van a player. Health adattag és ha nem tervezek ezen az értékadáson biztonsági műveletet végrehajtani akkor felesleges hogy egy propertyn vagy metódus on keresztül történjen az értékadása ekkor lehet publikus nyugodtan.


A névütközés meg nem történhet mert player.Health és enemy.Health nem ugyanaz.


De kérdező ha nem rakod metódusban, ropertybe akkor ez a változó olyan értékeket is felvehet majd amilyet nem akarsz. Pl automatikusan növeled az életét egy ellenségnek másodpercenként 0.5 tel mert regenerálódik folyamatosan így ha nem kezeled le propertyben vagy metódusban azt hogy enemy. Health nagyobb e mint maxhealth akkor olyan nagyra nőhet az élete hogy képtelenség lesz megölni.


De ugye még mindig csinálhatsz olyat hogy előtte ellenőrzöd hogy kisebb e mint maxhealth és akkor továbbra is használhatod függvény nélkül és így is jó lesz de az ilyesfajta megoldások nehezen átláthatóvá teszik a kódot plusz logikátlanabb felépítésű lesz így ahogy egyre csak nagyobb lesz a progi úgy lesz egyre nehezebben karbantartható, újraértelmezhetőbb és átláthatatlanabb.

2017. márc. 15. 16:24
Hasznos számodra ez a válasz?
 8/14 anonim ***** válasza:
Előző vagyok plusz rengeteg plusz if lesz a kódodban szerte széjjel ahol használni akarod majd a health változót.
2017. márc. 15. 16:27
Hasznos számodra ez a válasz?
 9/14 anonim ***** válasza:
10 óra eltelt, és még senki sem adott jó választ erre a kérdésre.
2017. márc. 15. 22:14
Hasznos számodra ez a válasz?
 10/14 anonim ***** válasza:
Akkor bekopipésztelhetnél végre valami 5000 soros nyálas szart, attól biztos jobb lesz mindenkinek.
2017. márc. 15. 22:54
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:





Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!