Tabulátor nebo mezera v kódu

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Tabulator vs . Space
« Odpověď #15 kdy: 07. 09. 2012, 12:45:36 »
pecko:
http://www.iovene.com/61/



presne tak som to myslel. sory, ak som sa nevyjadril dost jasne. mal som na mysli iba odsadzovanie, nie zarovnavanie. presne ako autor clanku pise, na odsadzovanie je najlepsi tab, na zarovnanie medzera:) plne suhlasim a som rad, ze si dal odkaz na clanok, ktory potvrdzuje moje tvrdenie:)

odsadzovaniu zdar, zarovnaniu zvlast:D


Ivan


Franta

Re:Tabulator vs . Space
« Odpověď #17 kdy: 07. 09. 2012, 14:35:04 »
nepoužívat Tab, ale mezery. Důvod byl řečen výše - při použití jiného nastavení šířky tabulátoru, než jaké použil autor, se pak formátování řádek s různými úrovněmi odsazení rozpadá.

Rozpadat se to začne právě ve chvíli, kdy se odsazuje mezerami a jeden odsazuje čtyřmi, druhý osmi a třetí třeba dvěma. Pak je každý řádek odsazený jinak, podle toho, kdo ho zrovna měnil.

Zatímco když se použijí tabulátory, každý může mít nastavenou jejich šířku podle svých preferencí, ale to je jen vizuální záležitost - v souboru je uložena sémantická informace (počet úrovní odsazení) a ta dává smysl. Kód si pak můžeš roztáhnout nebo zhustit, aby se ti to líp četlo pouhým nastavením editoru.

salam

Re:Tabulator vs . Space
« Odpověď #18 kdy: 07. 09. 2012, 15:19:29 »
Jak už to tu padlo: na odsazování úrovní jednoznačně tab (každý ať si ho nastaví na svoji velikost), na zarovnávání jednoznačně mezera.

Re:Tabulator vs . Space
« Odpověď #19 kdy: 07. 09. 2012, 15:27:37 »
je jedno ktere se pouzije, dulezite je mit jasne pravidlo v tymu.
Děkuji za možnost editace příspěvku.


salam

Re:Tabulator vs . Space
« Odpověď #20 kdy: 07. 09. 2012, 15:35:28 »
je jedno ktere se pouzije, dulezite je mit jasne pravidlo v tymu.

Jednota je určitě zásadní, ale taby na odsazování mají jednoznačné výhody: umožňují volitelný vzhled a mohou zrychlovat úpravy, kdežto mezery se vyplatí pouze tehdy, když programujete na kila (na to jsou pak ale ještě lepší metody)  :)  :) :)

Natix

Re:Tabulator vs . Space
« Odpověď #21 kdy: 07. 09. 2012, 15:44:29 »
Já jsem taky jednoznačně pro taby, teď mě ale napadl jeden eventuální problém při práci v týmu.

Pokud člověk používá automatický formátovač kódu (v Eclipse, NetBeans apod.), tak když budu mít nastavenou stejnou šířku řádku (třeba těch klasických 80) jako kolega, ale budu mít jinou šířku tabulátorů (on např. 2, zatímco já 4), tak ve chvíli, kdy použiju ctrl+shift+F, tak se mi řádky natáhnou do šířky a některé delší se v důsledku toho zalomí.

Proto je potřeba mít v týmu jednotné nastavení formátovače nejenom ve smyslu tab vs. space, ale i u šířky řádku a šířky tabulátorů.

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Tabulator vs . Space
« Odpověď #22 kdy: 07. 09. 2012, 16:16:58 »
Já jsem taky jednoznačně pro taby, teď mě ale napadl jeden eventuální problém při práci v týmu.

Pokud člověk používá automatický formátovač kódu (v Eclipse, NetBeans apod.), tak když budu mít nastavenou stejnou šířku řádku (třeba těch klasických 80) jako kolega, ale budu mít jinou šířku tabulátorů (on např. 2, zatímco já 4), tak ve chvíli, kdy použiju ctrl+shift+F, tak se mi řádky natáhnou do šířky a některé delší se v důsledku toho zalomí.

Proto je potřeba mít v týmu jednotné nastavení formátovače nejenom ve smyslu tab vs. space, ale i u šířky řádku a šířky tabulátorů.

cece, to ale nema ziadny vplyv na skutocny obsah ulozeneho suboru. to je len "takto ti to ide ukazuje" :) ine je to uz s ostatnymi vecami typu "zatvroka na rovnaky riadok" alebo "medzery okolo zatvoriek" a pod. toto uz musite mat jednotne. ale zobrazovanie tabu u teba na 4 a u kolegu na 8 s tym nema nic spolocne. to nema najmensi vplyv:)

stale teda vedu taby:D pokial sa bavime cisto o odsadzovani zaciatku riadku a o nicom inom:)

klw

Re:Tabulator vs . Space
« Odpověď #23 kdy: 07. 09. 2012, 16:27:16 »
Takže asi bych to viděl takhle ;-)
http://www.hackles.org/cgi-bin/archives.pl?request=284

Nicméně tento argument neberu:
Rozpadat se to začne právě ve chvíli, kdy se odsazuje mezerami a jeden odsazuje čtyřmi, druhý osmi a třetí třeba dvěma. Pak je každý řádek odsazený jinak, podle toho, kdo ho zrovna měnil.
Pokud někdo není schopen přizpůsobit se code-style použitého v projektu (a není to jen odsazování), neměl by do něj raději vůbec přispívat.

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Tabulator vs . Space
« Odpověď #24 kdy: 07. 09. 2012, 16:36:09 »
http://www.hackles.org/cgi-bin/archives.pl?request=284

asi som debil, ale ani po 15 minutach lustenia a citania textu pod obrazkom som to nepochopil:D vysvetlite niekto:) dik

Natix

Re:Tabulator vs . Space
« Odpověď #25 kdy: 07. 09. 2012, 16:49:31 »
Já jsem taky jednoznačně pro taby, teď mě ale napadl jeden eventuální problém při práci v týmu.

Pokud člověk používá automatický formátovač kódu (v Eclipse, NetBeans apod.), tak když budu mít nastavenou stejnou šířku řádku (třeba těch klasických 80) jako kolega, ale budu mít jinou šířku tabulátorů (on např. 2, zatímco já 4), tak ve chvíli, kdy použiju ctrl+shift+F, tak se mi řádky natáhnou do šířky a některé delší se v důsledku toho zalomí.

Proto je potřeba mít v týmu jednotné nastavení formátovače nejenom ve smyslu tab vs. space, ale i u šířky řádku a šířky tabulátorů.

cece, to ale nema ziadny vplyv na skutocny obsah ulozeneho suboru. to je len "takto ti to ide ukazuje" :) ine je to uz s ostatnymi vecami typu "zatvroka na rovnaky riadok" alebo "medzery okolo zatvoriek" a pod. toto uz musite mat jednotne. ale zobrazovanie tabu u teba na 4 a u kolegu na 8 s tym nema nic spolocne. to nema najmensi vplyv:)

stale teda vedu taby:D pokial sa bavime cisto o odsadzovani zaciatku riadku a o nicom inom:)

Vliv to má ve chvíli, kdy si vycheckoutu nějaký soubor, upravím v něm jednu metodu a použiji formátovač. I když jeho autor měl šířku řádky nastavenou taky na 80, ale tabulátor na 2 mezery, zatímco já ho mám na 4, tak se po použití formátovače stane to, že některé řádky, které se u něj těsně vešly do limitu 80 znaků, u mě najednou těch 80 přesahují.

Takže všechny takové řádky se najednou zalomí a já když chci dát commit, tak mám najednou v diffu kromě toho, co jsem skutečně upravil, celou řadu rozdílů způsobených přibyvšími konci řádků. A něco takového nemá v commitu co dělat.

NoNazdar

Re:Tabulator vs . Space
« Odpověď #26 kdy: 07. 09. 2012, 16:55:31 »
Vliv to má ve chvíli, kdy si vycheckoutu nějaký soubor, upravím v něm jednu metodu a použiji formátovač.

Vy doopravdy pouštíte na cizím projektu svůj formátovač který není nastavený podle pravidel toho projektu?

salam

Re:Tabulator vs . Space
« Odpověď #27 kdy: 07. 09. 2012, 16:57:15 »
Takže všechny takové řádky se najednou zalomí

Ty používáš formátovač, co sám zalamuje řádky?

pecko

  • ***
  • 105
    • Zobrazit profil
    • E-mail
Re:Tabulator vs . Space
« Odpověď #28 kdy: 07. 09. 2012, 17:02:19 »
Vliv to má ve chvíli, kdy si vycheckoutu nějaký soubor, upravím v něm jednu metodu a použiji formátovač. I když jeho autor měl šířku řádky nastavenou taky na 80, ale tabulátor na 2 mezery, zatímco já ho mám na 4, tak se po použití formátovače stane to, že některé řádky, které se u něj těsně vešly do limitu 80 znaků, u mě najednou těch 80 přesahují.

Takže všechny takové řádky se najednou zalomí a já když chci dát commit, tak mám najednou v diffu kromě toho, co jsem skutečně upravil, celou řadu rozdílů způsobených přibyvšími konci řádků. A něco takového nemá v commitu co dělat.

stale nerozumiem, co to s tym ma? pocet \t na zaciatku riadku sa nezmeni, skutocny format riadka tiez nie. cize sa de facto nezmeni nic. ale pokial tam mas takych idiotov, co si nastavia ide tak, ze zalamuje riadky pomocou \n, tak sa necuduj. to je debilita kodera, nie nevyhoda tabu:)

po dalsie, nastav si poridne verzovaci nastroj, aby nebral do uvahy zmenu vo whitespace:) co ti mam na to povedat?

Franta

Re:Tabulator vs . Space
« Odpověď #29 kdy: 07. 09. 2012, 17:11:12 »
Nicméně tento argument neberu:
Rozpadat se to začne právě ve chvíli, kdy se odsazuje mezerami a jeden odsazuje čtyřmi, druhý osmi a třetí třeba dvěma. Pak je každý řádek odsazený jinak, podle toho, kdo ho zrovna měnil.
Pokud někdo není schopen přizpůsobit se code-style použitého v projektu (a není to jen odsazování), neměl by do něj raději vůbec přispívat.
Souhlasím - o tom ale ten spor není - můj předřečník kritizoval tabulátory, že při různém nastavení rozbíjejí kód - tak jsem psal tohle jako důkaz, že to není pravda a že je to přesně naopak. Při stejném nastavení funguje oboje. Při odlišném nastavení rozbíjí odsazování mezerami kód, protože každý odsadí o jiný počet mezer - zatímco jinak nastavené tabulátory jsou jen záležitost zobrazení v daném editoru daného vývojáře a uložené v souboru vypadají stejně.

cece, to ale nema ziadny vplyv na skutocny obsah ulozeneho suboru. to je len "takto ti to ide ukazuje" :) ine je to uz s ostatnymi vecami typu "zatvroka na rovnaky riadok" alebo "medzery okolo zatvoriek" a pod. toto uz musite mat jednotne. ale zobrazovanie tabu u teba na 4 a u kolegu na 8 s tym nema nic spolocne. to nema najmensi vplyv:)

Pokud se zalamují řádky na nějakém počtu znaků, tak to vliv mít může, ale to je jedno, protože když už se používají automatické formátovače, je potřeba vynutit v týmu všude stejné nastavení (společný konfigurační soubor/volby editoru/IDE). Tabulátory tak jako tak vedou.

...formátovač, co sám zalamuje řádky?
To je celkem běžné, že to formátovač umí, ale spíš mi přijde, že zalamování na nějaké natvrdo dané šířce je přežitek. Terminály se pro vývoj používají už málokde a běžný monitor programátora poskytuje na šířku místa víc než dost.