Czy limit 80 znaków jest nadal istotny w czasach monitorów szerokoekranowych? [Zamknięte]

56

na monitorze szerokoekranowym można łatwo zobaczyć więcej niż 80 znaków jednocześnie, bez pasków przewijania. nawet linus torvalds uważa limit 80 znaków za przestarzały .

więc czy limit 80 znaków nadal obowiązuje w czasach monitorów szerokoekranowych?

lesmana
źródło
1
Jest bardzo dobry powód, aby skracać linie np. W Eclipse. Umożliwia to drukowanie programów na zwykłej drukarce czcionką czytelną bez zawijania linii.
W jakim kontekście? Jeśli pytasz w konkretnym kontekście programistycznym, głosowałbym na ponowne otwarcie.
Nicole,
Zawijanie wyrazów w programie Visual Studio jest zepsute, więc większość użytkowników go wyłącza. Zamiast tego ręcznie ustawiają przerwy w linii. Wygląda to okropnie dla każdego, kto ma inną szerokość ekranu. visualstudio.uservoice.com/forums/121579-visual-studio/…
Pułkownik Panic

Odpowiedzi:

28

Istnieje kilka powodów, aby nadal przestrzegać limitu 80 znaków (lub limit 74 znaków jest jeszcze lepszy; pozwala to kodowi pozostać mniej niż 80 kolumn, nawet jeśli dodawane są znaczniki różnic i cytowanie wiadomości e-mail, jeśli przeglądasz kod na listy mailingowe).

Nawet w erze monitorów szerokoekranowych lubię mieć kilka otwartych okien obok siebie, pokazujących różne części kodu. Na przykład zazwyczaj mam przeglądarkę internetową i pocztę elektroniczną otwarte na jednym ekranie oraz dwa pliki i terminal otwarty obok siebie na drugim monitorze. Jeśli masz wiersze o długości ponad 80 kolumn, musisz poradzić sobie z tym, że edytor zawija je (co jest brzydkie i utrudnia poruszanie się po kodzie) lub poszerzasz okna tak, że nie zmieścisz tylu na ekranie pewnego razu.

Nawet jeśli zwykle nie edytujesz w ten sposób, jeśli kiedykolwiek korzystasz z narzędzia porównywania, docenisz pliki o rozsądnej długości linii, które ułatwią przeglądanie pliku diff.

Istnieje również problem z gęstością kodu. Lubię mieć duży kontekst podczas czytania kodu. O wiele szybsze jest przeglądanie okna niż przewijanie. Jeśli masz bardzo długie linie, często masz również linie o różnej długości, co prowadzi do wielu zmarnowanych nieruchomości ekranowych i jest w stanie zmieścić mniej kodu na ekranie w danym momencie ogółem.

I wreszcie, jeśli masz bardzo długie linie, oznacza to na ogół, że masz bardzo skomplikowane linie, głębokie oskarżenia lub że masz bardzo długie identyfikatory. Wszystko to może stanowić problem. Skomplikowane linie prawdopodobnie robią za dużo; jeśli możesz podzielić go na kilka prostszych linii, prawdopodobnie powinieneś. Głębokie wcięcie oznacza, że ​​prawdopodobnie zagnieżdżasz zbyt wiele pętli i instrukcji warunkowych, co może powodować, że przepływ kodu jest mylący; rozważenie refaktoryzacji na kilka funkcji. A jeśli twoje identyfikatory są zbyt długie, może to bardzo utrudnić odczytanie kodu. Ludzie na ogół rozpoznają słowa jako pojedyncze jednostki; nie czytają każdego znaku jeden po drugim, ale patrzą na ogólny kształt słowa. Długie identyfikatory są trudniejsze do rozróżnienia w ten sposób i zwykle, jeśli są takie długie, zawierają zbędne lub powtarzające się informacje.

Teraz, mimo że nadal dobrą praktyką jest utrzymywanie kodu poniżej 80 kolumn, nie jest to jedna z tych zasad, których należy przestrzegać religijnie, zmuszając się do dopasowania linii, gdy tak nie jest. Sugeruję, abyś starał się trzymać cały kod poniżej 80 kolumn, ale jeśli po prostu nie pasuje, nie przejmuj się zbytnio.

Brian Campbell
źródło
3
Zgoda. Jednak długie identyfikatory są czasami zachęcane (przez kodowanie wytycznych, takich jak „używaj znaczących nazw” lub „unikaj tajemniczych skrótów”) lub konieczne (np. std::vector<...>::const_iterator), Chociaż w tym drugim przypadku rzeczy zwykle można złagodzić za pomocą typedefs.
musiphil
Świetne powody. Nie jestem pewien, czy dokładna długość linii ma znaczenie, o ile Twój zespół (lub lista mailingowa?) Wyrazi na to zgodę. Osobiście wybieram sugestię wuja Boba, by nigdy nie przekraczać 120 znaków.
Allan,
1
@musiphil Tak, dlatego zawarłem ostatni akapit. Natknąłem się na wiersze w C ++, w których po prostu nie mogłem dopasować nazwy klasy, nazwy metody i typu zwracanego do jednej 80-kolumnowej linii podczas deklarowania metody. Zamiast robić naprawdę dziwne łamanie linii, lepiej po prostu złamać regułę 80 kolumn (lub 100 kolumn) dla tej jednej linii.
Brian Campbell,
46

Jeśli utrzymam moje wiersze do mniej niż około 100 znaków, mogę mieć dwa okna edytora obok siebie na szerokoekranowym monitorze. Bardzo przydatne jest, aby zarówno plik nagłówka klasy, jak i implementacja były widoczne jednocześnie, lub mieć kod po jednej stronie, który wywołuje kod po drugiej stronie. A jeśli utrzymam krótkie linie, nie potrzebuję poziomego paska przewijania w oknach edytora, co daje mi więcej miejsca w pionie.

80 znaków może być nieaktualnych, ale warto zachować rozsądek.

Niall C.
źródło
1
+1, często otwieram wiele plików źródłowych obok siebie w Vimie lub innych edytorach. Dzięki wystarczająco małej czcionce i dość wąskiemu prawemu marginesowi mogę bardzo szybko uzyskać dobry przegląd projektu, a nawet otworzyć dużo dokumentacji.
greyfade
4
80 znaków jest nadal istotne, ponieważ wiele osób domyślnie ma tak szerokie terminale i edytory; tak więc, jeśli ograniczysz się do 80, będziesz przyjazny dla tych ludzi, w przeciwieństwie do konieczności zmiany układu wszystkich okien lub radzenia sobie z zawijaniem linii lub przewijaniem w poziomie.
Brian Campbell,
1
80 znaków jest nadal rozsądne; dłuższy czas zachęca do nadmiernie zagnieżdżonego kodu (zamiast refaktoryzacji!), a posiadanie wielu okien obok siebie jest wyjątkowo przydatne. Dodanie kolejnego monitora tylko zwiększa liczbę okien, które możesz zobaczyć na raz!
Donal Fellows
1
80 może być przyjazny dla VMS. Wybacz, że myślę w nowym wieku, ale powinniśmy zwiększyć limit tam, gdzie to możliwe i zachować go tam, gdzie to konieczne ..
Ross
29

Nie sądzę, żeby monitor miał z tym coś wspólnego - przynajmniej już nie.

Jeśli nie możesz zakodować wiersza składającego się z 80 znaków, to i tak prawdopodobnie oznacza to zły kod. Zbyt złożone wyrażenia. Zbyt głębokie wcięcie. itp. Powinieneś przestać i przemyśleć to, co robisz.

Ale jeśli masz pewność, że kod wymaga więcej niż 80 wierszy, to zrób to. Myślę, że lepiej jest mieć kod, który przekracza 80 znaków, niż dodawać idiomatyczne zmiany tylko po to, aby go zmniejszyć.

Osobiście nienawidzę tego rodzaju rzeczy:

ret = my_function(parameter1, \
                  parameter2, \
                  parameter3, parameter4);

Zamiast po prostu:

ret = my_function(parameter1, parameter2, parameter3, parameter4);
Cesar Canassa
źródło
5
Z pewnością, jeśli linia 3 w pierwszym przykładzie nie jest zbyt długa, linię 2 można połączyć w linię 1, co sprawia, że ​​wygląda ona bardziej czytelnie. (Jaki język wymaga znaku nowej linii w nawiasach?)
1
Ahh, to tylko pseudo-kod, który napisałem. Ale myślę, że C tego wymaga.
Cesar Canassa,
4
Tylko w wieloliniowych definicjach makr, które są (lub powinny być) rzadkie. Wpływa to znacząco na wybór maksymalnej długości linii (utrzymanie takich odwrotnych ukośników nie jest fajne), więc jestem ciekawy, dlaczego to pokazujesz. Wygląda na słomianego mężczyznę ?
2
Gdybym miał problem z przerwaniem linii w wywołaniu funkcji, umieściłem każdy parametr w osobnej linii, wcięty o jeden poziom.
starblue
20

Do kodowania?

Z pewnością tak. Normalny człowiek nie umie czytać zbyt szeroko. Przy kilku kolumnach mniej poruszasz oczami, lepiej się koncentrujesz i opóźniasz zmęczenie. To minimalny zysk, ale ważny.

Maniero
źródło
3
Chociaż uważam, że kod bardzo różni się od prozy, męczące jest odczytywanie kodu, który okresowo (tj. Proza byłaby ogólnie bardziej spójna) rozciąga linie do ponad 120 kolumn.
6

Tak, istnieją powody, aby ograniczyć długość linii kodu:

  1. Chociaż nasze ekrany stały się szerokie, czasem musisz wydrukować swój kod. Gdyby tylko z tego powodu .
  2. Przeglądarki różnicowe często wyświetlają linie z podziałem pionowym - staje się to trudniejsze, jeśli linie są tak długie, jak pozwala na to szeroki ekran.

To powiedziawszy, 80 to trochę za mało. Ale nadal pewne ograniczenia są prawdopodobnie dobrym pomysłem jako zasada projektowania.

Powiedziałbym, że wyjątkowo długie linie nie powinny być niedozwolone, ponieważ czasami są one konieczne. Ale jeśli większość funkcji jest widoczna tylko na 30-calowym ekranie, wówczas kod ma pewne problemy.

Assaf Lavie
źródło
5

Jest to arbitralne, ale istnieje ograniczenie do tego, co jest łatwe do odczytania. Uważam, że bardzo szerokie kolumny tekstu są bardzo trudne do zeskanowania i odczytania, niezależnie od tego, czy są to kod, czy proza. Ponadto, jak zauważyło wiele innych odpowiedzi, nie jest tak, że ten kod będzie jedyną rzeczą na ekranie. Wspaniale jest mieć dwa lub więcej okien kodu jednocześnie i dopasować je do jednego monitora szerokiego ekranu.

jerwood
źródło
3

Prawdopodobnie nie jest właściwe wybranie limitu dokładnie 80 znaków; co by się zmieniło, gdyby na przykład limit wynosił 85?

To prawda, że ​​używane obecnie monitory mają wyższą rozdzielczość, ale w edytorze tekstu / IDE nie całe miejsce zajmuje widok tekstowy; w edytorze używam pokazuje po lewej stronie listę plików zawartych w projekcie.

Rozdzielczość zastosowana w netbooku lub notebooku nie jest taka sama, jak w monitorach; prawdopodobnie warto zastosować limit znaków, który nikomu nie stwarza „problemów”.

kiamlaluno
źródło
5
80 znaków było twardym ograniczeniem liczby kolumn na karcie dziurkacza!
ChrisF
5
Nie ma znaczenia, jaki jest standard, ale jeśli wszyscy pracują według tego samego standardu, to ułatwia życie.
Skilldrick
2

To zależy od środowiska programistycznego.

Na przykład w dużej korporacji z tysiącami programistów prawdopodobnie są setki osób, które w ciągu życia produktu będą musiały przyjrzeć się pewnej części jego kodu. Przy tak wielu ludziach z pewnością znajdzie się kilku, którzy z dowolnego powodu (starszy sprzęt, netbooki itp.) Działają w rozdzielczości 800x600 lub mniejszej. Dostosowanie ich ma pewną wartość.

Jednak w mojej 25-osobowej firmie mówię to pieprzyć. Wszyscy używamy podwójnych nowoczesnych monitorów w maksymalnej rozdzielczości - 120-140 lub mniej więcej jest to nieformalna wytyczna.

Fishtoaster
źródło
2

Posiadanie pewnego limitu z pewnością ma sens. Ale limit 80 znaków jest zbyt ograniczający. Wolę coś w rodzaju limitu 96 znaków. Jest wystarczająco szeroki dla większości kodu, z którym mam do czynienia i jest wystarczająco wąski, aby dwa pliki mogły być umieszczone obok siebie w celu różnicowania (na szerokim ekranie).

Uważam, że czytelność kodu przebija wszelkie inne obawy. A przy 96 znakach w wierszu kod może być znacznie bardziej czytelny niż przy 80.

Nie kupuję argumentu, że większość ludzi ustawia terminale na szerokość 80 znaków, nie, że drukarki muszą zawijać linie dłuższe niż 80 znaków. To nie jest twardy limit, jak kiedyś (odległej) przeszłości. Możesz łatwo ustawić terminal i szerokość drukarki na 100 znaków.

Alexeiz
źródło
1

Nie, nie ma już znaczenia:

  • Większość czcionek używanych w aplikacjach i Internecie i tak nie ma stałej szerokości. Innymi słowy, 80 znaków! = 80 znaków.
  • Jak powiedziałeś, zmieniły się szerokości ekranu - 80 znaków nie jest rozsądną granicą.

80 znaków było naprawdę wskazówką dla czcionek o stałej szerokości w środowisku konsoli.

Oczywiście, jeśli nadal używasz czcionki o stałej szerokości w środowisku konsoli ... to na pewno rozsądne jest 80 znaków :)

Damovisa
źródło
3
Jestem prawie pewien, że miał na myśli użycie limitu 80 znaków w kodzie źródłowym, który jest prawie powszechnie wyświetlany czcionkami o stałej szerokości.
Fishtoaster,
1
Hmm ... w takim razie ... nadal nie, ale z innych powodów :)
Damovisa
1
80 znaków było twardym ograniczeniem liczby kolumn na karcie dziurkacza!
ChrisF
0

Jeśli używasz edytora w interfejsie GUI, 80 znaków w wierszu nie ma znaczenia, ponieważ większość porządnych edytorów - na przykład Notepad ++ - ma przycisk do przełączania zawijania linii. Dzięki temu nie powinno stanowić problemu, nawet podczas przeglądania kodu w cienkim oknie.

Lajos Meszaros
źródło