Programovací konvence je v informatice soubor pokynů pro konkrétní programovací jazyk, která standardizují styl zápisu programu, postupy a metody pro každý aspekt programu napsaném v tomto jazyce. Tyto pokyny se obvykle týkají organizace souborů, stylu odsazování, komentářů, deklarací, příkazů, použití bílých znaků, konvencí pojmenovávání (proměnných, názvů funkcí…), postupů programování, principů programování, architektonicky osvědčených postupů, a tak dále. Tyto pokyny mají za cíl dodržet kvalitu kódu. Programátorům je doporučeno pokyny dodržovat, aby se zlepšila čitelnost jejich zdrojového kódu a aby byla údržba softwaru jednodušší. Programovací konvence se vztahují pouze na lidské správce a peer recenzenty softwarových projektů. Programovací konvence mohou být formálně zdokumentovaný soubor pravidel, která celý tým nebo společnost dodržuje, nebo mohou být neformální, jako obvyklé postupy používané jedincem. Programovací konvence nemají vliv na práci překladače.

Údržba softwaru Snížení nákladů na údržbu softwaru je nejčastější důvod pro dodržování programovacích konvencí. V jejich úvodu do programovacích konvencí pro programovací jazyk Java, Sun Microsystems poskytuje následující odůvodnění: Programovací konvence jsou důležité pro programátory z řady důvodů: 40%-80% nákladů za software po dobu jeho životního cyklu se utratí za údržbu.Robert L. Glass: Facts and Fallacies of Software Engineering; Addison Wesley, 2003. Málokterý software je udržován po celý svůj život jeho původním autorem. Programovací konvence zlepšuje čitelnost softwaru, což umožňuje inženýrům pochopit nový kód rychleji a lépe. Pokud pošlete váš zdrojový kód jako produkt, musíte se ujistit, že stejně dobře zabalený a uhlazený jako jakýkoli jiný produkt, který vytvoříte.

Softwarové inženýrství Softwarové inženýrství je proces, při kterém je projekt specifikován a navržen. To je naprosto zásadní pro úspěch, zejména u velkých projektů. Dobré softwarové inženýrství může znamenat rozdíl mezi úspěšným projektem, a to jak po finanční, tak i technické stránce, a projektem, který je, v nejhorším případě, k ničemu.. Dobré softwarové inženýrství bude minimalizovat následné náklady a maximalizovat marketingový úspěch projektu.

Specifikace projektu Musí být vytvořeny následující dokumenty: Stručný popis projektu. Jedná se o jednoduchý popis projektu, který daný projekt odstartuje, a netvoří součást řetězce formálních dokumentů. Požadavky specifikace. To určuje, co projekt je. Toto je základní část řetězce dokumentu. Všechny ostatní dokumenty se od něj odvíjejí. Návrh projektu. Je to formální dokument stavby projektu. Specifikuje moduly a komponenty, jejich rozhraní, a jak jsou připojeny. Softwarový inženýr, při tvorbě toho dokumentu, prochází všechny různé způsoby, jak designovat daný projekt a vybrat nejlepší možné řešení. Při tomto procesu je nutné brát ohled na všechny aspekty včetně technického, kvalitativního, manažerského, logistického a komerčního. To zahrnuje čas a náklady na vývoj, údržbu, podporu a využití. Součástí této práce je architektonický návrh a mnohem víc. Specifikace testu. To určuje všechny testy, které mají být prováděny a jaké výsledky mají být kontrolovány. Často jsou testy spouštěny v rámci automatického testování a zkoušky uvedené buď ve zdrojovém kódu samotném nebo ve skriptech. Výsledky testu. Celý proces specifikace projektu je to, co se nazývá řetězce dokumentace. Každý dokument má 1:1 vztah k předchozímu dokumentu, a specifikace testu má 1:1 vztah ke specifikaci požadavků. Řetězec dokumentace je obousměrný, jedním směrem jdou požadavky, druhým výsledky.

Tyto metody se nazývají formální metody.

Kvalita Software peer review často zahrnuje čtení zdrojového kódu. Tento typ peer review slouží především k detekci vad a chyb v kódu. Definitoricky četl zdrojový kód před jeho předložením k přezkoupání pouze autor. Kód, který je konzistentně upravený, je pro ostatní recenzenty jednodušší k pochopení a lépe se tudíž hledají jeho chyby.

Konzistentní software usnadňuje udržovatelnost i pro původního autora. Neexistuje žádná záruka, že si jedinec bude pamatovat přesné zdůvodnění , proč konkrétní kus kódu byl napsán určitým způsobem, dlouho poté, co byl kód původně napsán. Kódovací konvence mohou pomoci. Důsledné používání mezer zlepšuje čitelnost a snižuje čas potřebný k pochopení softwaru a jeho funkcí.

Standardy programování Pokud jsou programovací konvence speciálně navrženy tak, aby vytvářely vysoce kvalitní kód, a byly formálně přijaty, mohou se tyto konvence stát standardy programování. Specifické styly, bez ohledu na to, zda jsou běžně přijaty, nemusí automaticky produkovat kvalitní kód. Pouze dobře navržený styl pomáhá napsání vysoce kvalitního kódu. To znamená, že musí být velmi logický, v každém aspektu jeho designu – každý aspekt musí být jasně zdůvodnitelný a produkovat kvalitní kód.

Potlačování složitosti Omezování složitosti je velmi důležité. Během psaní by si vývojář projektu měl pravidelně pokládat otázku: „Je tento projekt realizován s co nejkratším a nejjednodušším kódem?“. Pokud ne, s vývojem vznikají nadbytečné náklady a je prováděna „zbytečná“ práce. 

Složitost je možno ovlivnit jak ve fázi návrhu (jak je projekt navržen) tak ve fázi vývoje – při programování. Pokud je použito jednoduché a základní programování, je možnost omezit složitost kódu na minimum. Toho lze docílit tím, že programování bude co nejvíce „fyzické“, tedy prováděné způsobem, který je přímý a neabstraktní. To vytváří optimální kód, který lze snadno číst a sledovat.

Čím složitější kód je, tím je pravděpodobnější, že se v kódu budou vyskytovat chyby a bude je obtížnější odhalit. Zvyšuje se také riziko skrytých chyb, které mohou ovlivnit bezpečnost aplikace. Bezpečné programování je velmi důležité.

Refaktorizace Refaktorizace se týká softwarové údržby, kdy je zdrojový kód upraven tak, aby se zlepšila čitelnost nebo jeho struktura. Software je často refaktorován, aby se uvedl do souladu s vývojáři stanovenými standarty po jeho počátečním vydání. Každá změna, která nemění chování software, může být považován za refaktorizaci. Běžné refaktorizační činnosti zahrnují změny názvů proměnných, přejmenování metod, posunutí metody nebo celé třídy a rozdělování velkých metod (nebo funkcí) do menších.

Agilní metodiky vývoje software plánuje pravidelné (nebo i kontinuální) refaktorizace, což je nedílnou součástí procesu softwarového vývoje.

Reference

Kategorie:Softwarové inženýrství Kategorie:Zdrojový kód