Styl kodowania dla projektu - soltys/hopnet GitHub Wiki
Celem dokumentu jest przekazanie informacji o przyjętych konwencjach, które obowiązują w całym projekcie.
Wstęp
Obowiązuje język angielski w kodzie! Język angielski dotyczy także komentarzy.
Poniższe terminy są bardzo ważne do zrozumienia, ponieważ są wykorzystywane w całym dokumencie.
- camelCase – słowa np. w zmiennej są rozdzielone poprzez użycie dużej litery. Pierwsza litera jest małą literą. Przykłady:
givenPassword, musicVolume, playerSpeed
- PascalCase - słowa np. w klasie są rozdzielone poprzez użycie dużej litery. Pierwsza litera także jest z dużej litery. Przykłady:
TankFactory, UserController, RoutingTests
- identyfikator - rozumiem przez to nazwa dla klasy, funkcji, interfejsu, zdarzenia (event), zmiennej.
Konwencje oparte na Design Guidelines for Developing Class Libraries
Ogólne zasady
Dobry identyfikator dokładnie opisuje przeznaczenie.
Przykład, nazwa dla właściwości w klasie, która zwraca prawdę lub fałsz w zależności czy obiekt może poruszać się poziomie
ŹLE:
ScrollableX
DOBRZE:
CanScrollHorizontally
Użycie 'X' jako osi X, nie jest jednoznaczne.
Nie używamy notacji węgierskiej.
Nie używamy podkreśleń, myślników, lub innych niealfanumerycznych znaków w identyfikatorach.
Checklista
Przed wysłaniem kodu do głównego repozytorium, kod powinien spełniać następujące wymagania:
- Funkcje powinny mieć mniej niż 4 parametry
- Nie powinno być żadnych zmiennych jednoliterowych (jedyną akceptowalną zmienną jednoliterową jest 'i', jeżeli oznacza ona słowo index oraz jest wykorzystywana wobec jednowymiarowej tablicy).
- Komentarz do kodu nie powinien wymagać zmian w przyszłości, np: jeżeli zmienimy nazwę funkcji, ilość parametrów etc.
Klasy
Nazwa klasy powinna zawierać rzeczownik i być zbudowana z rzeczowników.
(to nie jest reguła, sugestia) Nazwa klasy nie powinna kończyć się na 'er' Link w celu wyjaśnienia
Pomimo wielu przykładów znajdujących się w Internecie: pola klas (zmienne prywatne i chronione w klasie) mają nie mieć żadnych prefiksów.
Nie korzystać z publicznych zmiennych! Zamiast nich wykorzystać publiczne właściwości.
Nie korzystać z chronionych zmiennych! Zamiast nich wykorzystać chronione właściwości.
Tabela stylów pisania, dla klas:
- Nazwa klasy - PascalCase
- Publiczne właściwości - PascalCase
- Prywatne zmiennej w klasie - camelCase
- Chronione zmienne - camelCase
- Publiczne funkcje - PascalCase
- Chronione funkcje - PascalCase
- Prywatne funkcje - PascalCase
- Zdarzenia (event) - PascalCase
- Typy wyliczeniowe (enum) - PascalCase
- Wartości w typie wyliczeniowym - PascalCase
- Stałe Const - PascalCase
W skrócie: camelCase jest wykorzystywany tylko do zdefiniowania zmiennych klasy o dostępie prywatnym i chronionym.
Interfejsy – muszą zaczynać się od dużej litery I. Przykład: IDisposable
IEnumerable
ICloneable
Wyjątki – muszą kończyć się na słowie Exception. Przykład: FormatException
ArgumentException
DivideByZeroException
.
#Funkcje
Nazwa funkcji musi zawierać czasownik, nie powinno być więcej czasowników niż jeden.
Tabela stylów pisania, dla funkcji:
- Nazwa parametrów - camelCase
- Zmienna wewnątrz funkcji - camelCase
Styl nazywania funkcji został określony w dziale Klasa.