Vlákno názorů k článku
Mezery nebo tabulátory? Jasně že mezery, ale kolik? od František - Pro-tip: když používáte tabulátory, může mít každý takové...

  • Článek je starý, nové názory již nelze přidávat.
  • 14. 9. 2018 11:16

    František (neregistrovaný)

    Pro-tip: když používáte tabulátory, může mít každý takové nastavení, jaké mu vyhovuje a tato otázka je irelevantní. Tedy samozřejmě pokud se tabulátory používají k signalizaci úrovně odsazení a ne k ascii artu.

  • 14. 9. 2018 11:26

    unicode (neregistrovaný)

    Pro-tip: V praxi to ale nefunguje, takže je lepší zůstat u těch mezer :)

  • 14. 9. 2018 11:38

    Murděj Ukrutrný

    Vetšina editorů umožnuje nastavit šířku tabelátoru. Navíc to má výhodu přio zobrazení na různých zařízeních. Můžu si nastavit že na 20" monitoru je tabuláto 6 znaků a 5" mobilu 2 znaky.

  • 14. 9. 2018 12:58

    peter (neregistrovaný)

    Tabulátory majú svoje nesporné výhody, okrem toho čo ste spomenuli Vy, tak napríklad aj to že zaberajú na disku menej miesta. Použitie tabulátorov som v minulosti považoval za najlepšie možné riešenie. Ale postupne som zisťoval že to nie je až také ružové...

    V praxi sa naráža na niekoľko dôvodov:
    - Veľa developerov - s roznymi návykmi. Coding guidelines nebývajú 100% jednoznačné, code review tiež nebýva pravidlom, a vďaka stupňom voľnosti sa štýl developerov sa mierne odlišuje
    - Nedostatočne dobré nástroje na automatické formátovanie (súvisí aj s nejednoznačnosťou v predchádzajúcej otázke) - kto sa niekedy snažil nastaviť clang-format podľa toho aby ho prispôsobil svojmu štýlu tak mi asi dá za pravdu.
    - Rôzne editory - neraz niekto tesne pred comitom ešte rýchlo niečo zmení v notepade, ale omylom dá medzery namiesto tabulátorov (napr. z dôvodu copy-paste zo stackoverflow :-) ), neskontroluje si diff v dobrom nastroji, tak další developer, ktorý uvidí jeho kód bude nadávať.

    Nepoznám ani jedného developera, ktorý by sa niekoľkokrát v živote nestretol s problémom že otvorili zdroják v nejakom editore a tam bolo rozbité z dovodu kombinácie medzier a tabulátorov.

    Prakticky si viem predstaviť že by mohli ľudia spolupracovať tak že by povinne museli spustiť clang-format (alebo niečo podobné) pred commitom a pred mergom by sa to ešte automatizovane skontrolovalo. Na to je potrebné mať jednoznačné pravidlá ohľadom tabulátorov a medzier a to aj v komentároch...

    Príklady, ktoré v prípade použitia tabulátorov budú rozbité:

    funkcia (param1,
             param2,
             ...,
             paramN)
    /**
     * Toto je binarny strom
     *     (X)
     *    /   \
     *   (Y)  (Z)
     */

    Myslím si že najvačší problém je práve kombinácia medzier a tabulátorov.
    - Tabulátory sa dajú jednoducho zakázať. medzery nie (alebo len veľmi ťažko, napr. že zakážem dve medzery za sebou čo ma bude limitovať napr. pri komentároch)...
    - Nástroje na automatické formátovanie majú svoje limity.

  • 14. 9. 2018 14:40

    Murděj Ukrutrný

    Já se při použití tab/space řídím jednoduchým pravidlem: Když chci odsadit dám tab, když posunout dám mezeru. Takže
    ten prvni priklad ([--] - tab, _ - mezera)

    [--]function(param,
    [--]_________param2,
    [--]_________paramN)
    [--]{
    [--][--]...
    [--]}
    [--]/**
    [--]_*_Toto je binarny strom
    [--]_*_____(X)
    [--]_*____/___\
    [--]_*___(Y)__(Z)
    [--]_*/

    Není to tak složité aby to programátor (který by měl mít trochu logické myšlení) nezvládl.

  • 17. 9. 2018 9:35

    m. (neregistrovaný)

    A ted si svuj priklad - funkci - strc do jine funkce nebo do tridy. Odsad ji tabama a parametry mezerama. Pak zmen sirku tabu...