Diskuse:Styl zápisu programu

Pravidla nebo konvence

editovat

nejsou to spíše než pravidla konvence? --Postrach 9. 1. 2009, 11:54 (UTC)

Konvence je dohoda o tom jaká pravidla se mají používat. Když se napíše přímo "pravidlo", je to jasnější. --Pteryx (diskuse) 17. 10. 2013, 08:46 (UTC)

Tabulátory

editovat

Doporučuji se tabulátorům úplně vyhnout, v editoru je vypnout a ve starých kódech nahradit. Výhody jejich použití jsou sporné, zato nevýhody jednoznačné.

Výhody

editovat
  • úspora místa na disku (při dnešní velikosti disků naprosto směšné)
  • reprezentují "sémantiku" - nesmysl, počet mezer na začátku řádku reprezentuje sémantiku úplně stejně; pokud je třeba změnit odsazování protože někdo může mít jinou konvenci, lze to udělat automaticky jednoduchým prográmkem; při kopírování kódu je třeba odsazování stejně vždycky přizpůsobit
  • při zarovnávání do sloupců stačí méně znaků - při správně nastaveném editoru se stisknutím klávesy TAB vygeneruje správný počet mezer

Nevýhody

editovat
  • vzhled zdrojového kódu závisí na nastavení editoru, pro správný vzhled je nutné znát nastavení šířky tabelátoru pro každý zdrojový kód, což se zjišťuje experimentálně; v různých prostředích může být implementace tabelátoru odlišná i při stejné nastavené šířce
  • v řetězcových literálech můžou být zakódované tabelátory místo mezer, aniž bychom si toho všimnuli. Pokud někde tabelátor potřebujeme, daný počítačový jazyk má prostředky pro jeho zápis.
  • v praxi se nikdy nepodaří, aby byly začátky řádků odsazovány pouze tabelátory a nikdy mezerami. Naopak by bylo žádoucí aby v textu žádné tabelátory nebyly, to je rovněž obtížné uhlídat. Z toho plyne, že pokud chci změnit odsazování např. v celém balíku kódu, stejně to musím udělat pomocí nějakého programu, výsledek je i tak nejistý, protože se musím spolehnout na to, že velikost tabelátoru je v celém balíku opravdu stejná.

Závěr

editovat

Tabulátory vytváří zmatek v zápisu kódu, nemám je rád :) --Pteryx (diskuse) 17. 10. 2013, 08:46 (UTC)

Zpět na stránku „Styl zápisu programu“.