Kezdőoldal » Számítástechnika » Programozás » Miért van sok programozó azon...

Miért van sok programozó azon a véleményen, hogy ne használjunk globális változókat?

Figyelt kérdés
Pontosan miért baj az, ha a programunkban minden függvény hozzáfér egy változóhoz? Hiszen úgyis csak azokkal a függvényekkel fogjuk használni az adott változót, amelyekkel szeretnénk. Vagy talán a hackelhetőség szempontjából van jelentősége?

2017. máj. 5. 07:36
 1/10 anonim ***** válasza:
78%

Több szempontból is:

1. Feleslegesen foglalja a memóriát.

2. Nem látszik azonnal, hogy hol van használva.

3. Nem használhatod ugyanazt a változónevet máshol.

4. Hackelhetőség is.

2017. máj. 5. 07:47
Hasznos számodra ez a válasz?
 2/10 anonim ***** válasza:

Van olyan elv, hogy minden függvény és eljárás csak paraméterlistán keresztül kapjon adatot.

Szerintem a változók kezelése egy eszköz, amit a célnak megfelelően kell használni. Én (igaz nem vagyok programozó) széles határok között úgy gondolom, hogy a feladat megoldásáról szól a programozás, minden mást (programozási nyelv, technológiák stb.) ennek kell alárendelve lennie

2017. máj. 5. 08:48
Hasznos számodra ez a válasz?
 3/10 anonim ***** válasza:
Szabadon lehetne velük garázdálkodni, ami egy három-négy osztálynál nagyobb programban nehezen követhető.
2017. máj. 5. 09:24
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:
72%

Igazából úgy használod, ahogy akarod, a lényeg, hogy te magad átlásd.


Az már más kérdés, ha csoportban dolgozol másokkal ugyanazon a programon, nos akkor már fontos odafigyelned arra, hogy egyértelmű legyen. Hogy mások is átlássák a programot, de ebben az esetben minden eljárást is érdemes dokumentálni, azaz leírni, hogy milyen bemenőparaméterek vannak, és mit ad majd vissza, stb.


De az esetedben az első gondolatról lehet szó... :-)

2017. máj. 5. 10:59
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
100%

Az az egyik baj a globális változókkal, hogy nem tudod nyomonkövetni az értékének a változását. Ha sok függvény használja, módosítja, akkor nehéz megindokolni bizonyos app state-eket, nehéz róluk beszélni, gondolkodni.


A nagy előnye a pure function-nek (bemeneti paraméterben kap minden külső dependenciát, nincs mellékhatása), hogy biztosan tudod, hogy egy állapot hogyan és miből állt elő.


Ezen kívül globális változókat rémálom többszálasítani.

2017. máj. 5. 11:22
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:
90%

"Miért van sok programozó azon a véleményen, hogy ne használjunk globális változókat?"


Azért mert

1. OOP szemlélet az uralkodó. Itt pedig az egységbezárás, egységbe zárhatóság feltétele kell, hogy teljesüljön.

2. Azért, mert procedurális paradigma alkalmazása esetén is gusztustalan a kód. A globálok alkalmazása nem hiba, csak szemléleti kérdés, de könnyen lehet belőle hiba is, ha túlzásba viszik.

Globál minek oda, ahol szükségtelen?

Globálra miért kellene rálátnia minden függvénynek, ha ez szükségtelen?

2017. máj. 5. 13:14
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:
A globalizmus kártékony! :D
2017. máj. 5. 13:37
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
100%

Ez kis programokból nem látszik, de egy százezer soros kódban amikor hibát kell keresni, vagy refaktorálni kell, akkor irtózatosan megnehezíti a munkát, hogy nem látod át, melyik függvénynek és osztálynak mihez van hozzáférése. Nem csak a globális változókat érdemes kerülni, hanem az osztályok publikus változóit is, meg a függvény paraméterek nagy számát is. Sok pici, önálló, zárt függvényből és osztályból kell építkezni. Ez hosszú távon nagyban megkönnyíti a munkádat.


Természetesen a programozók egy jelentős része nem tart be számos fontos szabályt, ezért van az, hogy sok cégnél a teljes kódbázist 5 évente újraírják, mert kezelhetetlenné válik (nem lehet javítani és bővíteni).

2017. máj. 5. 13:41
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
#8 tudja, hogy miről beszél. Ott a pont
2017. máj. 5. 16:37
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
Jellemzően, sok helyen, gyakran használt, egy példányban létező objektumokat szoktam globális változóba elmenteni. Hogy sok memóriát foglal? Max abban az egy másodpercben. Értéket persze nem tárolok bennük.
2017. máj. 5. 19:08
Hasznos számodra ez a válasz?

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!