Jak wiecie, jest powiedzenie najlepszej praktyki
Ogranicz wiersz kodu źródłowego o 80 znaków.
Oto 2 linki:
Dlaczego 80 znaków to „standardowy” limit szerokości kodu?
Czy limit 80 znaków jest nadal istotny w czasach monitorów szerokoekranowych?
I jestem pewien, że możesz grzywnę więcej, jeśli szukasz tej najlepszej praktyki.
Ale uważam to za niezwykle trudne, oto przykładowy przykład:
public class MyClass {
public void myMethod() {
final Map<String, List<MyInterfaceHere>> myReference
Więc wcinasz każdą klasę, każdą metodę i każdą instrukcję.
I jestem już w kolumnie 60 pod koniec ostatniego „e” w „myReference”.
Zostało mi 20 spacji, które wywołują konstruktor i przypisują obiekt do referencji, którą mam.
Mam na myśli, czy to naprawdę wygląda lepiej:
public class MyClass {
public void myMethod() {
final Map<String, List<MyInterfaceHere>> myReference
= new HashMap<String, List<MyInterfaceHere>>();
Jaka jest tutaj najlepsza praktyka?
coding-style
Koray Tugay
źródło
źródło
final Map<String, List<MyInterfaceHere>> myReference = new HashMap<>();
(80 znaków z wcięciem jak w twoim przykładzie)80 chars * 7 pixels/char = 560 pixels per file
. Dzięki temu dwa pliki (1120 pikseli) wygodnie mieszczą się na szerokoekranowym ekranie 1280 pikseli lub trzy (1680 px) na ekranie 1920 pikseli, w obu przypadkach pozostawiając trochę miejsca na numery linii, paski przewijania, sigile i inne elementy interfejsu użytkownika . Lub nawet sporadycznie nieco dłuższa linia.Odpowiedzi:
Najlepszą praktyką powinno być „ograniczenie długości linii, abyś ty, wszyscy twoi koledzy i wszystkie narzędzia, których używasz, byli z niej zadowoleni”, a także zdrowy rozsądek. 80 znaków wydaje się bardzo niskich i ma tendencję do zmniejszania czytelności. Kiedyś zostałem całkowicie oszukany przez taką linię:
gdzie wywołanie funkcji nie było widoczne na ekranie (ani nie było widoczne na ekranie jakiegokolwiek kolegi) bez żadnego wskazania.
Ustawiłem mój edytor tak, aby wyświetlał margines 100 kolumn plus przepisywanie kodu na wyświetlaczu, dzięki czemu wszystko jest zawsze widoczne podczas edycji, a zbyt długie linie zwykle są ręcznie dzielone na dwie lub czasem więcej linii. Módl się, aby Twój edytor ładnie formatował podzielone instrukcje, jeśli dokonuje automatycznego formatowania. Użyj stylu kodowania, który nie prowadzi do głęboko zagnieżdżonych instrukcji. (Niektórzy ludzie tworzą gniazdo dwudziestu instrukcji if, po których następuje ogon dwudziestu innych, co prowadzi do głębokiego wcięcia 200 znaków i nikt nie może ustalić, do którego jeszcze należy).
W twoim szczególnym przypadku Swift wynalazł sposób, aby tego uniknąć: Zmiennej „let” (która w innych językach jest mniej więcej taka sama jak „końcowa”) należy przypisać wartość dokładnie jeden raz, ale niekoniecznie w deklaracji , abyś mógł podzielić swoją kłopotliwą linię na dwie niezależne wypowiedzi.
PS. Zetknąłem się z linijkami, napisanymi przez ludzi, zawierającymi ponad 400 znaków. Innymi słowy, będziesz musiał przewijać przez wieki, aby przeczytać resztę linii, nawet na 24-calowym monitorze. Nie byłem rozbawiony :-(
źródło
/* Very long comment to the end of the line */ realCode ();
powinienem już złamać inne zasady stylu./* Very long comment to the end of the line */ realCode ();
jest jednym z powodów, dla których IDE mają formaterery kodu, które automatycznie umieszczają komentarz i kod w osobnych wierszach.Tak, wygląda lepiej. Właśnie dlatego „Nie używaj zbyt długich linii!” maksyma jest bardzo silna.
Jeśli chodzi o najlepszą praktykę, nigdy nie używam tych okropnie długich wyrażeń konstruktora. Zawsze bym używał
dla niektórych odpowiednio zdefiniowanych, statycznie importowanych wartości
newMap()
. Uważam to za poważną wadę w Javie, ponieważ nie ma ona wbudowanej wersji.źródło
Celem nie jest „utrzymanie linii do 80 znaków”. Celem jest „uczynienie kodu łatwym do odczytania i zrozumienia”. Sztuczny limit 80 znaków pomaga w czytelności, ale nie jest to trudna i szybka reguła, chyba że twoja drużyna tak zdecyduje.
Poprosiłeś o najlepszą praktykę, a najlepszą praktyką jest „skupienie się na uczynieniu kodu tak czytelnym, jak to możliwe”. Jeśli to wymaga więcej niż 80 znaków, niech tak będzie.
źródło
Nie bój się uderzać w klawisz Return. Większość współczesnych języków (w tym Java jak w twoim przykładzie) jest całkiem zadowolona z instrukcji, które działają w kilku wierszach.
Wystarczy pomyśleć o tym, gdzie przełamujesz linie, a możesz uzyskać coś, co mieści się w limicie 80 kolumn i nadal jest doskonale czytelne. Oficjalne konwencje kodowania Java określają nawet preferowane miejsca na łamanie linii.
Zrobione dobrze, starannie rozbita linia jest o wiele bardziej czytelna niż ta, która znika z boku ekranu.
źródło
Jeśli wymuszasz długość / szerokość linii kodu, użyj narzędzia.
Deweloperzy decydują o rozsądnej długości (80, 120, 200 itd.), Ustaw tę opcję w narzędziu.
Następnie po prostu napisz kod, jak zwykle, bez względu na szerokość lub długość linii. Po zakończeniu działania kliknij prawym przyciskiem myszy i wybierz opcję Wyczyść kod lub podobną opcję. Narzędzie sformatuje kod zgodnie z instrukcją i podzieli długie linie, jak wskazano.
Bezmyślne i łatwe, a każdy plik źródłowy zostanie sformatowany w ten sam sposób.
źródło
Limit 80 znaków może być trochę za krótki, ale to pomaga. Zgadzam się ze wszystkimi tymi opiniami, że kod powinien być również dobrze sformatowany. np. kod
może zawierać się w przedziale 80 znaków, ale powoduje zamieszanie, ponieważ uwagi i opcje kodu znajdują się w tym samym pojedynczym wierszu.
Przestrzeganie limitu 80 chr lub nie jest wyborem indywidualnym, ale jeśli rzeczy są widoczne w jednym ujęciu, zawsze zapewnia wygodny widok i uczucie programistom i innym recenzentom.
źródło