Styl zápisu programu

Technology
12 hours ago
8
4
2
Avatar
Author
Albert Flores

Styl zápisu programu (v angličtině code style) je soubor norem nebo na pravidel, která se používají při psaní zdrojového kódu počítačového programu. Pravidla programovacích stylů umožňují programátorům snadnější orientaci a pochopení zdrojového kódu a zároveň pomáhají vyhnout se formálním chybám při jeho tvorbě. Tato pravidla také zlepšují přenositelnost programu z osoby na osobu resp. z programátora na programátora.

Základní pravidla byla poprvé sepsána v publikaci „The Elements of Programming Style“, která byla vydána v 70. letech 20. +more 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 obecných zásad, společností nebo jiný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. +more Styly, používané pro rodinu jazyka C nemusí být vhodné pro použití pro jazyky typu BASIC atp. Přesto mohou být některá pravidla aplikována obecně.

V praxi je výhodné použít konkrétní hotovou sadu formátovacích pravidel a nevymýšlet svojí vlastní. Díky tomu se při přesunu kódu z jednoho vývojáře na dalšího (například v rámci různých firem) nemusí přenášet i sada pravidel, ale použití se již zažité principy. +more Například pro jazyk PHP existuje sada pravidel PSR2.

Prvky dobrého stylu

Je obtížné definovat, co je dobrý styl. Přesný standard není definován, jedná se do jisté míry o subjektivní pohled každého programátora. +more Nicméně existují základní prvky, které jsou společné velkému množství programovacích stylů:.

* pojmenování objektů (proměnných, funkcí, typů, tříd) * vertikální a horizontální odsazování programových bloků * použití bílých znaků (mezery, tabulátory, přechody na nový řádek), zejména kolem operátorů, výrazů a klíčových slov * úprava komentářů

Formátování kódu se liší podle typu zvoleného paradigmatu a gramatických pravidel jazyka. Často se také odvozuje podle návrhových vzorů, které slouží pro sjednocení konvence.

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 orientaci v konkrétním algoritmu a zjišťování, co kód reálně dělá. Software pro psaní zdrojového kódu často umožňuje automatické formátování, což programátorovi usnadňuje práci a umožňuje mu soustředit se na vlastní programování. +more 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í

Styl zápisu s odsazováním pomáhá při identifikaci bloků kódu. U některých programovacích jazyků je odsazování používáno pro stanovení hranice logických bloků zdrojového kódu. +more Správné odsazování je v tomto případě více, než jen problém stylu. V některých jazycích neovlivňují netisknutelné znaky a odsazování funkčnost, avšak dělají zdrojový kód čitelnější. Porovnejte zápisy:.

if (hours

nebo

if (hours

s tímto zápisem bez přehledného odsazování

if ( hours

První dva příklady jsou čitelnější, odsazení je provedeno podle ustanovených pravidel. Tento styl odsazování je zejména používán u vícenásobných vnořených bloků.

Programovací jazyk Python používá odsazování přímo k definici struktury a významu zdrojového kódu.

Svislé zarovnání

Často je užitečné seřadit podobné elementy zdrojového kódu svisle, protože jsou vzniklé chyby zřetelnější. Porovnejte:

$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux');

$value = 0; $anothervalue = 1; $yetanothervalue = 2;

s tímto příkladem:

$search = array('a', 'b', 'c', 'd', 'e'); $replacement = array('foo', 'bar', 'baz', 'quux');

$value = 0; $anothervalue = 1; $yetanothervalue = 2;

U druhého příkladu je zvýrazněná možná chyba: * v poli search je o jednu položku navíc

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 elastických tabulátorů. +more Na další problém můžeme narazit při použití verzovacích systémů: pokud bychom přidali čtvrtou položku s delším názvem, museli bychom přidat mezery i k prvním třem řádkům - ve verzovacím systému by pak byly zaznamenány změny na řádcích, na kterých se fakticky nic nezměnilo.

Mezery

U většiny programovacích jazyků platí, že pro oddělení syntaktických elementů lze použít libovolný počet bílých znaků (mezer, tabulátorů a konců řádku). Vhodné použití bílých znaků zlepšuje čitelnost zdrojového kódu. +more Příkladem může být porovnání syntakticky ekvivalentních příkladů zdrojového kódu jazyka C:.

int i; for(i=0;i

vs.

int i; for (i=0; i

vs.

int i; for ( i = 0; i

Tabulátory

Použití tabulátoru k odsazení znaků přináší specifické problémy s velikostí odsazení tabulátoru, které se liší v závislosti na použitých nástrojích a uživatelských preferencích. Příkladem může být programátor, který má nastaven tabulátor o délce čtyři znaky a přizpůsobuje tomu svůj zdrojový kód:

int ix; // Index to scan array long sum; // Accumulator for sum

Jiný programátor má v editoru nastaven tabulátor o délce osmi znaků. Při prohlížení kódu od prvního programátora může být zdrojový kód méně čitelný:

int ix; // Index to scan array long sum; // Accumulator for sum

Stanovení šířky osazení (obvykle 4 znaky, případně 8 nebo 2) a rozhodnutí, zda pro odsazování používat tabulátory nebo mezery je důležitou součástí konvencí pro psaní kódu každého týmu. Teoretickou výhodou použití tabulátorů je, že ukládají do textu sémantickou informaci: počet úrovní odsazení = počet po sobě jdoucích tabulátorů. +more Použití tabulátorů však přináší problémy, protože je obtížné tuto konvenci dodržovat, když kód odsazený tabulátory a mezerami vypadá stejně. Z tohoto důvodu je lepší se použití tabulátorů úplně vyhnout.

Vhodné názvy proměnných

Vhodný výběr názvů proměnných je základním principem pro tvorbu dobře stylizovaného zdrojového kódu. Špatně pojmenované proměnné zhorší jeho čitelnost, což je ukázáno na příkladu:

get a b c if a < 24 and b < 60 and c < 60 return true else return false

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ží. V 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:

get hours minutes seconds if hours < 24 and minutes < 60 and seconds < 60 return true else return false

Reference

Externí odkazy

[url=https://www.gnu.org/prep/standards/html_node/Writing-C.html]GNU Coding Standards: Writing C[/url]

Kategorie:Zdrojový kód

5 min read
Share this post:
Like it 8

Leave a Comment

Please, enter your name.
Please, provide a valid email address.
Please, enter your comment.
Enjoy this post? Join Cesko.wiki
Don’t forget to share it
Top