Ú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
- Poco F5 - pokolian jó ajánlat
- Kerékpárosok, bringások ide!
- Doky586: Windows telepítés utáni beállítások
- World of Tanks - MMO
- Vezetékes FEJhallgatók
- Amlogic S905, S912 processzoros készülékek
- AliExpress tapasztalatok
- Xiaomi 15T Pro - a téma nincs lezárva
- Windows 11: miért nem vált mindenki?
- BMW topik
- További aktív témák...
- Eladó G pro superlight 2 se Unusual way sports UHWM skate talpakkal.
- Fehér konfig - i7-4790k/ROG Strix GTX 1070/Wifi/Rengeteg új-dobozos alkatrész/AJÁNDÉK Resident Evil
- 3D 4K Oled Dolby Vision (LGOLED C6EP/LGOLED E6P/LG OLEDG6P)
- 3D 4K Oled Dolby Vision (LGOLED C6EP/LGOLED E6P/LG OLEDG6P)
- HP 150W töltők (19.5V x 7.7A) kis kék, kerek, 4.5 x 3.0 mm
- HP EliteBook 840 G9 i7-1265U 16GB 256GB 14" FHD+ 1 év teljeskörű garancia
- Xiaomi Redmi 10C 64GB, Kártyafüggetlen, 1 Év Garanciával
- Új Lenovo Thinkpad X1 2in1 Gen9 WUXGA Ultra 7 165U 12mag 32GB 512GB Intel Arc iGPU Win11 Garancia
- HIBÁTLAN iPhone 13 256GB Pink -1 ÉV GARANCIA - Kártyafüggetlen, MS3732
- Canon MG2450 multifunkciós nyomtató + új színes patron
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

