[StyleCop] od jakiego zestawu reguł wystartować

Korzystam ze StyleCopa od ładnych kilku lat. Zapewnia statyczną analizę kodu pod względem stylu (nie do końca tylko stylu ale to jest aspekt, na którym się skupiam). Jest to niezbędne narzędzie gdy stosuje się Code Review. Po prostu szkoda czasu i ludzkiej cierpliwości, żeby ręcznie wytykać komuś coś, co może wychwycić narzędzie. Preferowany sposób korzystania to poprzez StyleCop.Analyzers

Dzisiaj chciałbym podzielić się zestawem reguł, który w różnych projektach stosuję od lat. Pod to stworzyłem repozytorium https://github.com/kmorcinek/dotnet-tools-settings i plik StyleCopDefault.ruleset

example stylecop ruleset

Każda ignorowana reguła jest opisana, przykłady:

SA1611 - ElementParametersMustBeDocumented (no required documentation)
  • jeśli ktoś uważa, że przyda się komentarz to może dodać, ale nie można tego wymuszać, bo większość byłaby trywialnymi komentarzami, które nic nie wniosą.
SA1202 - ElementsMustBeOrderedByAccess, similar to SA1204 (assume couple of public methods in class, I want to have private methods used by a public method just below this public method, not below all other public methods)
  • zbyt na siłę, tak jak opisałem – nie sprawdza się.
SA1309 - FieldNamesMustNotBeginWithUnderscore (private fields should begin with underscore)
  • akurat w C# jest konwencja, żeby tak rozpoczynać od podkreślenia (a przynajmniej ja wolę to niż zaczynać prywatne pola od this)

Zostaję z dwoma pytaniami:
* czy wszystkie „Warning” przerobić na „Error” – zwracam się ku temu, ale na razie zostaje jak jest.
* czy dodać do pliku wszystkie, wszystkie reguły i ustawić na „Warning” („Error”) – będzie to może łatwiejsze w utrzymywaniu/zmienianiu w przyszłości i łatwiej będzie się włączało/wyłączało pojedyncze reguły.

Nie wszystko jest włączone z defaultu

Dotychczas myślałem (gdzieś przeczytałem) że wszystko co nie pojawia się w pliku konfiguracyjnym jest „włączone”, okazało się że nie wszystko, a prawie wszystko: StyleCopAnalyzers Status

To nie jest ostateczna wersja

Nie wszystkie te ustawienia są dla mnie ostatecznym wyznacznikiem co i jak robić. Pewnie w jeszcze innym projekcie coś włączę, coś wyłączę i to samo dotyczy Ciebie czytelniku. Jest to pierwsze miejsce gdzie się tym dzielę, więc zapraszam do podrzucania własnych ustawień i przemyśleń. A jeśli jeszcze nie masz wyrobionego stylu to znalazłeś gotowca:), daj mu szansę przez jakiś czas.

PS w kolejnych postach opiszę jak wprowadzać to w istniejący projekt, oraz jak ignorować czasem niektóre reguły.

4 Comments on “[StyleCop] od jakiego zestawu reguł wystartować

  1. Pingback: dotnetomaniak.pl

    • @Łukasz a masz porównanie w praktyce? Czytałem o .editorconfig kiedyś i mam wrażenie że jest crosseditors więc na wielu edytorach da mi to same podstawowe formatowanie. A StyleCop da mi bardziej wyszukane w C#.

Skomentuj

Wprowadź swoje dane lub kliknij jedną z tych ikon, aby się zalogować:

Logo WordPress.com

Komentujesz korzystając z konta WordPress.com. Wyloguj /  Zmień )

Zdjęcie na Google

Komentujesz korzystając z konta Google. Wyloguj /  Zmień )

Zdjęcie z Twittera

Komentujesz korzystając z konta Twitter. Wyloguj /  Zmień )

Zdjęcie na Facebooku

Komentujesz korzystając z konta Facebook. Wyloguj /  Zmień )

Połączenie z %s