Namngivande konventioner: Whats the Big Deal?

Författare: Laura McKinney
Skapelsedatum: 2 April 2021
Uppdatera Datum: 14 Maj 2024
Anonim
SysTools Mac MBOX Converter | Convert Mac MBOX Files to PDF
Video: SysTools Mac MBOX Converter | Convert Mac MBOX Files to PDF

Innehåll



Källa: Iunewind / Dreamstime.com

Hämtmat:

Att använda namn på konventioner eller ha standardiserad syntax är användbart vid programmering, men vissa föredrar att avvika från dessa standarder.

De flesta människor med en fördjupad kunskap om datavetenskap förstår behovet av något som "a = 1" - men de kan bli superförvirrade av "1 = a"!

Är datorer också förvirrade? Inte nödvändigtvis - men frågan om syntax är en stor fråga för att avgöra hur programmerare arbetar tillsammans. Kommer den här typen av syntaxdyslexi att sjunka fartyget?

En av de stora frågorna om hur man formaterar kod har att göra med "Yoda-förhållanden" (uppkallad efter "Star Wars" -karaktär känd för sin ovanliga engelska syntax), ett slags flip-flopping av en variabel och ett uppdrag, som visas ovan. Standarden, återigen, är att säga att en variabel "a" är lika med ett antal, inte att börja med siffran och tilldela variabeln det värdet. (För att lära dig mer om programmeringshistoriken, kolla in datorprogrammering: från maskinspråk till artificiell intelligens.)


Gör eller inte?

Programmerare är överens om att Yoda-förhållandena kan vara förvirrande för läsarna, men deras attityder skiljer sig något om huruvida denna teknik någonsin ska användas.

Tonya på WP Developers Club tar upp denna fråga med en detaljerad och visuell artikel - "Till Yoda eller inte till Yoda?" Där hon föreslår att det kan finnas legitima tider att vända dessa koduttalanden.

Tonya påpekar att användningen av Yoda-förhållanden kan hjälpa till att förhindra oavsiktliga värdetilldelningar orsakade av ett typografiskt fel. Om parametern använder en enda lika tecken (=) istället för en dubbel lika tecken (==), kommer datorn att tilldela en variabel värdet istället för att kontrollera om det är lika med det värdet. Att sätta värdet först kan hjälpa till att fånga detta fel. Tonya berättar också om några bästa metoder och myter kring den här typen av syntax, som tanken på att Yoda-förhållanden kan göra att en dator går snabbare.


"Yoda-förhållanden är en programmeringsstil för att hantera ett specifikt problem", skriver Tonya. ”Det bekänner sig inte att lösa andra problem. När den används korrekt kan det minimera effekterna av skrivfel för tilldelning när du tänkte jämföra. Utövare vet att dess avvägning är läsbarhet. ”

Ovanligt, det är

I ett blogginlägg om Pushing Inertia berättar en annan programmerare som heter Dan om det dubbeltagande som programmerare gör när de märker detta ovanliga tillstånd, i hans speciella exempel, i ett ”if” -uttalande:

Inga buggar, ingen stress - din steg-för-steg-guide för att skapa livsförändrad programvara utan att förstöra ditt liv

Du kan inte förbättra dina programmeringsfärdigheter när ingen bryr sig om mjukvarukvalitet.

"Det var redan ganska utmanande att spåra igenom logiken, och att se denna notation som strö över hela koden har bara lagt till mer mental komplexitet."

Dan fortsätter med att prata om hur programmeringslogik ska följa några av de språkkonventioner vi använder på engelska och andra världsspråk för att göra det lättare för andrapartsläsare. Han berättar om de gamla dagarna i C och andra språk, och hur moderna språk har skrivit Yoda-villkoren ur spelboken. (För att lära dig mer om programmeringskonventioner, se En introduktion till logikträd och strukturerad programmering.)

Dan föreslår också att användning av ett slutligt nyckelord i Java kan göra saker tydligare.

"Jag skulle säga att i välskriven kod kan cirka 85% av variablerna markeras som slutgiltiga, vilket förhindrar någon möjlighet till omfördelning. Observera att jag ovan har sagt att den slutliga gör minnesreferensen obrukbar. Det betyder att du fortfarande kan ha en variabel av typen Map eller Set och fritt ändra dess innehåll, men du kan inte tilldela en ny karta eller inställning till variabeln. De enda variablerna som jag inte markerar slutgiltigt är iteratorer, till exempel en räknare i en slinga och eventuellt en retur värde ... i sammanfattning kommer användning av det slutliga nyckelordet att förhindra många oavsiktliga kodproblem och eliminerar eventuella behov av Yoda-notationer. Det har också den trevliga effekten att tvinga kod till små, logiska, metoder som är enkla att testa och enkelt att förstå."

StackExchange, ett stort forum för proffdiskussioner, håller sig utanför striden. Webbplats moderatorer svarade på en fråga om Yoda villkor med detta uttalande:

”Som det för närvarande är, passar denna fråga inte bra för vårt Q & A-format. Vi förväntar oss att svar stöds av fakta, referenser eller expertis, men denna fråga kommer sannolikt att kräva debatt, argument, omröstning eller utökad diskussion. ”

Zeel Jadia är Senior Vice President of Engineering på Events.com. "Jag tycker att namngivningskonventioner är mycket användbara för att hjälpa till med läsbarhet och konsistens," sade Jadia som svar på en fråga om att upprätthålla kodstandarder.

”Detta hjälper olika utvecklare i samma team att känna sig mer hemma i olika applikationsområden och gör dem så mycket mer produktiva. Det viktigaste är att det måste initieras från första dagen och verkställas av interna standarder och recensioner ... så långt Yoda-förhållandena går, rivs det: Kompilatorer och vissa språk kan skydda oss redan mot de saker som Yoda-villkoren försöker övervinna. Men å andra sidan älskar jag Star Wars och Yoda var en fantastisk Jedi. ”

Tvingade, standarder måste vara

Till Jadia är det många situationer där kodare inte har något val - dessa standarder har redan tillämpats för dem. Huruvida du har förmågan att besluta att "göra Yoda-villkor" eller inte beror på nackdelarna med ditt programmeringsprojekt. Ta exempelvis en titt på den här "guiden" från WordPress på PHP som exemplifierar den typ av standarder som företag antingen föreslår eller verkställer, beroende på deras syn. WP-guiden innehåller alla typer av shalts och thou-shalt-nots på allt från namnkonventioner till rymdanvändning. Här är vad det har att säga om Yoda-villkoren:

”När du gör logiska jämförelser, placera alltid variabeln på höger sida, konstanter eller bokstäver till vänster ... (annars) ... om du utelämnar ett lika tecken ... kan du jaga det felet ett tag. Lite bisarr är det att läsa. Vänja dig det kommer du att göra. ”

Detta kommando sträcker sig dock inte till andra kodscenarier:

”Detta gäller ==,! =, === och! ==. Yoda-förhållandena för <,>, <= eller> = är betydligt svårare att läsa och undviks bäst. ”

Där har du det.

Detta är en av de taggiga frågor som lag kan prata om internt när de har sina veckovisa möten. Det är dock bra att veta varför den här typen görs, vad den övergripande konsensus är och vilka strängare eller lösare kodkonventioner kan leverera.