Jestem niedawnym absolwentem AI (około 2 lata), pracując przy skromnej operacji. Spadło mi (przede wszystkim dlatego, że jestem pierwszym „adoptującym” w dziale), aby stworzyć podstawowy (czytaj przydatny?) Dokument standardów kodowania C #.
Myślę, że powinienem wyjaśnić, że jestem prawdopodobnie najmłodszym inżynierem oprogramowania, ale nie mogę się doczekać tego zadania, ponieważ mam nadzieję, że faktycznie będę w stanie wyprodukować coś w połowie użytecznego. Przeprowadziłem dość obszerne przeszukanie Internetu i przeczytałem artykuły o tym, co powinien / nie powinien zawierać dokument standardów kodowania. Wydaje się, że to dobre miejsce, aby poprosić o kilka sugestii.
Zdaję sobie sprawę, że potencjalnie otwieram drzwi do całego świata niezgody na temat „najlepszego sposobu robienia rzeczy”. Rozumiem i szanuję niezaprzeczalny fakt, że każdy programista ma preferowaną metodę rozwiązywania każdego indywidualnego zadania, w wyniku czego nie chcę pisać niczego tak drakońskiego zakazu, aby stłumić osobisty talent, ale spróbować uzyskać ogólną metodologię i zgodzić się standardy (np. konwencje nazewnictwa), aby uczynić kod bardziej czytelnym.
A więc oto… jakieś sugestie? W ogóle coś?
p_strName
- robi to 10% mniej bolesne, gdy jesteś zmuszony do pracy z taką obrzydliwość. : oDodałbym do listy Code Complete 2 (wiem, że Jeff jest tu trochę fanem) ... Jeśli jesteś młodszym programistą, książka przydaje się, aby ustawić swój umysł w sposób, który stworzy podstawy dla najlepszych istnieją praktyki pisania kodu i tworzenia oprogramowania.
Muszę powiedzieć, że doszedłem do tego trochę późno w swojej karierze, ale to w dużej mierze decyduje o tym, jak myślę o kodowaniu i tworzeniu frameworków w moim życiu zawodowym.
Warto sprawdzić;)
źródło
Zasady Microsoftu są doskonałym punktem wyjścia. Możesz je egzekwować za pomocą FxCop.
źródło
Kusiło mnie, aby wprowadzić standard Microsoft StyleCop. Można to wymusić w czasie kompilacji. ale jeśli masz starszy kod, po prostu wymuś użycie StyleCop na nowym kodzie.
http://code.msdn.microsoft.com/sourceanalysis
Ostatecznie będzie miał opcję refaktoryzacji do czyszczenia kodu.
http://blogs.msdn.com/sourceanalysis/
źródło
Osobiście podoba mi się ten, który stworzył IDesign . Ale nie dlatego publikuję ...
Najtrudniejsze w mojej firmie było uwzględnienie wszystkich języków. Wiem, że moja firma nie jest w tym sama. Używamy C #, C, assemblera (tworzymy urządzenia), SQL, XAML itp. Chociaż będą pewne podobieństwa w standardach, to każdy z nich jest zwykle obsługiwany inaczej.
Uważam również, że wyższy poziom standardów ma większy wpływ na jakość produktu końcowego. Na przykład: jak i kiedy używać komentarzy, kiedy wyjątki są obowiązkowe (np. Zdarzenia inicjowane przez użytkownika), czy (lub kiedy) używać wyjątków, a kiedy zwracanych wartości, jaki jest obiektywny sposób określania, jaki powinien być kod kontrolera, a jaki kod prezentacji, itp. Nie zrozumcie mnie źle, potrzebne są również standardy niskiego poziomu (formatowanie jest ważne dla czytelności!). Mam po prostu tendencję do ogólnej struktury.
Kolejnym elementem, o którym należy pamiętać, jest wpisowe i egzekwowanie. Standardy kodowania są świetne. Ale jeśli nikt się z nimi nie zgadza i (prawdopodobnie co ważniejsze) nikt ich nie egzekwuje, to wszystko na nic.
źródło
Kiedy pisałem zarówno ten opublikowany dla Philips Medical Systems, jak i ten na http://csharpguidelines.codeplex.com, mogę być nieco stronniczy, ale mam ponad 10 lat na pisanie, utrzymywanie i promowanie standardów kodowania. Próbowałem napisać ten CodePlex z myślą o różnicach zdań i większość wprowadzenia poświęciłem na to, jak sobie z tym poradzić w Twojej organizacji. Przeczytaj go i przekaż mi swoją opinię .....
źródło
Zasady SSW
Zawiera niektóre standardy C # + o wiele więcej ... głównie przeznaczone dla programistów Microsoft
źródło
Nie zgadzam się - dopóki on tworzy dokument, najgorsze, co może się zdarzyć, to to, że wszyscy o nim zapomną.
Jeśli inne osoby mają problemy z zawartością, możesz poprosić ich o zaktualizowanie jej, aby pokazać, co wolą. W ten sposób nie masz nic do roboty, a inni mają obowiązek uzasadnić swoje zmiany.
źródło
Niedawno znalazłem Podręcznik programu Encodo C # , który zawiera pomysły z wielu innych źródeł (IDesign, Philips, MSDN).
Innym źródłem mogą być Wytyczne dotyczące programowania w języku Professional C # / VB .NET .
źródło
Jestem wielkim fanem książki Francesco Baleny „ Praktyczne wskazówki i najlepsze praktyki dla programistów VB i C # ”.
Jest bardzo szczegółowy i obejmuje wszystkie istotne tematy. Nie tylko podaje regułę, ale także wyjaśnia powód reguły, a nawet zapewnia anty-regułę, w której mogą istnieć dwie przeciwstawne najlepsze praktyki. Jedynym minusem jest to, że został napisany dla programistów .NET 1.1.
źródło
Cały nasz standard kodowania brzmi mniej więcej „Użyj StyleCop”.
źródło
Zobacz: http://www.noesispedia.com/post/2008/11/28/C-Coding-Guidelines-and-Best-Practices.aspx .
źródło
Muszę zasugerować dokument dotnetspider.com .
To wspaniały i szczegółowy dokument, który przyda się wszędzie.
źródło
Używałem już Juvala i to koniec, jeśli nie przesada, ale jestem leniwy i teraz po prostu podporządkowuję się woli Resharper .
źródło
Możesz sprawdzić to, 7 najważniejszych standardów kodowania i dokumentów z wytycznymi dla programistów C # / .NET http://www.amazedsaint.com/2010/11/top-6-coding-standards-guideline.html mam nadzieję, że to pomoże
źródło
Myślę, że powtarzam inne komentarze tutaj, że wytyczne stwardnienia rozsianego już połączone są doskonałym punktem wyjścia. W dużej mierze na nich wzoruję swój kod.
Co jest interesujące, ponieważ mój menedżer powiedział mi w przeszłości, że nie przepada za nimi: D
Masz przed sobą zabawne zadanie, przyjacielu. Powodzenia i zapytaj, czy potrzebujesz czegoś więcej :)
źródło
Standard opracowany przez firmę Philips Medical Systems jest dobrze napisany iw większości jest zgodny z wytycznymi firmy Microsoft: www.tiobe.com/content/paperinfo/gemrcsharpcs.pdf
Moje standardy są na tym oparte z kilkoma poprawkami i kilkoma aktualizacjami dla .NET 2.0 (standard Philips jest napisany dla .NET 1.x, więc jest nieco przestarzały).
źródło
Ja też śledzę Resharper. Również przewodnik wspomniany na blogu Scotta Guthrie http://weblogs.asp.net/scottgu/archive/2007/10/08/october-8th-links-asp-net-asp-net-ajax-silverlight-and-net .aspx i http://csharpguidelines.codeplex.com/releases/view/46280
źródło
W kodzie, który piszę, zazwyczaj kieruję się wytycznymi .NET Framework dotyczącymi projektowania publicznych interfejsów API oraz wytycznymi kodowania mono dla wielkości liter i wcięć elementów prywatnych . Mono to otwarta implementacja .NET i myślę, że ci faceci znają swój biznes.
Nienawidzę, jak kod Microsoft marnuje miejsce:
To, co może wydawać się dziwne w wytycznych Mono, to fakt, że używają tabulatorów z 8 spacjami. Jednak po pewnym czasie odkryłem, że w rzeczywistości pomaga mi to w pisaniu mniej zagmatwanego kodu, egzekwując pewnego rodzaju limit wcięć.
Uwielbiam też to, jak wstawiają spację przed otwierającym nawiasem.
Ale proszę, nie narzucaj niczego takiego, jeśli Twoi współpracownicy tego nie lubią (chyba że chcesz wnieść swój wkład w Mono ;-)
źródło