IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

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.

Aktivity
Avatar
Luboš Hnědý:25.7.2019 20:10

Zdravím programuji v .net core mvc a mám složku Services. Kde mám komunikaci s DB. Jak řešíte namespace?
Když je například takováhle struktura:
1.
Services
Users
Login - ...Services.Users
Files
Upload - ...Services.Files

2.
Services
Users
Login - ...Services
Files
Upload - ...Services

První možnost je, že potom musím přidat using přímo pro Services.Users.
Druhá možnost je, že přidám using na Services a můžu používat co chci.

Co používáte vy? Jaké jsou výhody a nevýhody? Když se používá druhý typ může to být pomalejší?
Předem díky za rady :)

Zkusil jsem: Nic moc jsem nezkoušel nevím jak přesně problém formulovat... Proto se ptám tady, kde mi už mnohokrát bylo odpovězeno.

Chci docílit: Snažím se dosáhnout správné funkčnosti.

 
Odpovědět
25.7.2019 20:10
Avatar
Odpovídá na Luboš Hnědý
Luboš Hnědý:29.7.2019 7:19

Někdo nějaké rady prosím?

 
Nahoru Odpovědět
29.7.2019 7:19
Avatar
Odpovídá na Luboš Hnědý
don.jarducius:29.7.2019 9:30

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?

Nahoru Odpovědět
29.7.2019 9:30
Ten kdo nechce hledá důvod, ten kdo chce hledá způsob
Avatar
Ilja Židkov
Člen
Avatar
Odpovídá na Luboš Hnědý
Ilja Židkov:29.7.2019 10:56

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í!

Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
29.7.2019 10:56
Avatar
 
Nahoru Odpovědět
3.8.2019 12:37
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 5 zpráv z 5.