2009-12-10 8 views
7

Jeśli możliwe jest automatyczne formatowanie kodu przed i po zatwierdzeniu kontroli kodu źródłowego, kasowanie, porównywanie itd., Czy firma naprawdę potrzebuje standardowego stylu kodu?Jeśli możliwe jest automatyczne formatowanie kodu przed i po zatwierdzeniu sterowania źródłowego, kasowanie, porównywanie itd., Czy firma naprawdę potrzebuje standardowego stylu kodu?

Czuje się jak standardowe debat styl kodowania, które zostały szalejących od programowania rozpoczął się jak „umieścić uchwyt na następnej linii” lub „wciąć prawidłowo swoje (” nie są już niezbędne.

Zdaję sobie sprawę, w językach, gdzie biały przestrzeń jest ważna, ale diff będzie musiał ją rozważyć, ale w przypadku języków, w których styl jest osobistym preferencją, naprawdę trzeba się o to martwić?

+0

To jest meta dyskusja i naprawdę należy do meta.stackoverflow.com – Josh

+10

@Josh, nie sądzę. Pytanie nie dotyczy StackOverflow. –

Odpowiedz

5

Auto-Format naprawdę może zająć tylko spacje.

Nie zajmie się programistami podającymi zmienne dziwacznych bezsensownych nazw. Nie zajmie się niektórymi programistami posiadającymi funkcje zwracające wartość null w przypadku błędu vs wyrzucenie wyjątku.

Jestem pewien, że inni mogą wymyślić więcej przykładów.

+0

Więc byłoby rozsądnie powiedzieć, że moglibyśmy przerwać wstawianie białych znaków w naszych przewodnikach stylów i włączać tylko kwestie, które mają prawdziwe znaczenie semantyczne, takie jak "Czy można wrzucić wyjątek dla kontroli przepływu"? – dennisjtaylor

0

Zawsze jest dobrze, jeśli styl kodowania używany przez sklep jest taki sam po którym następują narzędzia programistyczne:

W przeciwnym razie f istnieje duże ciała kodu, który już następujący standard sklep, który nie jest taki sam, jak w przypadku narzędzi masz dwie możliwości:

  1. modyfikować wszystkie kodu do naśladowania standardowe narzędzie lub
  2. Utrzymać istniejący standard sklepu.

Wiele sklepów robi to drugie. Niezależnie od tego, musi istnieć pewien standard i należy go przestrzegać.

Niektóre narzędzia programistyczne pozwalają na dostosowanie ich standardów. W niektórych przypadkach możesz mieć możliwość dostosowania narzędzi do standardu sklepu.

+0

Narzędzia deweloperskie w tych dniach są zazwyczaj konfigurowalne, dzięki czemu można dostosować styl kodowania. W związku z tym można by użyć tego narzędzia, używając standardu sklepu. – Robin

2

Nie, niezupełnie.

Jeśli możesz rzeczywiście sprawić, by działał konsekwentnie i nie sprawił, że kod flagi zmienił się z powodu innego stylu składania kodu.

Jest to jednak niewielka część standardów kodowania. Nie obejmie wielu instrukcji zwrotnych, użycia operatorów trójskładnikowych itp.

0

To już nie ma znaczenia, jeśli można zapewnić, że wszyscy w zespole widzą kod źródłowy "poprawnie" sformatowany, cokolwiek o tym myślą. Jednak nie widziałem systemu, który mógłby to zrobić - możesz zrobić jego część (powiedz, sformatuj przed i po checkin/checkout), ale w dzisiejszych czasach musisz również rozważyć interfejsy internetowe w systemach kontroli wersji, zewnętrznych systemach współdziałanie bezpośrednio z systemem kontroli wersji itp.

Głównym celem standardowego stylu kodu jest (IMHO), aby umożliwić łatwe odczytanie kodu innych członków zespołu bez konieczności rozpoczęcia inżynierii wstecznej, ponieważ cały kod jest zapisany stosując takie same zasady przewodnie. Umieszczanie wcięć i nawiasów wydaje się być poważnym rozłączeniem tego, ale są one tylko bardzo małe i moim zdaniem są nieco przesadzone i niezbyt ważne częścią potrzeby zapewnienia spójności kodu.

Niestety nie jestem świadom wszelkich narzędzi, które można automatycznie stosować spójne zasady kodowania do kodu źródłowego ...

3

Oto, co robimy w mojej pracy:

Wszyscy używamy Eclipse. Nie mamy zasad korzystania z Eclipse, ale jakoś żaden z nas nie jest typem IDEA/IntelliJ. Uważamy również, że nasz kod powinien zostać napisany z myślą o dziedzictwie. Oznacza to, że nasz kod musi być czytelny w pewien sposób nawet po latach (# 1) bez względu na to, kto to napisał i czy ta osoba jest już w firmie.

Eclipse ma kilka poręcznych funkcji, automatyczny format zapisu i konkretny Formatter tool. Jak widać na połączonym zrzucie ekranu, można go skonfigurować za pomocą XML. W związku z tym istnieje grupa wstępnie przygotowanych plików XML: s dostępnych dla każdego pracownika w naszej firmie, tak więc gdy pojawia się nowy facet, przeprowadzamy go przez cały proces i konfigurujemy jego Eclipse (tak, to jest trochę zła rzecz, aby zrobić) tak, aby faktycznie używał formatowania XML: s, które dostarczyliśmy. Robimy , a nie wymuszamy automatyczny format zapisu, nie chcemy być całkowicie inwazyjni, chcemy tylko popchnąć wszystkich naszych programistów we właściwe kierunki. Aby zwiększyć kompatybilność, używamy głównie reguł zdefiniowanych w JCC.

Następna jest ważna część, rzeczywiste kompilacje. Jesteśmy tymi, którzy korzystają z automatycznych buildów i do tego używamy Hudson Continuous Integration Server. W naszych konfiguracjach są dwie ważne części:

Checkstyle Plugin jest magik w naszym stylu kod prowadzącej egzekwowanie line:

  1. Po popełnienia kod do CVS, Hudson kompilacji jest wyzwalane
  2. Po budowa została zakończona pomyślnie (wszystkie testy jednostkowe pass itp.), Checkstyle sprawdza rzeczywiste pliki źródłowe
  3. Checkstyle klasyfikuje reguły oparte na kodach, które dla niego zdefiniowaliśmy
  4. Ciągła integracja acji Gra widzi wynik Checkstyle i nagrody/gładzi punktów dla osoby, która ma prawo własności do odpowiedniej części kodu
  5. Liderów pokazuje sumę punktów za każde commiter w systemie

Zasadniczo oznacza to, że kiedy ktokolwiek popełnia brzydki kod w naszym CVS, nasz serwer kompilacji automatycznie redukuje punkty tej osoby.

Oznacza to, że ostatecznie każdy z nas może znaleźć się na liście rankingowej w oparciu o ogólną jakość kodu zarówno w wyglądzie, jak i zasadach OO, takich jak Prawo Demeter, Złożoność cykliczna itd. Oczywiście nie jest to całkowicie poważne statystyki, ale jest to dobra wskazówka, że ​​robisz coś złego, gdy inicjacja kompilacji w naszym CI nie zmniejszy twoich punktów - większość naszych zobowiązań jest warta od 1 do 5 punktów.

Czy to działa?Tak, nie sądzę, że ktokolwiek z nas w mojej pracy pisze brzydki lub nieosiągalny kod i osobiście uwielbiam polować na wszystkie rodzaje wyników, więc zdecydowanie motywuje mnie do stworzenia kodu, który wygląda ładnie i podąża za wszystkimi paradygmatami OO, które znam.

Czy my jako firma naprawdę tego potrzebujemy? Myślę, że robimy, co powinieneś zobaczyć czytając tę ​​całą odpowiedź, można ją uważać za dobrą praktykę w zakresie osiągnięć, jakie przynosi.


#1: w pokrewnej notatki, ja refactored kod starszego od 2002 dzisiaj, który korzystał tych norm, nie patrzeć „zły” w ogóle, nawet w jego pierwotnej formie i na pewno nie gorszy w swojej nowej formie

0

Tak, style kodowania są potrzebne, jeśli istnieje potrzeba posiadania jednorodnej podstawy kodu. Taka podstawa kodu może być przydatna w zapobieganiu indywidualnemu posiadaniu części bazy kodu, co może powodować problemy, gdy ludzie opuszczają zespół. Jeśli nie potrafisz sobie wyobrazić, że masz różne style i problemy ze zrozumieniem tego wszystkiego, po prostu spójrz na różne sposoby, w jakie tekst angielski może być zorganizowany w różne komunikaty, wszystkie napisane, ale zupełnie inne, takie jak tweety, e-maile, wiadomości tekstowe, komunikatory , posty na forum itp. i zmiany w czcionkach, wielkie litery, dekoracje itp.

Powiązane problemy