Diskuze: Jaký namespace použít
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.
Zobrazeno 5 zpráv z 5.
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.


Je to stejné jako když chceš třídit soubory na disku... Budeš dělat
složku kvůli 3 souborům?
Nebo si uděláš jen typové složky filmy, fotky, hry?
Namespace je od toho, aby předešel jmenným kolizím. Právě proto, například v C++ se nedoporučuje užívat:
using namespace std;
... protože můžeš nechtěně předifinovat nějakou funkci. (Není to samozřejmě jediná nevýhoda, ale nebavíme se o C++)
To stejné platí i v C#.
Představ si následujicí scénař. Otevřeš soubor a první řádky kódu vypadají takto:
using Project.Folder1;
using Project.Folder1.Folder1;
using Project.Folder2.Folder1;
using Project.Folder3.Folder1;
...
a ták dál...
Celkem robustní, že? Nepočítám namespace samotného .NET frameworku (Microsoft, System) a ostatních knihoven!
Existuje mnoho konvencí a názorů. Většinou, organizace namespaců, je preferencí týmu, ale, jelikož pracuješ jako jednotlivec, inspiroval bych se konvencí Microsoftu.
Napříkal:
System.IO - obsahuje vše, co se týče I/O operací.
System.Text - obsahuje vše, co se týče textu.
V tvém případě, nahraď "System" názvém tvého projektu.
Project
|--Services
|--Users
|--Files
Čili výsledný namespace by vypadal takto:
namepsace Project.Services
{
...
}
Jaké jsou výhody a nevýhody?
Výhody
Konzistence s mateřským frameworkem (.NET).
Nevýhody
Příliš subjektivní. Určitě se najdou lidi, kteří by s takovou volbou
nesouhlasili.
Když se používá druhý typ může to být pomalejší?
Myslím si, že ano (orientačně). Přeci jen, dodatek .Services jinému vývojáři alespoň dá najevo, že aplikace je tříděná do různých vrstv a navíc - je konzistentní.
Opět se zmínim, že volba namespacu je příliš subjektivní záležitost. Někteří pro celý projekt používají pouze jeden namespace. Druzí, vnímají namespace jako každou novou složku.
Ať zvolíš, co zvolíš, zůstaň konzistentní!
Zobrazeno 5 zpráv z 5.