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:

  1. Funkcje powinny mieć mniej niż 4 parametry
  2. 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).
  3. 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.