Hirdetés
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- Xiaomi 15 - kicsi telefon nagy energiával
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Xiaomi 15T - reakció nélkül nincs egyensúly
- Motorola Edge 50 Neo - az egyensúly gyengesége
- Bemutatkozott a Poco X7 és X7 Pro
- Vivo X200 Pro - a kétszázát!
- Samsung Galaxy S20 és S20+ duplateszt
- Megtartotta Európában a 7500 mAh-t az Oppo
- Milyen okostelefont vegyek?
Ú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
- Konzolokról KULTURÁLT módon
- Energiaital topic
- Világ Ninjái és Kódfejtői, egyesüljetek!
- Vivo X300 Pro – messzebbre lát, mint ameddig bírja
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- One otthoni szolgáltatások (TV, internet, telefon)
- Milyen autót vegyek?
- Kerékpárosok, bringások ide!
- Battlefield 6
- Milyen videókártyát?
- További aktív témák...
- BESZÁMÍTÁS! MSI A620M R5 7600 32GB DDR5 512GB SSD RTX 3060TI 8GB Zalman Z1 Plus XFX 650W
- BESZÁMÍTÁS! Asus B450M R5 5500 16GB DDR4 512GB SSD RTX 2070 Super 8GB Zalman Z1 Plus Kolink 850W
- BESZÁMÍTÁS! Asus H410M i5 10500 16GB DDR4 500GB SSD GTX 1660Ti 6GB Zalman S2 TG N-Base 500W
- BESZÁMÍTÁS! ASUS H510M i5 11400F 16GB DDR4 512GB SSD RTX 2060 Super 8GB Zalman T4 Plus CM 500W
- BESZÁMÍTÁS! MSI Z690 i9 14900K 32GB DDR5 1TB SSD RTX 3090 OC 24GB Zalman Z1 PLUS Seasonic 750W
- Honor 400 Lite / 8/256GB / Kártyafüggetlen / 12Hó Garancia
- Eladó Oppo A78 5G 4/128GB / 12 hó jótállás
- iPhone 13 Pro emelt kapacitású 3330mAh diagnosztizálható akkumulátor, +ajándék ragasztó
- iPhone 13 mini emelt kapacitású 2520mAh diagnosztizálható akkumulátor, +ajándék ragasztó
- Eladó egy Clevo PA71HS-G i7 7700hq Gtx1070 Kérlek olvasd végig a hirdetést
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest
Cég: Laptopműhely Bt.
Város: Budapest



