Temat: Długość linii

Mam do Was pytanie -- jak długie są Wasze linie w kodzie, który tworzycie..

Odpowiedzi do wyboru:
* 72 znaki (często programuję w ed(1) lub innym edytorze liniowym z użyciem numerów linii)
* 78 znaków (RFC 3676)
* 79 znaków (czasem programuję w Pythonie)
* 80 znaków (mój monitor CRT tyle wyświetla)
* inna dowolna wielkość

Prosiłbym o krótkie uzasadnienie swojej wypowiedzi...

DziękiAndrzej Kosela edytował(a) ten post dnia 03.09.10 o godzinie 14:40

konto usunięte

Temat: Długość linii

Zwykle do 120 znaków; Większość nowoczesnych monitorów może spokojnie wyświetlić więcej, ale tyle jest w stanie ogarnąć większość ludzi.

Temat: Długość linii

Dzięki Adam. Interesują mnie trendy wsród dzisiejszych programistów. Ja osobiście staram się nie przekraczać 72 znaków w linii, ale grzebię jedynie w kernel i userland trzymając się ściśle BSD KNF oraz starych tradycji UNIX.

Chętnie poznam również przyzwyczajenia innych forumowiczów.

konto usunięte

Temat: Długość linii

Ja staram się trzymać 80 znaków. Jak sprawdzam zmiany i wyświetlam diffa w dwóch kolumnach to elegancko mi się mieści.
Chociaż tak na marginesie to od czasu jak "łamię" argumenty funkcji to do limitu dobijam tylko w jakiś zagnieżdżonych blokach.

konto usunięte

Temat: Długość linii

Trzymam się 80-ciu - jeśli mam odpowiedni edytor.
Jeśli masz terminal tekstowy to sam terminal narzuca odpowiedni limit.

konto usunięte

Temat: Długość linii

Zazwyczaj nie przekracza 100, czasem bywa więcej, ale sporadycznie. Jeśli linia jest dłuższa niż szerokość okna, to zazwyczaj nic strasznego. Dzielenie jej "na siłę", szczególnie przy względnie dużym wcięciu pogarsza tylko czytelność. Jeśli zdarza się to raz na 100-200 linii, to wszystko jest OK. Szczególnie jeśli używa się długich identyfikatorów.

Za długa linia zazwyczaj oznacza dłuuugie wyrażenie lub dłuuugą sygnaturę funkcji. To zawsze bywa znakiem, że coś w tej linii trzeba zmienić - obliczyć część wyrażenia oddzielnie, zastąpić serię parametrów strukturami, użyć typedef dla konkretnej specjalizacji szablonów itp. W końcu nikt nie pisze:
std::basic_string<char, std::char_traits<char>, std::allocator<char> > napis;
Karol Z.

Karol Z. Programista,
elektronik

Temat: Długość linii

Heh, szczerze to się nie zastanawiałem, ale staram się trzymać magicznej granicy 72 znaków.
Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: Długość linii

Są kompilatory które nie akceptują linii dłuższych niż 72 znaki, powoduje to że czasem kod dość nieczytelnie się prezentuje.

konto usunięte

Temat: Długość linii

Jarosław Rybski:
Są kompilatory które nie akceptują linii dłuższych niż 72 znaki, powoduje to że czasem kod dość nieczytelnie się prezentuje.
serio? coś wspołczesnego?
Jarosław Rybski

Jarosław Rybski Programista
C/C++/Python

Temat: Długość linii

Przemysław O.:
Jarosław Rybski:
Są kompilatory które nie akceptują linii dłuższych niż 72 znaki, powoduje to że czasem kod dość nieczytelnie się prezentuje.
serio? coś wspołczesnego?

I współczesnego i staroć - kompilator języka C na mainframe z którym mam styczność nie akceptuje linii dłuższych niż 72 znaki. Co dziwne - kompilator C++ na tę samą platformę już nie ma tego ograniczenia.
L P

L P podskala.net

Temat: Długość linii

Andrzej Kosela:
Dzięki Adam. Interesują mnie trendy wsród dzisiejszych programistów. Ja osobiście staram się nie przekraczać 72 znaków w linii, ale grzebię jedynie w kernel i userland trzymając się ściśle BSD KNF oraz starych tradycji UNIX.

Chętnie poznam również przyzwyczajenia innych forumowiczów.

W kernel/userspace staram się trzymać 80 lini. W PHP czy JS np. staram się trzymać do 120 lini (duzy monitor, wiecej kodu widać). W Pythonie np. do 80 (jest czytelniej jak dla mnie).
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: Długość linii

Andrzej Kosela:
Dzięki Adam. Interesują mnie trendy wsród dzisiejszych programistów. Ja osobiście staram się nie przekraczać 72 znaków w linii, ale grzebię jedynie w kernel i userland trzymając się ściśle BSD KNF oraz starych tradycji UNIX.

Chętnie poznam również przyzwyczajenia innych forumowiczów.

Aż odpaliłem Eclipse i sprawdziłem ile znaków miewam w linii: do 190 znaków w linii (tyle po prostu mieści mi się na ekranie). Pracuję w zespole i nikomu z zespołu to nie przeszkadza.

Od lat za bardzo nie rozumiem argumentu, aby się trzymać 72 lub 80 znaków (pomijając problemy ze starymi kompilatorami, czy mainfremami lub innymi harcorowymi maszynami, do których dostęp jest jedynie przez konsole tekstowe).

Plusy z długimi liniami są (dla mnie) oczywiste:
* więcej informacji na jednej stronie
* można robić bardziej wyrafinowane komentarze / konstrukcje językowe / ASCII ART-y dokumentujące działanie algorytmów.

W moim przypadku ostatnio pisałem aplikacje przede wszystkim w Java (aplikacja miała 100K LoC). Takich rozmiarów aplikacje i tak piszę się w IDE, a nie np. pod konsolą przy użyciu vi/emacs.

btw:
Oczywiście jest to również skorelowane z czcionkami, jakie używamy w naszych IDE :) Chciałbym Was gorąco zachęcić do spróbowania czcionki o nazwie Consolas. Jest ona dołączona do MS Windows od Vista w górę. Do starszych wersji Windows może je dociągnąć ręcznie. Na platformach Uniksowych są Open Sourceowe odpowiedniki tej czcionki. Ja używam rozmiaru 10, no ale to to już oczywiście osobiste preferencje.

Consolas ROCKS!

Najlepsza czcionka do programowania, jaką kiedykolwiek widziałem! :) Używam jej we wszystkich edytorach kodu.

Pozdrowienia,
Adam Woźniak
Adam Woźniak

Adam Woźniak software architect
and developer

Temat: Długość linii

Żeby dać jakiś przykład na to co napisałem powyżej, wklejam kawałek kodu, niejako dowód przez przykład( ;) ), że dłuuugie komentarze potrafią jednak trzymać kod w miarę przejrzysty.

Ale to już wszystko indywidualne preferencje i nie zamierzam ginąć w tym wątku za argumenty, które tu napisałem :)

Pozdrawiam,
Adam



// PK Type Null? Default
private String id; // {ROWID} // AWOMNTS3 514 Rozwazyc wprowadzenie PK do tabeli CG_CONTRACT_EVENTS.
// AWOMNTS3 514 Po dodaniu pk do tabeli CgContractEvents uproscic metode markEventAsProcessed. Jest tam warunek 'where' z uzyciem daty w kolumnie eventDate, ktory nie jest zbyt madry.
private long coId; // INTEGER N -
private EventTypeEnum eventType; // INTEGER N -
private Date eventDate; // DATE N -
private Integer snCode; // INTEGER Y - // AWOTODO4 zmienic nazwe na sncode.
private Integer tmcodeSeqno; // INTEGER Y - // awo: tmcodeSeqno jest NULL tylko dla eventType 4 i 5 (SERVICE_STATUS_CHANGE i CONTRACT_STATUS_CHANGE).
private Integer tmcode; // INTEGER Y - // awo: tmcode jest NULL tylko dla eventType 4 i 5 (SERVICE_STATUS_CHANGE i CONTRACT_STATUS_CHANGE).
private Long spcodeSeqno; // INTEGER Y - // awo: spcodeSeqno jest NULL tylko dla eventType 4 i 5 (SERVICE_STATUS_CHANGE i CONTRACT_STATUS_CHANGE).
private Integer spcode; // INTEGER Y - // awo: spcode jest NULL tylko dla eventType 4 i 5 (SERVICE_STATUS_CHANGE i CONTRACT_STATUS_CHANGE).
private Long status_histno; // INTEGER Y - // AWOTODO4 Jesli juz, to statusHistno.
private StatusEnum status; // CHAR(1) Y - // awo: przy niektorych typach (np. TARIFF_MODEL_CHANGE) ta kolumna bedzie {null}.
private ProcessedEnum processed; // CHAR(1) N -
private Date dateProcessed; // DATE Y -
private Date importedDate; // DATE Y -

Adam Woźniak edytował(a) ten post dnia 11.09.10 o godzinie 17:16

Następna dyskusja:

Długość funkcji




Wyślij zaproszenie do