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.
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.