„Zalecana” długość pliku i szerokość linii [zamknięte]

9

Byłem ciekawy, czy ktoś wiedział o rekomendacji z renomowanego źródła dla maksymalnej liczby linii kodu dla danego pliku. Na przykład Google Closure Linter zaleca, aby każda linia nie przekraczała 80 znaków.

Devin G. Rhode
źródło
Twój przykład jest niezgodny z pytaniem. Twoje pytanie dotyczy linii w pliku, a twój przykład to liczba znaków w linii.
Jason S
2
To ta sama koncepcja - kwadratowy obszar, który musisz przewijać, czy to w poziomie, czy w pionie.
Devin G Rhode

Odpowiedzi:

11

Plik powinien być na tyle krótki, aby można było znaleźć dowolną funkcję lub metodę bez wielokrotnego przewijania w tę iz powrotem, szukania go lub konieczności pamiętania szukanego ciągu. Metryka, której używam, to ilość czasu spędzonego na poszukiwaniu kodu w pliku w porównaniu do jego odczytu. Jeśli stanie się to zauważalne, czas ponownie podzielić plik lub klasę.

Dobry rozmiar podstawowego bloku kodu jest wystarczająco krótki, zarówno pod względem szerokości, jak i wysokości, aby można było wyświetlić jego wnętrzności podczas przeglądu kodu grupowego i dopasować go do siebie tak, aby czcionka nie była tak mała, że ​​facet z tyłu sala konferencyjna nie może tego odczytać. Rozmiar ten pomaga również, jeśli kiedykolwiek zostaniesz wezwany do wyjaśnienia jakiegoś kodu, gdy wszystko co masz przy sobie to urządzenie mobilne lub tablet.

hotpaw2
źródło
To jest najbardziej pomocna wskazówka, dziękuję bardzo!
Devin G Rhode
Czy istnieje zbyt krótka długość pliku ? Mam projekt z 35 plikami o średniej długości ~ 200 linii.
Dan
1
@ Dan zaryzykuję „nie” jako odpowiedź. Jeśli otwieranie pliku jest zbyt trudne w konfiguracji, być może czas poprawić jego konfigurację (tj. Wtyczki vim, lepsze IDE, cokolwiek robi emacs)
Mike Graf
@ Dan: Za krótki plik? Jest to możliwe, jeśli spędzasz więcej czasu na szukaniu poprawnego malutkiego pliku dla kilku LOC zamiast znajdowania ich w jakimś logicznie i ściśle powiązanym (ale niezbyt długim) pliku.
hotpaw2
9

Nie ma czegoś takiego, a gdyby tak było, byłoby wysoce zależne od tego, jakiego języka używałeś (robiąc to samo w asemblerze w porównaniu do C # lub Java).

W przypadku języków wyższego poziomu możesz zobaczyć dyskusję SO. W przypadku języka Java / C # Bob Martin zaleca maksymalnie 10-20 wierszy na metodę . Nie ma dyskusji na temat plików, ponieważ nie jest to istotne i zależy od tego, co klasa ma zrobić.

W odniesieniu do limitu 80 znaków na linię - jest to powrót do dni kart dziurkacza. Powiedziawszy to, gdy linie rosną zbyt długo, zmniejsza się czytelność.

Oded
źródło
5
+1: Dobrze jest mieć szerokość mniejszą niż 80 znaków; łatwiejszy do odczytania i daje więcej miejsca obok siebie
Donal Fellows
6
Osobiście uważam, że czytelność cierpi, gdy linia jest dzielona na wiele linii, aby zmieścić się w 80 lub mniej. Jest też czas stracony na podjęcie decyzji, gdzie zrobić przerwę lub kłótnię o to w tej sprawie.
ergosys
5

Długości pliku i linii są pomiarami wtórnych efektów złożoności i jako takie są bardzo zmienne. Powinieneś dążyć do kodu bez niepotrzebnej złożoności, a nie określonej maksymalnej liczby wierszy.

Długie pliki zwykle wskazują, że metody, podprogramy lub klasy są zbyt skomplikowane (wykonywanie zbyt wielu czynności, niewystarczające uwzględnienie itp.)

Długie linie zwykle wskazują, że wyrażenia są zbyt złożone.

Są to zapachy, które wskazują na potencjalny problem z kodem, nie są dobrze zdefiniowanymi docelowymi wskaźnikami.

Rein Henrichs
źródło
3

Długość linii powinna być taka, aby nie trzeba było przewijać ekranu, aby zobaczyć całą linię. To zależy od wielkości monitora i rozdzielczości.

Metody i funkcje są najlepsze, jeśli można zmieścić jeden ekran.

Pliki nie powinny być za długie. Najlepsze są krótkie pliki, w których łatwo jest zrozumieć klasę i implementację.
Kiedyś pracowałem nad projektem, który miał plik 10 klines. To było jak czytanie bardzo złożonej książki. Czy muszę powiedzieć, ile problemów spowodowało wdrożenie?

BЈовић
źródło
Kod nie powinien wymagać konfiguracji małego monitora z dużymi czcionkami, szczególnie w przypadku recenzji kodu grupy.
hotpaw2 30.10.11
„Długość linii powinna być taka, aby nie trzeba było przewijać ekranu, aby zobaczyć całą linię”. - co jeśli twój edytor się zawija?
Dan Dascalescu
3

80 znaków!

Pamiętam, że kiedy robiłem COBOL, widziałem pliki kodu źródłowego dla programów rozliczeniowych około 80 stron i więcej. Oczywiście nie widzę, że jest to prawie powszechna praktyka, ale 80 znaków jest równie niedorzeczne.

Z widoku wielkości klasy, jeśli spróbujesz zastosować tę sugestię do typowej klasy klienta, która ma około 80 właściwości i około 20 metod, będziesz musiał podzielić klasę na kilka innych i sprawić, że kod będzie naprawdę bardzo nieporządny.

Bez szans
źródło
1
Absolutnie. 80 znaków oznacza, że ​​możesz wydrukować sekcję kodu do burzy mózgów w rozsądnym rozmiarze czcionki na pionowym arkuszu A4 / Letter. Oznacza to również, że na rozsądnym monitorze komputerowym do programowania można wyświetlać trzy kopie kodu źródłowego obok siebie bez przewijania w poziomie w celu wykonania połączeń trójstronnych (zabawne, że 80x8x3 to 1920 * 8 ').
Mark Booth
2

Staram się, aby klasy i metody były krótkie, ale nie martwię się o długość linii. W dzisiejszych czasach szerokich ekranów i długich identyfikatorów uważam, że osiemdziesiąt znaków to zdecydowanie za mało. Złamanie instrukcji zajmuje trochę pracy, aby można je było łatwo odczytać, a przy limicie osiemdziesięciu znaków zdarza się to dość często. Myślę, że około 120 lub 130 kolumn w wierszu jest bardziej rozsądne.

Kevin Cline
źródło
Używam 22-calowych monitorów odwróconych pionowo, co daje mi 1080 pikseli na każdym ekranie (i pionowo, mogę wyświetlać 104 linie kodu jednocześnie!). Zachowanie szerokości linii do 90 lub mniej znaków jest pomocne w takich scenariuszach.
Roy Tinker,