Styl zápisu programu: Porovnání verzí

Smazaný obsah Přidaný obsah
rozšíření, překlad en wiki
Styl, formulace
Řádek 2:
 
Základní pravidla byla poprvé sepsána v publikaci ''"The Elements of Programming Style"'', vydaná v 70. letech 19. století. [[Ilustrace]] a příklady byly čerpány z programovacího jazyka [[Fortran]].
 
 
== Programovací styl ==
 
Programovací styl, použitý v jednotlivých programech může být odvozený z [[kódovací standard|kódovacích standardů]] nebo kódovacích obecných zásad společností nebo dalších počítačových organizací, stejně tak jako z vlastního stylu autora kódu. Programovací styl je často navržen pro specifický programovací jazyk nebo jazykovou rodinu. Styly, používané pro jazykovou rodinu [[jazyk C|jazyka C]] nemusí být vhodné pro použití v [[jazyková rodina|jazykové rodině]] typu [[BASIC]] atp. Nicméně některé pravidla mohou být aplikována obecně.
 
== Prvky dobrého stylu ==
Je obtížné definovat, co je dobrý styl. Přesný [[standard]] není definován, jedná se spíše o subjektivní pohled každého programátora. Nicméně existují základní prvky, které jsou společné velkému množství programovacích stylů. Tyto základní prvky jsou považovány za součást programovacího stylu, zahrnujícího:
 
Je obtížné definovat, co je dobrý styl. Přesný [[standard]] není definován, jedná se spíše o subjektivní pohled každého programátora. Nicméně existují základní prvky, které jsou společné velkému množství programovacích stylů. Tyto základní prvky jsou považovány za součást programovacího stylu, zahrnujícího:
* rozvržení zdrojového kódu včetně [[odrážkování]]
* použití [[bílý znak|bílých znaků]] kolem operátorů a klíčových slov
Řádek 19 ⟶ 17:
 
== Vzhled zdrojového kódu ==
 
Programovací styly obvykle vycházejí z vizualizace zdrojového kódu, což programátorovi usnadňuje práci při vyhledávání informací o programu. [[Software]] pro psaní zdrojového kódu umožňuje automatické [[formát]]ování, což programátorovi usnadňuje práci a umožňuje mu soustředit se na vlastní programování. Praktickým hlediskem automatického formátování zdrojového kódu je, že šetří čas a umožňuje snazší prosazení firemních standardů bez větších diskuzí.
 
==== Odsazování ====
 
StylyStyl odrážkovánízápisu pomáhajís odsazováním pomáhá při identifikaci bloků kódu. U některých [[programovací jazyk|programovacích jazyků]] je odrážkováníodsazování užívánopoužíváno pro stanovení hranice logických bloků zdrojového kódu. Správné odrážkováníodsazování je v tomto případě více, než jen problém stylu. V dalšíchněkterých jazycích neovlivňují netisknutelné znaky a odrážkováníodsazování funkčnost, avšak dělají zdrojový kód čitelnější. Porovnejte zápisy:
==== Odrážkování ====
 
Styly odrážkování pomáhají při identifikaci bloků kódu. U některých [[programovací jazyk|programovacích jazyků]] je odrážkování užíváno pro stanovení hranice logických bloků zdrojového kódu. Správné odrážkování je v tomto případě více, než jen problém stylu. V dalších jazycích neovlivňují netisknutelné znaky a odrážkování funkčnost, avšak dělají zdrojový kód čitelnější. Porovnejte:
 
<source lang="c">
Řádek 37 ⟶ 32:
}
</source>
 
''nebo''
 
<source lang="c">
if (hours < 24 && minutes < 60 && seconds < 60) {
Řádek 45 ⟶ 42:
}
</source>
 
''v porovnání s tímto zápisem''
''s tímto zápisem bez přehledného odsazování''
<!-- Note that the following code block is intentionally mis-indented. Do not "fix" it to use correct indentation. -->
 
<!-- POZOR - následující kód je záměrně špatně naformátován, NEOPRAVUJTE HO. Děkujeme. -->
<source lang="c">
if ( hours<
Řádek 58 ⟶ 57:
</source>
 
První dva příklady jsou čitelnější, odrážky jsou použity podle ustanovených pravidel. Tento styl odrážkováníodsazování je zejména užívanýpoužíván u vícenásobných vnořených konstruktůbloků.
 
Programovací jazyk [[Python]] používá odrážkování k tomu, aby [[signalizace|signalizoval]] správnost struktury zdrojového kódu. Proto je v tomto případě správné odrážkování vyžadováno. Tímto není potřeba používat složené závorky ('''{''' a '''}'''). čitelnost je lepší, i když nevyužívá běžných kódových stylů. Odlišné styly mohou vést k problémům při zkopírování a vložení zdrojového kódu do prostředí Python, protože styl odrážkování nemusí být [[kompatibilita|kompatibilní]] s vloženou částí. Ruční přeformátování je náročné na čas, některé textové editory však umí provést přeformátování automaticky. Navíc zdrojový kód v Pythonu může být nepoužitelný na některých [[webové stránky|webových stránkách]], které odstraňují netisknutelné znaky. V tomto případě se pro správné zobrazení v [[HTML]] kódu uzavírá zdrojový kód Pythonu párovým tagem "&lt;pre&gt; ... &lt;/pre&gt;".
 
Programovací jazyk [[Python]] používá odrážkováníodsazování k tomu, aby [[signalizace|signalizoval]] správnost struktury zdrojového kódu. Proto je v tomtoněm případěvyžadováno správnésprávně odrážkování vyžadovánoodsazování. TímtoZároveň není potřeba používat složené závorky ('''{''' a '''}'''). a čitelnost je lepší, i když nevyužívá běžných kódových stylů zápisu. Odlišné styly mohou vést k problémům při zkopírování a vložení zdrojového kódu do prostředí Python, protože styl odrážkováníodsazování nemusí být [[kompatibilita|kompatibilní]] s vloženou částí. Ruční přeformátování je náročné na čas, avšak některé textové editory však umí provést přeformátování automaticky. Navíc zdrojovýZdrojový kód v Pythonu může být nepoužitelný na některých [[webovéWebová stránkystránka|webových stránkách]], které odstraňují netisknutelné znaky. V tomto případě se pro správné zobrazení v [[HTML]] kódu uzavírá zdrojový kód Pythonu párovýmmezi párové tagemznačky "&lt;pre&gt; ... &lt;/pre&gt;".
 
==== Svislé zarovnání ====
Často je užitečné seřadit podobné elementy zdrojového kódu svisle, vzniklé chybyprotože jsou potévzniklé vícechyby zřejmézřetelnější. PorovnáníPorovnejte:
 
Často je užitečné seřadit podobné elementy zdrojového kódu svisle, vzniklé chyby jsou poté více zřejmé. Porovnání:
 
<source lang="php">
$search = array('a', 'b', 'c', 'd', 'e');
$replacement = array('foo', 'bar', 'baz', 'quux');
 
//Another example
$value = 0;
$anothervalue = 1;
$yetanothervalue = 2;
</source>
 
s tímto příkladem:
 
<source lang="php">
$search = array('a', 'b', 'c', 'd', 'e');
$replacement = array('foo', 'bar', 'baz', 'quux');
 
//Another example:
$value = 0;
$anothervalue = 1;
Řádek 85 ⟶ 84:
</source>
 
U druhého příkladu seje zdůraznilazvýrazněná možná chyba:
* uv polepoli vyhledávání (''search)'' je o jednu položku navíc. Pokud je toto chyba, pak je nyní zřetelnější.
 
Argumentem proti svislému zarovnání může být problém udržení [[zarovnání]] u některých [[editor]]ů, tento problém může být eliminován použitím editoru zdrojového kódu, který podporuje funkci elastic tabstops.
 
Argumentem proti svislému zarovnání může být problém udržení [[zarovnání]] u některých [[editor]]ů,. tentoTento problém může být eliminován použitím editoru zdrojového kódu, který podporuje funkci elasticelastických tabstopstabelátorů.
 
==== Mezery ====
Mezery jsou definovány jako bílé znaky. U většiny neformátovaných programovacích jazyků mohou být tyto znaky použity, aniž by jakýmkoli způsobem ovlivnily chodvýznam [[program]]u. většinouVětšinou se používají pro lepší čitelnost zdrojového kódu. Příkladem může být porovnání [[syntaxe|syntakticky]] [[ekvivalence|ekvivalentních]] příkladů zdrojového kódu jazyka C:
 
Mezery jsou definovány jako bílé znaky. U většiny neformátovaných programovacích jazyků mohou být tyto znaky použity, aniž by jakýmkoli způsobem ovlivnily chod [[program]]u. většinou se používají pro lepší čitelnost zdrojového kódu.
Příkladem může být porovnání [[syntaxe|syntakticky]] [[ekvivalence|ekvivalentních]] příkladů zdrojového kódu jazyka C:
 
<source lang="c">
Řádek 102 ⟶ 98:
}
</source>
 
vs.
 
<source lang="c">
int i;
Řádek 109 ⟶ 107:
}
</source>
 
vs.
 
<source lang="c">
int i;
Řádek 118:
 
==== Tabulátory ====
Použití [[tabulátor]]u k odsazení znaků představujepřináší specifické problémy. Velikosts velikostí odsazení tabulátoru, které se liší v závislosti na použitých nástrojích a uživatelských předvolbáchpreferencích. Příkladem může být programátor, který preferuje tabulátor o délce čtyři znaky, který tomu přizpůsobuje svůj zdrojový kód:
Jako příklad může být programátor, preferující tabulátor o délce čtyři znaky a tomuto přizpůsobuje svůj zdrojový kód.
 
<source lang="c">
Řádek 126 ⟶ 125:
</source>
 
Jiný programátor preferujepreferující tabulátor o délce osmi znaků avytvoří tomuodlišně také přizpůsobíformátovaný zdrojový kód. Při prohlížení sepak může státbýt zdrojový kód méně čitelný:
 
<source lang="c">
Řádek 133 ⟶ 132:
</source>
 
Řešením může být automatické nahrazování tabulátoru mezerami nebo stanovení jeho jednotné velikosti.
Pro vyřešení tohoto problému může být používání tabulátoru zakázáno, popřípadě musí být dána pravidla, o jaké délce se mohou tabulátory používat.
 
 
== Vhodné názvy proměnných ==
Vhodný výběr názvů [[proměnná|proměnných]] je základním principem pro tvorbu dobře stylizovaného zdrojového kódu. Špatně pojmenované proměnné znepřehlednízhorší jeho čitelnost., což je ukázáno na příkladu:
 
 
Vhodný výběr názvů [[proměnná|proměnných]] je základním principem pro tvorbu dobře stylizovaného zdrojového kódu. Špatně pojmenované proměnné znepřehlední jeho čitelnost.
Na následujícím příkladu vidíme danou problematiku:
 
<code lang="pseudo">
Řádek 150 ⟶ 145:
</code>
 
Kvůli nevhodné volbě proměnných je poměrně složité na první pohled zjistit, k čemu daná část zdrojového kódu slouží. vV následujícím příkladu jsou názvy proměnných více názorné, a je snadnější rozpoznat záměr kódu:
 
<code lang="pseudo">
Řádek 159 ⟶ 154:
'''return''' false
</code>
 
 
 
 
[[Kategorie:Počítače]]