Hirdetés
- Yettel topik
- iPhone topik
- Samsung Galaxy S25 Ultra - titán keret, acélos teljesítmény
- Redmi Buds 5 és Buds 5 Pro - feláron vagy féláron?
- Samsung Galaxy A54 - türelemjáték
- Az igazi Nokia örökébe lép egy legendás európai okostelefon
- Google Pixel 9a - a lapos munka
- Honor 200 Pro - mobilportré
- Xiaomi 15T Pro - a téma nincs lezárva
- Fele annyit ér az iPhone Air, mint amennyibe pár hete került
Ú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
- Autós topik
- PlayStation 1 / 2
- Kerékpárosok, bringások ide!
- Háztartási gépek
- 5.1, 7.1 és gamer fejhallgatók
- Linux haladóknak
- kraftxld: Diáklaptop - Dell Latitude 3140 - Királyunk ajándéka
- Debrecen és környéke adok-veszek-beszélgetek
- Yettel topik
- A fociról könnyedén, egy baráti társaságban
- További aktív témák...
- LENOVO IDEAPAD 1 15 - Ryzen 5 5500U, 15.6FULL HD, 512 GB, 16GB, LENOVO Premium Care garis
- Lenovo ThinkPad X13 Gen 4 i5-1345U 16GB DDR5 512GB SSD FHD+ Garancia 2027.11.10-ig
- HP EliteBook 640 G10 i5-1335U 16GB RAM 256GB SSD FHD Garancia
- Lenovo ThinkPad X13 Gen 2 i5-1145G7 16GB RAM 256GB SSD FHD+ gari.l 4g modem
- MSI Thin GF63 12UDX 15.6" FHD IPS i5-12450H RTX 3050 16GB 512GB NVMe magyar vbill gar
- Számlás!Steam,EA,Epic és egyébb játékok Pc-re vagy XBox!
- GYÖNYÖRŰ iPhone 12 Mini 128GB Blue -1 ÉV GARANCIA - Kártyafüggetlen, MS3852, 100% Akksi
- ÚJ HP ProBook 445 G11 - 14" WUXGA - Ryzen 5 7535U - 16GB - 256GB - MAGYAR - 2+ év garancia
- HIBÁTLAN iPhone 14 Pro Max 128GB Gold -1 ÉV GARANCIA - Kártyafüggetlen, MS3910, 100% Akksi
- UPDATE 11.13. HP üzleti laptopok Elitebook, Probook 4-13. gen gar.
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



