Month: May 2017

Niepisane (już spisane) zasady w projekcie C#

Posted on Updated on

Chciałem po prostu spisać dla potomnych rzeczy które dotychczas może nie były spisane.
Będą dopisywane nowe.

  • nazywanie zmiennej “_” oznacza, że ta zmienna jest nieistotna i pomijamy ją w dalszym kodzie, mimo że musimy jej użyć. Najczęściej pojawia się w lambdach, ale jest też kilka przykładów w pozostałym kodzie, np:

    static readonly ConcurrentDictionary<string, UserModel> LoggedInUsers;
    
    public static void Unsubscribe()
    {
        UserModel _;
        LoggedInUsers.TryRemove(Login, out _);
    }
    

* Przeczytana i zrozumiana książka Clean Code, Czysty kod
* R# nie sugeruje zamieniania na var.
* nie używamy ref i out.
* brak zakomentowanego kodu, jeśli coś kiedyś byśmy potrzebowal, to do tego służy system kontroli wersji (git)
* korzystanie z tooli (R#, StyleCop etc), jeśli jakaś reguła może być automatyczna to ludzie nie powinni tracić czasu na ręczne (mentalne) Code Review.

Jak sprawdzić jakie znaki końca linii (Line Endings) są w zdalnym repozytorium

Posted on

Ustawić globalnie aby autoCrlf było takie że nic nie zmienia znaków końca linii (“core.autocrlf” is set to “false”).
Wywalić plik .gitattributes z repozytorium.

Sprawdzić co dostaniemy po git clone.

Nazywanie nieużywanych parametrów _ a StyleCop

Posted on Updated on

Gdy użyjemy _ jako nazwy parametru w metodzie to dostaniemy warning SA1313 (The name of a parameter in C# does not begin with a lower-case letter.). Zdarza mi się taki kod gdy implementuje abstrakcyjną metodę która akurat w danej klasie nie używa jakiegoś parametru. I niestety StyleCop krzyczy.

Rozwiązałem to w ten sposób że ignoruję globalnie tą regułę. Jeśli gdzieś indziej w kodzie ktoś nazwie parametr _table_length to Resharper mi wyłapie ten błąd i zasugeruje poprawę.