Zalecane standardy kodowania .NET / C #? [Zamknięte]

19

Jakie standardy kodowania są według Ciebie ważne dla projektów .NET / C #? Może to być wszystko od radzenia sobie z nawiasami klamrowymi, odstępami i pedantrią. Albo może to być bardziej podstawowe pytania, takie jak to, co Przestrzenie nazw w .NET Framework, aby unikać, najlepszych praktyk z plików konfiguracyjnych itp

Staraj się unikać tworzenia postów, które są po prostu następstwem innych. Na przykład dobrze byłoby mieć jeden post koncentrujący się na nawiasach klamrowych. Nie potrzebujemy dwóch do obsługi jednego stylu w porównaniu do drugiego. Pomysł nie jest do głosowania dla standardu domowych, lecz ciałem, co należy myślał o przy tworzeniu standardów.

RationalGeek
źródło

Odpowiedzi:

29

Oto oficjalny Microsoft Guide na standardy kodowania .NET Framework w wersji 4.0.

Jeśli chcesz starszej wersji do 1.1, spróbuj tutaj .

I nie muszą śledzić to do „T”, jak mówią. Jednakże, w razie wątpliwości, jest to najlepsze miejsce do rozpoczęcia się być zgodne z obecnymi ramami .NET, co sprawia, że ​​łatwiej na wszystkich, bez względu na to, czy są one nowe dla danego projektu lub nie.

Ryan Hayes
źródło
3
Tak - nie może się nie udać dopasowując to, co używają ludzie, którzy tworzą oprogramowanie. Widziałem kilka wojen religijnych na tego typu rzeczy, ale kiedy jesteś ręką coś, co pozwoli swój własny kod, aby być spójne z ramami że wykorzystuje trzeba by mieć bardzo mocny argument, aby nie używać go. Jako bonus, narzędzia do analizy statycznej, które produkuje MS, są już dostrojone, aby szukać tych praktyk.
Todd Williamson
Czy mogę uzyskać informacje zwrotne na temat recenzji?
Ryan Hayes,
Czego nie śledzisz?
JeffO
Jest tam wiele rzeczy, których jeszcze nie zapamiętałem. Zamiast więc powiedzieć, że dokładnie to przestrzegam (a nie wiem, że tak robię, więc może to być prawda lub nie), po prostu mówię, że nie, haha. Gdybym wiedział wszystko, prawdopodobnie bym to zrobił.
Ryan Hayes,
10

Może chcesz rzucić okiem na StyleCop . Możesz nawet włączyć go do niektórych systemów kompilacji, aby błędy stylu przerwały kompilację. Ustawienia domyślne są w większości zgodne z tym, co MS sugeruje dla wytycznych (zamieszczone przez innych).

Możesz także zmienić reguły, które są domyślnie dostarczane.

Steven Evers
źródło
4

Zacznij od FxCop . Poinformuje cię o najlepszych praktyk naruszeń w istniejącym kodzie.

Victor Hurdugaci
źródło
FxCop patrzy na pliki binarne, nie powie ci o stylu kodowania, ale zauważy pewne problemy.
Steve
2

Metody powinny być krótkie

Większość metod powinna wykorzystywać większość pól w klasie.

Wybierz dobrze swoje imiona.

Np. Przeczytaj książkę Clean Code

Ian
źródło
2

Korzystam z następujących aplikacji, aby utrzymać standard kodowania oprócz reguł camelback, nazwy metody itp.

GhostDoc - Dodaje automatycznie wygenerowany komentarz na górze każdej metody. Aplikacja zapewnia dobre wstępne podsumowanie metody. (darmowy)

http://submain.com/products/ghostdoc.aspx

Resharper - analiza i refaktoryzacja kodu http://www.jetbrains.com/resharper/

StyleCop - jako ostatnie sprzątanie przed odprawą w TFS. (darmowy)

http://code.msdn.microsoft.com/sourceanalysis

Nickz
źródło
1

Nienawidzę ustalonych standardów kodowania, wszystkie zajmują się albo mówieniem ci, żebyś nie popełniał kilku głupich błędów, albo mówieniem ci, jak sformatować kod w ten czy inny sposób. Wszystkie to błahostki.

To znaczy, powiedzą ci, ile spacji należy wstawić między operatorami, jak rozróżniać zmienne, jakie prefiksy w stylu węgierskim używać (np. _ Dla członków), sprzeczne porady (np. Nie możesz nazwać klasy Cxyz, ale musisz zadzwoń interfejs Ixyz), jak układ kodu (umieścić zmienną w górnej klasie lub na dole)

Wszystkie są bezużyteczne na dużym obrazie.

Liczy napisać skuteczne, utrzymaniu i czytelny kod nie jest wymieniony w tych normach.

Na przykład: czy umieścić swoje zmienne w górnej lub dolnej części twojej klasie? Cóż, kogo to obchodzi - co ma znaczenie to, czy ciebie grupować zmienne ze sobą obszaru funkcjonalnego. Że sprawy (będziesz wiedzieć, to jeśli kiedykolwiek widział 20 zmiennych rozrzucone o miejsce).

Mówią, aby umieścić swoje nawiasów klamrowych w niektórych miejscach. Wielka rzecz! Mogę odczytać kodu zarówno w K & R i ANSI stylu bracketing, to nie ma znaczenia. Liczy się to, czy wszystkie klasy Window są w jakiś sposób różnicowane (na przykład z przyrostkiem Form, Dlg itp.), Aby można było zobaczyć, które pliki zawierają kod okna, a które są zwykłymi obiektami.

Rzeczy tak liczy znacznie więcej niż punkty drobnych, które zwykle zawierają normy. Nie wiem, dlaczego tak się rozwinęli, ale często są to po prostu mnóstwo reguł, które przeszkadzają w efektywnym i produktywnym kodowaniu.

Moje standardy starają się bardziej skupiać na organizacji kodu i plików. Mamy pewne standardy, które odnoszą się do miejsca, w którym pliki zostaną znalezione. Na przykład, dla osób niebędących deweloperami, mogą spojrzeć na jeden z naszych projektów i natychmiast wybrać potrzebne pliki dokumentacji. Podobnie staramy się ułożyć kod projektu w sposób podobny do innych projektów jako praktyczny (uwaga: jako praktyczny, a nie w mocno zakazany sposób, który może być nieodpowiedni przez cały czas) i zasadniczo staramy się opracować wytyczne dotyczące standardów, które można modyfikować w razie potrzeby.

W skrócie - są tam, aby pomóc nam pracować razem, a nie jako zbiór restrykcyjnych zasad, które zawsze muszą być przestrzegane.

gbjbaanb
źródło
1

Ostrzeżenie: pragmatyzm poniżej - pytanie to wydaje się być sformułowane w celu wywołania debaty na temat „właściwego” stylu kędzierzawego klamry itp. Nie marnuję czasu na te bzdury.

  1. Zainstaluj ReSharper , pozostaw domyślne, rób co mówi.

  2. Zysk - wszyscy w twoim zespole będą mieli ten sam styl, który będzie cholernie zbliżony do wytycznych Microsoft, tylko odbiegając od kilku punktów, w których standardy Resharper odzwierciedlają to, co jest rzeczywiście powszechnie stosowane w branży i są (prawdopodobnie) ulepszeniami.

Im mniej czasu twój zespół spędza na tworzeniu i odwoływaniu się do jakiegoś ogromnego dokumentu lub książki, czy też kłótni na temat curly bracesinnych nieczystości, tym więcej kodowania zostanie zrobione. ReSharper będzie wymuszał nazywanie i styl podczas pisania. Gotowy. End-of-debaty. Nic się spierać. Iść dalej.

To powiedziawszy, przeczytanie klasycznego Code Complete , pomoże im zrozumieć uzasadnienie stojące za standardami kodowania i zaoferuje wiele wspaniałych wskazówek na temat skutecznego przekazywania znaczenia za pomocą kodu - czego nie może zrobić dokument standardu ani program inspekcji.

Jeśli chcesz zwiększyć możliwości resharpera , dodaj StyleCop za pomocą wtyczki StyleCop for ReSharper. Jak wspomniano, będzie kilka drobnych konfliktów między wytycznymi MS a domyślnymi ustawieniami ReSharper. Po prostu poszedłbym na te z ReSharper. Ale niezależnie od tego, którą stronę weźmiesz, zapisz wyniki w pliku konfiguracyjnym ReSharper, udostępnij go zespołowi i gotowe.

(Nie, nie jestem płatnym klientem ReSharper, jestem tylko zadowolonym klientem. Oprócz wielu innych funkcji, obsługuje podstawowe problemy ze stylem bardziej opłacalnie niż jakikolwiek standardowy dokument lub system recenzji kodu - pozostawiając siłę roboczą na rzeczy, które mają znaczenie .)

DanO
źródło