Często słyszę te dwie cenne praktyki programowania: (1) wiersze kodu powinny mieć maksymalnie 80 znaków i (2) używają opisowych nazw zmiennych, metod, klas itp. Rozumiem jednak uzasadnienie obu tych porad. , wydają się często kompromisami. Jeśli utrzymam mój kod poniżej 80 znaków / wiersz, w rezultacie będę używał mniej opisowych nazw (szczególnie w Pythonie, w których każde wcięcie liczy się jako 4 znaki), ale jeśli użyję więcej opisowych nazw, to kończę wierszem o długości ponad 80 znaków.
Moje pytanie brzmi zatem, która z tych dwóch rad jest ważniejsza, jeśli trzeba dokonać wyboru? Zastanawiam się nad tym jako niezależny programista (hobbysta), ale co ważniejsze z perspektywy inżyniera oprogramowania pracującego dla większej firmy.
Odpowiedzi:
Miej kilka wcięć, swoje opisowe nazwy i nie bój się przekraczać linii.
Trzymaj kilka wcięć.
Często, gdy walczę między wcięciami a nazewnictwem opisowym, cofam się o krok i patrzę na poziom wcięcia. Jeśli wcinasz więcej niż 3 lub 4 poziomy (2 poziomy są automatyczne i nieuniknione w wielu przypadkach. Przeczytaj: definicja metody klasy), możesz przebudować swój kod, wyodrębniając funkcjonalność do funkcji lub metody.
Twoje imiona opisowe
Zawsze powinieneś zachować opisy. Nazwy opisowe tworzą kod samokontrujący. W niektórych przypadkach możesz spróbować skrócić nazwy, ale na pierwszym miejscu jest czytelność.
Nie bój się złamać linii
Cholera się zdarza. Jeśli przekroczysz 80 znaków i nie widzisz, aby odzyskać miejsce w linii - przerwij je. Większość języków nie przejmuje się łamaniem linii, więc podziel linię na wiele. Nie wybieraj przypadkowej lokalizacji. Trzymaj logicznie pogrupowane rzeczy i wciskaj kolejny poziom, gdy przekroczysz linię.
źródło
Dlaczego nie oba?
Przede wszystkim „opisowy” i „pełny” to nie to samo. Na przykład, jeśli piszesz dość lokalną pętlę,
i
jest to bardzo dobra nazwa zmiennej dla zmiennej pętli;current_iteration_index
, choć prawdopodobnie bardziej opisowy i zdecydowanie bardziej szczegółowy, jest znacznie gorszy i w ogóle nie dodaje żadnych informacji, ponieważ użyciei
jako zmiennej pętli jest powszechnie akceptowane i nie ma innego znaczeniai
niż to.Dobre nazwy zmiennych mają charakter opisowy, ponieważ programista zaznajomiony z idiomem języka i konwencjami bazy kodu może łatwo odgadnąć, jaka jest ich rola, ale są również wystarczająco zwięzłe, aby zachować zwartość.
Limit 80 znaków, pierwotnie będący konsekwencją ograniczeń technicznych terminali tekstowych z lat 70. XX wieku, jest nadal ceniony przez wielu dzisiaj, i mimo że nadal istnieją przyczyny techniczne (maksymalne długości linii w niektórych protokołach sieciowych, w szczególności związane z pocztą e-mail), bardziej istotne są przyczyny psychologiczne i społeczne. Okazuje się, że długości linii wokół znaku 66 znaków zapewniają najwygodniejsze doznania w prozie w języku naturalnym (rozmiar czcionki, co ciekawe, nie robi dużej różnicy, a co za tym idzie, nie zmienia też rozmiaru ekranu ani papieru); 80-znakowe limity linii są dość zbliżone do tego, ale ponieważ większość typowego fragmentu kodu jest zwykle wcięta co najmniej na jednym lub dwóch poziomach (co oznacza od 4 do 16 znaków, w zależności od ustawień wcięcia),
Innym efektem trzymania się linii 80-znakowych jest to, że jest to całkiem niezły wskaźnik, kiedy sprawy są zbyt skomplikowane. Długie linie są zwykle spowodowane przez jedną z następujących czynności:
if ((user.isLoggedIn && user.hasPermission(page.getRequiredPermission()) && !user.isBanned) || page.getRequiredPermission() == null)
); to również jest zwykle trudne do odczytania, a kod powinien zostać przepisany na coś bardziej uporządkowanego. Najprawdopodobniej wyrażenie robi zbyt wiele i należy je rozdzielić na metodę lub funkcję.print(translate(LANG_EN, LANG_ES, "This is the home page. Feel welcome to click around and see what we have."));
. Przenieś literał na zmienną lub stałą; może nadal przekraczać długość linii, ale jeśli będziesz to robić konsekwentnie, czytelnik może przynajmniej bezpiecznie zignorować niewidoczną część linii, zakładając, że następuje tylko pozostała część literału. Lub jeszcze lepiej, przenieś literały poza kod i do zewnętrznego magazynu danych (plik, baza danych, cokolwiek).if
instrukcji w metodzie klasy (to 32 kolumny wcięć dla typowych ustawień). Ponownie, głębokie zagnieżdżanie tworzy złożony i trudny do odczytania kod i należy go unikać jak zarazy - mówiąc prosto, głębokie zagnieżdżanie przepełnia stos ludzkiego mózgu podczas czytania.Wszystko to są ostatecznie symptomy rzeczy, których wolałbyś nie mieć w swojej bazie kodu na dłuższą metę, a egzekwowanie limitów 80 znaków jest przyjemnym i prostym sposobem, który pomaga zmniejszyć złożoność i zwiększyć czytelność. (Nie oznacza to, że nie można napisać idealnie nieczytelnego kodu w 80 kolumnach: różne konkursy zaciemnionego kodu są wyraźnym kontrprzykładem).
źródło
Nazewnictwo opisowe jest przez FAR bardziej ważne. W większości interfejsów możemy przewijać, aby zobaczyć dłuższe linie. W żadnym wypadku system nie może pomóc w tłumaczeniu źle nazwanych zmiennych i funkcji.
źródło
80 znaków w wierszu nie jest trudne do spełnienia, nawet nazewnictwo jest długie, ponieważ istnieje wiele sposobów na rozbicie pojedynczej linii długiego kodu na wiele krótkich kodów, np. Mogę rozbić instrukcję warunkową w C na wiele linii, aby zmieściła się w mniej niż 40 postacie,
możesz także podzielić linię wywołań funkcji na wiele linii.
Dlatego obie zasady nazewnictwa opisowego i 80 linii znaków nie są sprzeczne, mogą współistnieć, aby poprawić czytelność.
źródło
Limit 80 to coś, co dawno powinno było zostać zwiększone. Należy pamiętać, że ten limit jest stosowany od wieku, kiedy długość każdego identyfikatora była ograniczona do 8 znaków i tylko jednej czcionki na ekranie / drukarce. Brak możliwości zmiany rozmiaru czcionki.
Boże, mamy teraz inną technologię sitodruku. Mamy bardzo różne języki programowania. Nie ma już powodu, aby używać 80 znaków. Zwiększ go do co najmniej 120 znaków.
Nawet wtedy nie powinno być twardego limitu. Idziesz jedną postać ponad linię? Nic się nie dzieje!
Edytować:
Szczegółowe odpowiedzi na temat historii limitu 80 znaków
Liczba znaków w wierszu na Wikipedii
źródło