Konvence kódování - Coding conventions
Vývoj softwaru |
---|
Hlavní činnosti |
Paradigmata a modely |
Metodiky a rámce |
Podpůrné disciplíny |
Praxe |
Nástroje |
Standardy a subjekty znalostí |
Glosáře |
Obrysy |
Konvence kódování jsou souborem pokynů pro konkrétní programovací jazyk to doporučuji styl programování, postupy a metody pro každý aspekt programu napsaného v daném jazyce. Tyto konvence obvykle pokrývají organizaci souborů, odsazení, komentáře, prohlášení, prohlášení, prázdné místo, konvence pojmenování, programovací postupy, programovací principy, programovací pravidla, architektonické doporučené postupy atd. Toto jsou pokyny pro softwarová strukturální kvalita. Softwaroví programátoři Důrazně doporučujeme dodržovat tyto pokyny a zlepšit tak čitelnost Jejich zdrojový kód a udělat údržba softwaru jednodušší. Konvence kódování jsou použitelné pouze pro lidské správce a recenzenti softwarového projektu. Konvence mohou být formalizovány v dokumentované sadě pravidel, kterými se řídí celý tým nebo společnost,[1] nebo mohou být stejně neformální jako obvyklé postupy kódování jednotlivce. Konvence kódování nejsou vymáhány překladače.
Údržba softwaru
Snižování nákladů na údržba softwaru je nejčastěji uváděným důvodem pro dodržování konvencí kódování. Ve svém úvodu ke konvencím kódu pro programovací jazyk Java poskytuje Sun Microsystems následující důvody:[2]
Konvence kódu jsou pro programátory důležité z mnoha důvodů:
- 40% –80% celoživotních nákladů na kus softwaru jde na údržbu.[3]
- Původní autor téměř žádný software neudržuje po celou dobu jeho životnosti.
- Konvence kódu zlepšují čitelnost softwaru a umožňují technikům rychleji a důkladněji porozumět novému kódu.
- Pokud dodáváte zdrojový kód jako produkt, musíte se ujistit, že je stejně dobře zabalený a čistý jako jakýkoli jiný produkt, který vytvoříte.
Kvalitní
Peer review softwaru často zahrnuje čtení zdrojového kódu. Tento typ vzájemného hodnocení je primárně a přeběhnout detekční činnost. Podle definice přečetl zdrojový soubor před odesláním kódu ke kontrole pouze původní autor části kódu. Kód napsaný pomocí konzistentních pokynů je pro ostatní recenzenty snazší pochopit a asimilovat, což zvyšuje účinnost procesu detekce vady.
I pro původního autora usnadňuje udržovatelnost důsledně kódovaný software. Neexistuje žádná záruka, že si jednotlivec bude pamatovat přesné důvody, proč byla určitá část kódu napsána určitým způsobem dlouho poté, co byl kód původně napsán. Konvence kódování mohou pomoci. Důsledné používání mezery zlepšuje čitelnost a zkracuje čas potřebný k pochopení softwaru.
Standardy kódování
Tam, kde byly konvence kódování speciálně navrženy tak, aby vytvářely vysoce kvalitní kód, a poté byly formálně přijaty, stanou se standardy kódování. Specifické styly, bez ohledu na to, zda se běžně používají, automaticky nevytvářejí kvalitní kód.
Snížení složitosti
Složitost je faktor, který jde proti bezpečnosti.[4]
Správa složitosti zahrnuje následující základní princip: minimalizovat množství kódu napsaného během vývoje projektu. Tím se zabrání zbytečné práci, která zabrání zbytečným nákladům, a to jak předem, tak po proudu. Je to jednoduše proto, že pokud je kódu méně, je méně práce nejen s vytvořením aplikace, ale také s její údržbou.
Složitost je řízena jak ve fázi návrhu (jak je projekt projektován), tak ve fázi vývoje (tím, že má jednodušší kód). Pokud je kódování zachováno základní a jednoduché, pak bude minimalizována složitost. Velmi často je to udržování co nejvíce „fyzického“ kódování - kódování způsobem, který je velmi přímý a není příliš abstraktní. Tím se vytvoří optimální kód, který se snadno čte a sleduje. Složitosti lze také zabránit jednoduše tím, že nepoužíváte složité nástroje pro jednoduché úlohy.
Čím složitější je kód, tím je pravděpodobnější, že bude buggy, tím obtížnější je hledání chyb a tím pravděpodobnější jsou skryté chyby.
Refaktorování
Refaktorování odkazuje na činnost údržby softwaru, kde zdrojový kód je upraven za účelem zlepšení čitelnosti nebo zlepšení jeho struktury. Software je často refaktorován, aby jej po počátečním vydání uvedl do souladu se standardy kódování stanovenými týmem. Jakoukoli změnu, která nezmění chování softwaru, lze považovat za refaktoring. Běžné činnosti refaktoringu jsou změna názvů proměnných, přejmenování metod, přesunutí metod nebo celých tříd a lámání velkých metod (nebo funkce ) na menší.
Agilní metodiky vývoje softwaru plán pravidelného (nebo dokonce průběžného) refaktoringu, který z něj dělá nedílnou součást týmu proces vývoje softwaru.[5]
Automatizace úloh
Konvence kódování umožňují mít jednoduché skripty nebo programy, jejichž úkolem je zpracovávat zdrojový kód za jiným účelem, než je kompilace do spustitelného souboru. Je běžnou praxí počítat velikost softwaru (Zdrojové řádky kódu ) ke sledování aktuálního pokroku projektu nebo stanovení výchozího stavu pro budoucnost odhady projektu.
Konzistentní standardy kódování mohou zase zvýšit konzistenci měření. Speciální značky v rámci komentáře ke zdrojovému kódu jsou často používány ke zpracování dokumentace, jsou dva pozoruhodné příklady javadoc a doxygen. Nástroje určují použití sady značek, ale jejich použití v rámci projektu je určeno konvencí.
Konvence kódování zjednodušují psaní nového softwaru, jehož úkolem je zpracovávat stávající software. Použití statická analýza kódu od 50. let soustavně roste. Některé z růstu této třídy vývojových nástrojů pramení ze zvýšené vyspělosti a sofistikovanosti samotných odborníků (a moderního zaměření na bezpečnost a bezpečnostní ), ale také z povahy samotných jazyků.
Jazykové faktory
Všichni odborníci na software se musí potýkat s problémem organizace a správy velkého množství někdy složitých pokynů. U všech, kromě nejmenších softwarových projektů, jsou zdrojový kód (pokyny) rozděleny na samostatné části soubory a často mezi mnoha adresáře. Pro programátory bylo přirozené shromažďovat úzce související funkce (chování) do stejného souboru a shromažďovat související soubory do adresářů. Jak se vývoj softwaru posunul od čistě procedurální programování (např. nalezené v FORTRAN ) směrem k více objektově orientovaný konstrukty (například nalezené v C ++ ) se stalo praxí psát kód pro jednu (veřejnou) třídu do jednoho souboru (konvence „jedna třída na soubor“).[6][7]Java zašla o krok dále - kompilátor Java vrátí chybu, pokud najde více než jednu veřejnou třídu na soubor.
Konvence v jednom jazyce může být požadavkem v jiném jazyce. Jazykové konvence také ovlivňují jednotlivé zdrojové soubory. Každý překladač (nebo tlumočník) použitý ke zpracování zdrojového kódu je jedinečný. Pravidla, která kompilátor použije na zdroj, vytvářejí implicitní standardy. Například kód Pythonu je mnohem důsledněji odsazen než, řekněme Perl, protože mezery (odsazení) jsou pro tlumočníka skutečně významné. Python nepoužívá syntaxi složených závorek, kterou Perl používá k vymezení funkcí. Změny v odsazení slouží jako oddělovače.[8][9] Tcl, který k ohraničení funkcí používá syntaxi složené závorky podobnou Perlu nebo C / C ++, neumožňuje následující, což se programátorovi C zdá docela rozumné:
soubor i = 0 zatímco {$ i < 10} { uvádí „$ i na druhou = [expr $ i * $ i]“ přírůstek i }
Důvod je ten, že v Tcl se složené závorky nepoužívají pouze k vymezení funkcí jako v C nebo Javě. Obecněji se složené závorky používají k seskupení slov do jednoho argumentu.[10][11]V Tcl je slovo zatímco trvá dva argumenty, a stav a akce. Ve výše uvedeném příkladu zatímco chybí jeho druhý argument, jeho akce (protože Tcl také používá znak nového řádku k ohraničení konce příkazu).
Společné konvence
Existuje velké množství konvencí kódování; vidět Styl kódování pro četné příklady a diskuzi. Běžné konvence kódování mohou zahrnovat následující oblasti:
- Komentář konvence
- Odsazený styl konvence
- Délka řádku konvence
- Pojmenování konvence
- Programovací postupy
- Principy programování
- Styl programování konvence
Standardy kódování zahrnují Standard kódování CERT C, MISRA C, Vysoká integrita C ++.
Viz také
- Porovnání programovacích jazyků (syntaxe)
- Maďarská notace
- Odsazený styl
- Seznam nástrojů pro statickou analýzu kódu
- Styl programování
- Softwarové metriky
- Kvalita softwaru
- ISO / IEC 9126 (nahrazeno ISO 25010)
- Síla 10 pravidel
- MISRA
Reference
- ^ „EditorConfig pomáhá vývojářům definovat a udržovat konzistentní styly kódování mezi různými editory a IDE“. EditorConfig.
- ^ „Konvence kódu pro programovací jazyk Java: Proč mít konvence kódu“. Sun Microsystems, Inc. 1999-04-20.
- ^ Robert L. Glass: Fakta a omyly softwarového inženýrství; Addison Wesley, 2003.
- ^ Tom Gillis.„Složitost je nepřítelem bezpečnosti“.
- ^ Jeffries, Ron (11.08.2001). „Co je to extrémní programování?: Vylepšení designu“. XP Magazine. Archivovány od originál dne 2006-12-15.
- ^ Hoff, Todd (01.01.2007). "Standard kódování C ++: Pojmenování souborů tříd".
- ^ Standardy kódování FIFE
- ^ van Rossum, Guido (19. 9. 2006). Fred L. Drake, Jr. (ed.). "Výukový program pro Python: První kroky k programování". Softwarová nadace Python. Archivovány od originál dne 2008-09-28. Citováno 2014-08-17.
- ^ Raymond, Eric (2000-05-01). „Proč Python?“. Linux Journal.
- ^ Tcl Developer Xchange. "Shrnutí syntaxe jazyka Tcl". ActiveState.
- ^ Staplin, George Peter (2006-07-16). „Proč nemohu zahájit nový řádek před skupinou složených závorek?“. „Tclerova Wiki“.
externí odkazy
Konvence kódování pro jazyky
- ActionScript: Konvence kódování Flex SDK a osvědčené postupy
- Ada: Průvodce kvalitou a stylem Ada 95: Pokyny pro profesionální programátory
- Ada: Průvodce pro použití programovacího jazyka Ada v systémech s vysokou integritou (ISO / IEC TR 15942: 2000)
- Ada: Pobočka letového softwaru NASA - Ada Coding Standard
- Ada: Standard kódování ESA Ada - BSSC (98) 3, vydání 1. října 1998
- Ada: Softwarové inženýrství a standardizace Evropské kosmické agentury
- C: Standard kódování CERT C Standard kódování CERT C (SEI)
- C: Standard kódování vloženého kódu (Barr Group)
- C: Standard vývoje firmwaru (Jack Ganssle)
- C ++: Kvantové skoky C / C ++ kódovací standard
- C ++: Programování v C ++ / Programovací jazyky / C ++ / Kodex / Konvence stylu
- C ++: Pokyny pro programovací styl GeoSoft C ++
- C ++: Průvodce stylem Google C ++
- C ++: Vysoká integrita C ++
- C#: Konvence kódování v C # (C # Programming Guide)
- C#: Pokyny k návrhu pro vývoj třídních knihoven
- C#: Brad Abrams
- C#: Philips Healthcare
- D: Styl D.
- Šipka: Průvodce stylem šipek
- Erlang: Erlang Programovací pravidla a konvence
- Flex: Konvence kódu pro Flex SDK
- Jáva: Ambysoft's Coding Standards for Java
- Jáva: Konvence kódu pro programovací jazyk Java (Není aktivně udržováno. Nejnovější verze: 1999-APR-20.)
- Jáva: Pokyny pro programovací styl Java společnosti GeoSoft
- Jáva: Standardy kódování Java na Curlie
- Jáva: Konvence kódování SoftwareMonkey pro Javu a další jazyky složené syntaxe
- JavaScript: Konvence kódu pro programovací jazyk JavaScript
- Lisp: Riastradh's Lisp Style Rules
- MATLAB: Konvence kódování Neurobat pro MATLAB
- Objekt Pascal: Průvodce stylem Object Pascal
- Perl: Průvodce stylem Perl
- PHP :: HRUŠKA: Standardy kódování PHP :: PEAR
- PHP :: FIG: Interopová skupina PHP Framework
- PL / I: Průvodce stylem PL / I
- Krajta: Průvodce stylem pro kód v Pythonu
- Rubín: Neoficiální příručka k používání rubínů
- Rubín: Průvodce stylem GitHub Ruby
- Shell: Průvodce stylem společnosti Google
Konvence kódování pro projekty
- Průvodce jazykovým stylem Apache pro vývojáře
- Drupal PHP kódovací standardy
- Standardy kódování rámce Zend
- Normy kódování GNU
- Průvodci styly pro open-source projekty od Googlu
- Styl kódování jádra Linuxu (nebo Documentation / CodingStyle ve zdrojovém stromu jádra Linuxu)
- Průvodce stylem kódování Mozilla
- Pokyny C ++ pro silniční intranet
- Průvodce stylem zdrojového kódu NetBSD (dříve známý jako BSD Kernel Normal Form)
- Průvodce stylem zdrojového souboru OpenBSD jádra (KNF)
- „Styl kódování GNAT: Průvodce pro vývojáře GNAT“. Online dokumentace GCC. Free Software Foundation. Citováno 2009-01-19. (PDF )
- Styl jazyka ZeroMQ C pro škálovatelnost (TŘÍDA)
- Mono: Styl programování pro Mono