2009-01-04 21 views
14

Pracuję dla firmy, która ma ścisłe wytyczne dotyczące stylu kodowania, ale nie ma automatycznego narzędzia do ich sprawdzania. Rozejrzałem się i jedyne narzędzia, jakie mogłem znaleźć, to narzędzia przypominające strzępki, które wydają się mieć na celu sprawdzenie, co robi kod, i zapobieganie błędom, a nie upewnianie się, że styl kodowania jest poprawny.Sprawdzanie stylu kodowania dla C

Jakiego narzędzia powinniśmy użyć, jeśli w ogóle?

UWAGA: Szukam czegoś dla kodu C, chociaż coś, co działa na C++, również byłoby dobre.

Odpowiedz

12

Tradycyjny przyrząd upiększający indent, dostępny na każdej maszynie Unix. Wersja znaleziona na niektórych to GNU indent, którą można skompilować i zainstalować na każdym komputerze. tiret GNU potrafi czytać zbiór reguł z pliku ~/.indent.pro, na przykład:

--original --dont-format-first-column-comments --no-blank-lines-after-commas --parameter-indentation 8 --indent-level 8 --line-length 85 --no-space-after-parentheses --no-comment-delimiters-on-blank-lines 

Tak właśnie działa wcięcie przed popełnienia gwarantuje jednolitość prezentacji. Jeśli chcesz, aby wymusić na nim, zdefiniuj hak pre-commit w używanym systemie kontroli wersji, który będzie działał wcięciem i odmawiał zatwierdzenia, jeśli zatwierdzona wersja różni się od tworzonego wcięcia.

10

Poszukujesz "code beautifier". Uncrustify jest wolna.

Musisz tylko opisać swój styl kodowania w pliku konfiguracyjnym i upewnić się, że każdy plik pasuje do opisanego stylu.

2

Sprzeciwiam się użyciu formalnego narzędzia tutaj. Najlepsze egzekwowanie standardów kodowania to presja ze strony rówieśników. Wzajemna presja i wzajemny szacunek pomiędzy członkami zespołu są kluczowymi elementami tego środowiska budowania zespołu ... nie inaczej, niż dobre nękanie, które jest konieczne, gdy ktoś nieumyślnie "przerywa budowę", itp.

Przegląd nowszych członków zespołu "Kod jest kluczową częścią procesu uczenia się i integracji z zespołem oraz uczenia się standardów kodowania, itp. Jeśli standard kodowania jest zbyt skomplikowany lub subtelny, aby można go było pobrać w ten sposób, zamiast szukać narzędzia do sprawdzenia poprawności standard, powinieneś szukać nowego standardu kodowania.

+1

Dlatego sugeruję zamiast tego upiększacz, który dostarczy pliki w wymaganym stylu zamiast walidatora, który nie przyniesie w ogóle nic dobrego. Możesz kodować w dowolnym stylu i przed odprawą uruchamiasz upiększacz, który spełni wymagania. –

+0

@ Vinko - Mógłbyś to zrobić i może to być pomocne dla osób pracujących w niepełnym wymiarze czasu lub dla importujących kod zewnętrzny, ale dla pełnoetatowych członków zespołu, naprawdę wierzę, że chcesz, aby wszyscy oni "myśleli w standardzie kodowania", aby uzyskać prawdziwą korzyścią posiadania standardu kodowania w pierwszej kolejności. –

+1

Nie można się zgodzić więcej. Przegląd kodu i dobrze udokumentowane standardy kodowania powinny wykonać tę pracę. – Ilya

4

Istnieje (lub było) wiele narzędzi do tego. Jednym z najstarszych jest cb (C Beautifier), który był wokół w dawnych wersjach systemu Unix - sposób, w tym przypadku, w wersji 7 Unix:

CB (1) UNIX Programmer’s Manual CB (1) 

NAME 
    cb – C program beautifier 
SYNOPSIS 
    cb 
DESCRIPTION 
    Cb places a copy of the C program from the standard input on the standard 
    output with spacing and indentation that displays the structure of the 
    program. 
BUGS 

GNU indent jest znacznie bardziej skomplikowany i konfigurowalny beastie. Były też narzędzia komercyjne. Na przykład, Abraxas Software zapewnia narzędzie CodeCheck, na przykład; użyliśmy tego krótko w połowie lat 90., ale zmiany, które chciały wprowadzić, były (bardzo konieczne, ale) zbyt nachalne dla zarządzania.

9

AStyle robi to, co chcesz:

artystyczny styl jest kod źródłowy wgłębnik, formater i beautifier dla C, C++, C# i języków programowania Java.

Dla Eclipse dostępny jest AStyle Plugin.

Eclipse ma również program do formatowania kodu, ale nie jestem pewien, czy działa on w CDT.

2

Z podobnego pytania: Vera++: "Vera ++ może służyć do wyszukiwania naruszeń stylu kodowania i konwencji." Istnieje bezpłatna edycja społecznościowa, a "wszystkie jej reguły są implementowane jako skrypty (Tcl), które mogą być modyfikowane lub dodawane przez użytkownika".

-7

Użyj VIM i ciesz się łatwością. Możesz wykonywać wszystkie czynności związane z programowaniem źródłowym za pomocą prostych poleceń. Możesz także zwiększyć niezawodność i moc VIM, edytując plik .vimrc. Pomoc w tym pomoże ci bardzo.

/renjith g

+2

Zostajesz cofany, ponieważ pierwotne pytanie dotyczyło drukarki kodu lub sprawdzania stylu. Odpowiadasz za pomocą edytora tekstu. Różnica polega na tym, że edytor tekstu jest tam, gdzie piszesz kod, a sprawdzanie stylu sprawdza format kodu źródłowego niezależnie od używanego edytora tekstu. na przykład to jest sprawdzanie stylu: https://en.wikipedia.org/wiki/Checkstyle – elviejo79

2

Spróbuj UniversalIndentGUI, czyli owinięcie wokół GUI popularne wgłębników/beautifiers jak Uncrustify, stylu artystycznych, GNU wcięcie. Jego GUI i funkcja podglądu na żywo sprawiają, że bardzo łatwo wypróbować różne wcięcia, a kiedy już znajdziesz wgłębienie i konfigurację, którą ci się spodoba, możesz wyeksportować konfigurację lub nawet wyeksportować skrypt powłoki. Świetnie, jeśli nadal próbujesz.