Hirdetés
- Milyen okostelefont vegyek?
- Fotók, videók mobillal
- Honor Magic8 Lite - a félig sikerült bűvésztrükk
- Xiaomi 15T Pro - a téma nincs lezárva
- Xiaomi 17 Ultra - jó az optikája
- Honor Magic8 Pro - bevált recept kölcsönvett hozzávalókkal
- Jolla és SailfishOS tapasztalatcsere
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Nagy aksival és erős hardverrel megjött Magyarországra a Poco X8 Pro és Pro Max
- Samsung Galaxy S26 Ultra - fontossági sorrend
Ú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
- 50 év után kilőtt négy űrhajós a Holdra
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- AliExpress tapasztalatok
- E-roller topik
- Abarth, Alfa Romeo, Fiat, Lancia topik
- Samsung Galaxy Felhasználók OFF topicja
- Alkotói pályázatok
- Milyen billentyűzetet vegyek?
- Life is Strange: Reunion - Íme a végleges gépigény
- Milyen okostelefont vegyek?
- További aktív témák...
- ELADÓ - Apple iPhone 14 Pro - 128gb
- Kiváló Thrustmaster T248 kormány + Posta! PS5 PS4 PC
- teljesen ÚJ Bontatlan Apple iPhone 17e 256GB ! 1Év nemzetközi APPLE GARANCiA
- ÚJ bontatlan Apple iPhone 17 Pro Max 256GB ! aktiválástól 1 ÉV nemzetközi APPLE GARANCiA
- Aorus RGB 16GB (2x8GB) DDR4 3333MHz GP-ARS16G33
- AKCIÓ! AsRock H510M i5 11400 16GB DDR4 512GB SSD RX 6600 8GB Zalman T4 Plus ADATA 600W
- iPhone 13 256GB 100% (1év Garancia) - ÚJ EREDETI AKKUMULÁTOR - AKCIÓ
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5600X 16/32/64GB RAM RX 7600 8GB GAMER PC termékbeszámítással
- 3440 x 1440 100Hz!!! 90W PD 34" CURVED 1500R Samsung S34A650UXU - 1 év garancia!
- Dell OptiPlex/ Hp EliteDesk /Lenovo ThinkCentre mini, micro PC/ 8.-9.-10.gen/ Számla/garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest


