V tomto článku bych se chtěl věnovat poměrně vyhledávanému tématu konvencí při psaní zdrojového kódu. Jedná se o způsob, jakým vývojář zapisuje zdrojový kód tak, aby byl snadno čitelný a přehledný. Toto se uplatňuje hlavně v prostředí, kde na projektu pracuje více lidí vzájemně sdílejících zdrojové kódy, ale i při psaní svého vlastního programu který používáte jen vy sami. Tím že budete psát kód čitelně usnadníte práci sobě i svým kolegům při pozdějším luštění zdrojového kódu.
1. Velká a malá písmena v názvech
Existují dva základní způsoby zápisu: Pascal case a Camel case.
Pascal case je způsob zápisu známý z jazyka Pascal. Spočívá v použití velkého písmena v prvním a každém dalším slově názvu, např. BeginInvoke, GetFileName, atd.
Camel case spočívá v použití malého písmena v prvním a velkého písmena v každém dalším slově názvu, např. customerOrders, tempFileName, atd.
Dříve se používal ještě způsob Hungarian notation (Visual Basic 6.0), který k názvu přidával předponu podle datového typu (strName pro proměnnou typu String, btnOK pro ovládací prvek Button atd.), tento způsob se však již nedoporučuje.
Názvy pouze s velkými písmeny je doporučeno používat pouze ve zkratkách, příkladem budiž System.IO nebo WebUI.
2. Maximální doporučená délka názvu
Z důvodu dobré čitelnosti by název neměl přesahovat délku přibližně 20 znaků. Viděl jsem zdrojové kódy, kde název metody běžně přesahoval 40 znaků.
3. Volba názvu
Při volbě názvu se snažte co nejlépe vystihnout účel.
Vyvarujte se stejných názvů, jako jsou jmenné prostory v .NET Frameworku (System, Collections, atd.).
Vyvarujte se stejných názvů jako jsou klíčová slova v daném jazyce (v případě Visual Basicu např. Erase, Error, MyClass...). Sice to lze (proměnnou můžete pojmenovat např. [String] s použitím hranatých závorek) ale silně se to nedoporučuje.
4. Doporučené pojmenování programových elementů
4.1 Třídy
- K pojmenování použijte podstatné jméno.
- Použijte Pascal case.
- Zkratky používejte s rozvahou.
- Nepoužívejte předpony (předpona C před názvem třídy, např. CCustomer)
- Nepoužívejte podtržítko (_).
4.2 Rozhraní
- K pojmenování použijte podstatné jméno nebo přídavné jméno vyjadřující chování (např. IDisposable).
- Použijte Pascal case.
- Zkratky používejte s rozvahou.
- Použijte předponu I.
- Nepoužívejte podtržítko (_).
4.3 Atributy
- Použijte Pascal case.
- Zkratky používejte s rozvahou.
- Za názvem použijte příponu Attribute (např. ObsoleteAttribute).
- Nepoužívejte podtržítko (_).
4.4 Výčtové typy
- Použijte Pascal case.
- Zkratky používejte s rozvahou.
- Za názvem nepoužívejte příponu Enum.
- Použijte jednotné číslo pro název běžných výčtových typů, množné číslo pro název výčtového typu který je tvořený bitovými hodnotami.
- Vždy použijte FlagsAttribute u výčtového typu tvořeného bitovými hodnotami.
4.5 Statické položky (Static Fields)
- Použijte Pascal case.
- K pojmenování použijte podstatné jméno.
- Snažte se používat statické vlastnosti místo statických položek.
4.6 Parametry
- Použijte Camel case.
- Snažte se aby název parametru odpovídal významu.
4.7 Metody
- Použijte Pascal case.
- Použijte slovesa pro název metody (např. Compute, Start, atd.)
4.8 Vlastnosti
- K pojmenování použijte podstatné jméno.
- Použijte Pascal case.
- Zvažte použití stejného názvu jako je datový typ (např. BackgroundColor typu Color, VIPCustomer typu Customer, atd.)
4.9 Události
- Použijte Pascal case.
- U delegátů obslužné metody použijte příponu EventHandler nebo Callback podle použití.
- Vždy použijte parametry sender (zdroj události) a e (parametry události), u třídy představující parametry události použijte příponu EventArgs.
- K pojmenování použijte sloveso (např. Clicked, Painting).
4.10 Jmenné prostory
- Použijte Pascal case.
- U krátkých zkratek (System.IO) lze používat velká písmena, u delších zkratek (HTML) se doporučuje Pascal case (Html).
- Ideální název jmenného prostoru je Firma.Produkt.Oblast, např. Microsoft.VisualBasic.Compatibility.
Česky nebo anglicky?
Záleží asi na každém, jestli se rozhodne používat pro názvy české nebo anglické výrazy. Já i mí kolegové používáme vždy anglické názvy a rozhodně bych to doporučil všem.
Microsoft FxCop
Microsoft FxCop je profesionální nástroj, který slouží vývojářům k analýze jejich zdrojového kódu ve smyslu dodržování obecných standardů při kódování. Tento nástroj je stažitelný zdarma a doporučil bych ho každému ať už začátečníkovi, nebo zkušenému vývojáři. Vzhledem k tomu, že FxCop údajně používá i sama firma Microsoft, nelze pochybovat o kvalitě tohoto nástroje.
http://www.gotdotnet.com/Team/FxCop/
Seznam zdrojů:
http://msdn2.microsoft.com/en-us/library/xzf533w0(vs.71).aspx
http://msdn2.microsoft.com/en-us/library/ms229002.aspx
http://en.wikipedia.org/wiki/Naming_conventions_%28programming%29