Diskuze: Static vs instance
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Statiku používej jen v nejnutnějších případech. Skoro všechno se dá vyřešit bez statiky.
Ja pouzivam jen v pripade "rychlych" nastroju kde neni zapotrebi vytvaret celou instanci. Napriklad mam program pro praci s jednim HW, ze ktereho doluju data pomoci SNMP protokolu. Trida implementuje SNMP + OID. Kdyz potrebuju dostat napriklad teplotu tak je zbytecne vytvaret instanci tridy - zavolam jen statikckou metodu.
Neposlouchej nikoho, kdo ti bude tvrdit bez podrobnosti, ze nemáš používat statiku, nebo ji mas používat pouze v nejnutnejsich případech, takový člověk je pravdepodobne svázány OOP dogmaty, což je v tak skvělém multiparadigmatickem jazyku jako je c# velká škoda.
Statické metody jsou dobré, umožňují ti využít naplno funkcionální přístup tam kde se hodí a je to vesměs jediná možnost jak udělat skutečně správně a efektivnine doménový DAL. Statické metody ti obzvláště ve formě extension methods dávají ohromnou moc.
A právě proto, že statika dává ohromnou moc, by se měla využívat jen tam, kde je to nutné. Při neopatrném použití se programátor dostane do "sjaček" poměrně rychle a dost blbě se pak z toho bude dostávat...
Statika je skvělá třeba na helper metody, třeba když potřebuješ v
celé aplikaci specificky formátovat datum a pod.
Myslím, že obecně se dá říct, že se dá v pohodě používat na menší
pomocné celky bez závislostí.
Rozhodně není dobrý nápad ji používat na struktury, co uchovávají
nějaká data.
Bože, jak můžete říkat takové hlouposti. Hrajete si tu na SW architekty a DDD a stejně 95% vas ma v projektu Servisy, genericky repositare a service-locator UOW z anemickeho modelu... Tak jen pro informaci, právě ty metody z tech vašich service, jsou vhodné pro to existovat jako nějaká statická metoda. Třeba klidně jako extension metoda.
Mimochodem jeste jedna věc.. V clean codeu jdou třeba ještě tak daleko, ze mutace jsou jen statické metody, proto aby to byly pure metody..
Jak bys tedy řešil zmenšování obrázků a jeho ukládání, nebo třeba že zadaných hodnot vypočítání nějaké číslo. Metody by byly statické, nebo objektové?
Neočekáváš, že ti dám univerzální odpověď, že ne?
Třeba pokud by šlo o nějaký SW zaměřený na matematiku, třeba nějaký renderer, 2D/3D grafika, tak bych šáhnul po operátoru..
U matematických operací je to jednoduché, protože máš VŽDY 2 immutable hodnoty a vzniká ti 3. nová immutable hodnota.. nic bys nikdy neměl měnit, takže nějaká statická metoda je u matematických operací poměrně jasná volba a je jedno jestli je to klasická statická metoda, nebo třeba operátor.
klasické použití.-. vynásobení nějakého vektoru číslem atd..
C# má statické metody nad Math třeba pro různé matematické výpočty...
Pro zmenšování, zvětšování obrázků, opět zase nějaké statické metody na třídě Image2D atd.
Ono.. statické metodě předáš instanci v prvním parametru,,.. instanční metodě, se předá ta reference na instanci v prvním hidden parametru také.
je to rozhodně případ od případu a nikdo ti nedá jasný návod "používej tento přístup, nebo tento". neomezuj se, pokud nemusíš.
Zobrazeno 10 zpráv z 10.
