- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Gurulunk, WAZE?!
- GoodSpeed: AMD Ryzen 9 9900X (100-100000662WOF)+ Samsung 990 PRO 2TB MZ-V9P2T0BW
- sziku69: Fűzzük össze a szavakat :)
- eBay-es kütyük kis pénzért
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- bitpork: Phautós tali a Balcsinál 2025 Augusztus 2 napján (szombat)
- gerner1
Hirdetés
Új hozzászólás Aktív témák
-
Peter Kiss
őstag
válasz
Speeedfire #9910 üzenetére
Static dolgok használata könnyen gyorsan spagetti kódot eredményez, fogalmad sem lesz, mi zajlik a rendszerben, tesztelhetőségről ne is beszéljünk.
A másik, hogy ha ezt a kérés során folyamatosan használod mondjuk 5 alkalommal, akkor ötször fog ez így lefutni?
Kódírás folyamán mindig érdemes lefektetni pár szabályt, amit betartasz, pl.:
static változóba nem rakok semmit, ami állapotot tárol (singleton is kinyírva)
static csak olyan lehet, ami valamilyen service-szel kapcsolatos (nálam ilyen a Path osztály, ez csak a mappák, fájlok neveit machinálja string-ként, az IsAdmin cuccod ilyesmi, de rossz a megközelítés*)Ezeket igyekszem mindig betartani, de a saját kis reflection kiegészítésem miatt én is tárolok dolgokat static változóban, de azok nem is változnak, amíg az osztály maga nem változik meg. Érdemes úgy tekinteni a static elemekre ilyen szempontból, mintha a PHP nem shared nothing elveket vallana.
---
Static cuccokkal van olyan gond, hogy simán keresztülhúzod az OO elveket. Most egy felhasználóról akarod megmondani, hogy admin avagy nem admin úgy, hogy gyakorlatilag kiszeded az egészet a rendeltetési helyéről, hiszen maga a User meg tudja mondani magáról az-e, ahogyan ez látszik is.
A kereted ad hozzáférést egy user nevű field-hez, az mi? Nem tudod egész véletlenül megmondani a rendszernek, hogy oda egy profibb objektumot toljon be? Mert akkor ennyi lenne: Yii::app()->user->admin; és nincs ez a static borzalom benne a rendszerben.Maga a design is lehet rossz: nem egy bit kell arra, hogy admin-e, hanem hegeszteni kell olyan Role rendszert, amibe ezt szépen bele lehet kódolni.
---
Én is használtam Singleton-t, de utána alig bírtam kiírtani a rendszerből, nagyon rossz ötlet. Nem tudom, mennyire jött át a dolog, de ha most nem, majd rájössz.
Új hozzászólás Aktív témák
- Eladó GAMER konfig! I7-12700E 512GB SSD 1TB HDD 16GB DDR5 RTX3080 10GB!
- Xiaomi Redmi Note 9 Pro 64GB, Kártyafüggetlen, 1 Év Garanciáva
- Samsung Galaxy Z Fold 5 (SM-F946B/DS) 512GB/12GB Icy Blue
- GYÖNYÖRŰ iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3133, 95% Akkumulátor
- HIBÁTLAN iPhone 13 mini 128GB Starlight -1 ÉV GARANCIA - Kártyafüggetlen, MS3131, 94% Akkumulátor
- Samsung Galaxy S24 Ultra / 12RAM 1024GB / Gyárifüggetlen / 12hó Garanciával
- Windows, Office licencek kedvező áron, egyenesen a Microsoft-tól - Automata kézbesítés utalással is!
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Microsoft Windows, Office & Vírusirtók: Akciók, Azonnali Szállítás, Garantált Minőség, Garancia!
- 12 GB-os DDR5 SODIMM laptop memória - garanciával
Állásajánlatok
Cég: FOTC
Város: Budapest