Namnkonvention (programmering)
En namnkonvention är en uppsättning regler inom programmering för att välja en teckenföljd att använda för identifierare som betecknar variabler, typer, funktioner och andra enheter i källkod och dokumentation.
Anledningar till att använda en namnkonvention (till skillnad från att låta programmerare välja vilken teckenföljd som helst) inkluderar följande:
- För att minska mödan som krävs för att läsa och förstå källkoden.[1]
- För att göra det möjligt för kodgranskare att fokusera på viktigare saker än syntax och namnstandarder.
- För att göra det möjligt för verktyg som granskar kodkvalitet att fokusera främst på andra mer betydelsefulla saker än syntax- och stilpreferenser.
Potentiella fördelar
[redigera | redigera wikitext]Några potentiella fördelarna med att anta en namnkonvention inkluderar följande:
- För att ge ytterligare information (det vill säga metadata) om hur identifierare används.
- För att hjälpa till att formalisera förväntningar och främja konsekvens hos en utvecklingsgrupp.
- För att göra det möjligt att använda automatiserad omstrukturering eller sök- och ersättningsverktyg med minimal risk för felaktigheter
- För att öka tydligheten på ställen där det kan behövas.
- För att förbättra det estetiska och professionella utseendet hos en arbetsprodukt (till exempel genom att inte tillåta förkortningar, komiska eller "gulliga" namn eller alltför långa namn);
- För att undvika namnkonflikter som kan uppstå när arbetsprodukter från olika organisationer kombineras (se även: namnrymder).
- För att ge viktig data vid projektöverlämningar som kräver att programkällkod och all relevant dokumentation lämnas över.
- För att ge bättre förståelse om kod skulle återanvändas efter en längre tid.
Läsbarhet
[redigera | redigera wikitext]Välvalda identifierare gör det avsevärt lättare för utvecklare och analytiker att förstå vad systemet gör och hur man fixar eller utökar källkoden för att lägga till ny funktionalitet.
Till exempel, även om
a = b * c;
är korrekt syntaxmässigt blir inte dess syfte helt uppenbart. Till skillnad med
veckobetalning = antal_arbetade_timmar * lön_per_timme;
vilket förklarar källkodens avsikt och mening, åtminstone för dem som känner till sammanhanget.
Experiment tyder på att stilen hos identifierare påverkar återkallelse och precision och att bekantskap med en stil påskyndar återkallelse. [2]
Vanliga element
[redigera | redigera wikitext]Exempel på identifierarformat med flera ord
[redigera | redigera wikitext]Format | Namn |
---|---|
tvåord
|
flat case[3][4] |
TVÅORD
|
versal flat case[3] |
tvåOrd
|
(gemen) camelCase, dromedaryCase |
TvåOrd
|
PascalCase, UpperCamelCase, StudlyCase[5] |
två_ord
|
snake_case, pothole_case |
TVÅ_ORD
|
SCREAMING_SNAKE_CASE, MACRO_CASE, CONSTANT_CASE |
två_Ord
|
camel_Snake_Case |
Två_Ord
|
Pascal_Snake_Case |
två-ord
|
kebab-case, dash-case, lisp-case |
TVÅ-ORD
|
TRAIN-CASE, COBOL-CASE, SCREAMING-KEBAB-CASE |
Två-Ord
|
Train-Case,[3] HTTP-Header-Case[6] |
Se även
[redigera | redigera wikitext]Referenser
[redigera | redigera wikitext]- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia.
- ^ Derek M. Jones "Operand names influence operator precedence decisions" An experiment investigating the effect of variable names on operator precedence selection
- ^ Binkley, Dave; Davis, Marcia (2009). ”To CamelCase or Under_score”. 2009 IEEE 17th International Conference on Program Comprehension (17): sid. 158-167. doi:. http://www.cs.loyola.edu/~binkley/papers/icpc09-clouds.pdf.
- ^ [a b c] ”naming - What are the different kinds of cases?”. Stack Overflow. https://stackoverflow.com/questions/17326185/what-are-the-different-kinds-of-cases.
- ^ ”A brief list of programming naming conventions”. deanpugh.com. https://www.deanpugh.com/a-brief-list-of-programming-naming-conventions/.
- ^ ”PSR-1: Basic Coding Standard - PHP-FIG”. www.php-fig.org. https://www.php-fig.org/psr/psr-1/.
- ^ ”camel-snake-kebab”. camel-snake-kebab. https://clj-commons.org/camel-snake-kebab/.