Hatosnál a pötty!
A boolean arra jó csak, hogy eltárold, valaki férfi-e vagy sem.
Gazdag?
- Igen
- Nem
- Talán
- Hátha
- Na de mi van, ha mégsem?
Igaz, amit többen írnak fent (boolean igaz/hamis jelentésű, vagyis ebből a szempontból helytelen), de az is igaz, hogy alapesetben egy olyan elem, aminek két értéke van, ebből a szempontból az egyik érték reprezentálhatja a nőt és a másik a férfit.
Programozásban használnak 1/0 jelöléseket digitális állapotokra, különösen hardver-közeli környezetben, pl. nyitva az ajtó/ablak vagy zárva, van benne víz vagy nincs, aktív egy vészjelzés vagy sem.
Mindez jól működik addig, amíg bármilyen dolognak, de két állapota van (akár az, hogy piros vagy zöld).
Ebből a szempontból érdekes kérdés lehet, hogy hányféle nem létezik.
Normál esetben biológiailag létezik a nő és a férfi (XX és XY kromoszómával), ez külső nemi jelleg alapján egyértelmű szokott lenni - de még ez sem igaz, mert született már olyan ember, akinek pl. kétféle nemi szerve is volt... vagyis itt már bukhat a boolean.
Reálisan nézve még alapesetben is adott a nő, a férfi és a nem ismert (pl. nem nyilatkozott) variáció, ami nem tárolható boolean-ként.
Ne azzal magyarázzuk, hogy valami nem tárolható boolean-ként, mert meglétet/hiányt ad meg. Bármit megadhat, legyen az igen/nem, vizes/száraz, nagyobb vagy kisebb 10-nél, stb.
Azt _NE_ magyarázzuk bele programozásba, hogy egyértelmű válasz esetén (ami itt nő/férfi akart lenni), akkor a 0-nak (false) vagy 1-nek (true) bármi jelentősége van a valóságra nézve. (Nincs!)
A boolean egy reprezentáció, a mögöttes jelentése pedig az, amit a programozó(!) szán neki, a végtermékben (program, webes felület, bármi), már nem ez a szám lesz, ami jelentéssel bír, hanem a hozzárendelt jelentés lesz érdekes.
Tehát nem azért mondhatjuk, hogy nem boolean, mert igen/nem filozófiába nem illik bele, hanem azért, mert nem kétállapotú az információ - legalább egy harmadik (nem ismert) információnak van jelentéstartalma.
De úgy hogy könyveli a hermafroditákat?
Akiknek a személyi száma 3-al kezdődik.
#14 - Ez nem feltétlenül jó hozzáállás. Sok esetben az olvashatóság nagyon sokat számít, és a business domain már az adatszerkezetekben megjelenik. Így válhat egy "gender" vagy "sex" mező integerré (még akkor is, ha C# kódban még enumerált típus) Sőt, tovább megyek: sok esetben születik meg az a döntés, hogy egyébként enum típusú mezőt sztringként tárolunk, részint a rugalmassága, részint az olvashatósága miatt - az ilyen adatok előbb utóbb valamilyen adatbázisba kerülnek, és ott a "0-1-2-3-..." helyett az "unknown, male, female, nonbinary" értékek olvashatóbbak, a plusz tárigény pedig a legtöbb esetben egyszerűen nem akkora, hogy megérje elkódolni a mezőt ennél tömörebben.
Illetve a logikai változók névkonvenciója általában úgy néz ki, hogy "IsSomething" - márpedig az "IsGender" teljesen mást jelent, mint a "Gender" Elannyira, hogy egyes IDE-k beépített kódgenerátorai eleve ilyen néven hozzák létre a változókat. Ez persze másodlagos szempont, de rámutat, hogy a két lehetséges értékkel rendelkező változókat nem célszerű logikai értékként tárolni.
Ilyen lehet pl. egy "Maturity" nevű változó, aaminek az értéke lehet "child" és "adult". Logikai változóként már IsAdult és IsChild neveken él meg.
A szoftverfejlesztés egy igen nagy része a helyes nevek megtalálása. Az a névkonvenció a helyes, amelyik a legjobban illeszkedik az üzleti modellhez, és nem erőszakolja azt meg.
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!