- Elképesztően drága az új Ryzen Threadripper PRO generáció
- Fujifilm X
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Bambu Lab 3D nyomtatók
- Milyen cserélhető objektíves gépet?
- Autós kamerák
- Milyen házat vegyek?
- Bluetooth hangszórók
- Iszonyatos mennyiségű hulladékkal járhat a Windows 10 terméktámogatásának vége
- CPU léghűtés kibeszélő
Ú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
- Elképesztően drága az új Ryzen Threadripper PRO generáció
- Fujifilm X
- Kerékpársportok
- Székesfehérvár és környéke adok-veszek-beszélgetek
- A fociról könnyedén, egy baráti társaságban
- Házi barkács, gányolás, tákolás, megdöbbentő gépek!
- Feltörték a PROHARDVER!-es regisztrációmat (vagy elvesztettem a belépési emailcímet, 2FA-t)
- Opel topik
- Bambu Lab 3D nyomtatók
- Milyen cserélhető objektíves gépet?
- További aktív témák...
- Nokia 105 4G (2023) charcoal, Nokia 110 4G (2023) midnight blue
- ASRock B550 PG Velocita + Ryzen 5 3600 + 32GB (4x8GB) DDR4 3600Mhz CL18
- Philips 58PUS8505 Smart LED Televízió,146 cm, 4K Ultra HD ,Android, Ambilight, HDR10+ KIJELZŐHIBÁSAN
- Canon EOS 250D kiegészítőkkel, táskával (CSAK 200 expoval !!! )
- Lenovo Legion Go 512GB + rengeteg extra!
- Wilbur Smith könyvek (15 db) egyben
- Konzol felvásárlás!! Playstation 5, Playstation 5 Pro
- BESZÁMÍTÁS! Lenovo Legion 5 15ITH6H Gamer notebook - i7 11800H 16GB DDR4 512GB SSD RTX 3060 6GB W11
- PlayStation Plus Premium előfizetések
- LG 34WQ75X-B - 34" Ívelt IPS Panel - 3440x1440 2K QHD - 60Hz 5ms - FreeSync - USB Type-C 90W
Állásajánlatok
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest