Hirdetés
- Melyik tápegységet vegyem?
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Először sikerült AI felskálázót integrálnia a Proton fő komponensébe a Valve-nak
- OLED TV topic
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Vezeték nélküli fejhallgatók
- Egérpad topik
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Raspberry Pi
- Itt a Microsoft szörnyprocesszora, ami 132 maggal tarolhatja le a felhőt
Ú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
- LEGO klub
- Tőzsde és gazdaság
- Xiaomi 15 - kicsi telefon nagy energiával
- Melyik tápegységet vegyem?
- Assetto Corsa Rally
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Bestbuy játékok
- iPhone topik
- AMD Ryzen 9 / 7 / 5 / 3 5***(X) "Zen 3" (AM4)
- Először sikerült AI felskálázót integrálnia a Proton fő komponensébe a Valve-nak
- További aktív témák...
- DELL latitude 5410 Tartós Üzleti Laptop 14" -70% i5-10210U 4Mag 8Gb 256GB SSD FHD IPS
- DELL latitude 5410 Tartós Üzleti Laptop 14" -70% i5-8365U 4Mag 8Gb 256GB SSD FHD IPS
- Apple iPhone 13 Pro Max 128GB,Újszerű,Dobozával,12 hónap garanciával
- Apple iPhone 14 128GB,Újszerű,Dobozával,12 hónap garanciával
- Samsung Galaxy Tab S6 Lite 64GB,Átlagos,Dobozával,12 hónap garanciával
- Xiaomi Redmi 15C / 4/128GB / Kártyafüggetlen / 12Hó Garancia / Null Perces Bontatlan dobozos
- Nintendo switch oled, Új,Dobozával, 12 hónap garanciával
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
- Jura Impressa S90 Automata kávégép 6 hónap Garancia Beszámítás Házhozszállítás
- BESZÁMÍTÁS! ASRock B450M R5 3500X 16GB DDR4 512GB SSD RTX 3050 8GB GameMax STORM Black EVGA 600W
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



