Annons
Utan tvekan är programmering tuff. Det är en sak att göra lära sig språk och studera algoritmer, men det är ett helt annat djur som försöker koda en komplex fungerande applikation som inte gör att du vill klöva ögonen.
På ett sätt är att skriva ren kod mycket som att rita, laga mat eller fotografera - det ser lättare ut än vad det faktiskt är. Så varför bry sig? Tja, eftersom fördelarna är värda det:
- Problem blir lättare att lösa. När du börjar tänka med ren kod förändras din inställning till problemlösning. Istället för lösningar för brute-tvång blir dina algoritmer och programvarudesign mer elegant och avsiktlig.
- Mindre tid slösas bort på underhåll. Ren kod är lättare att läsa och förstå, så du lägger mindre tid på att försöka ta reda på vad vissa segment faktiskt gör och mer tid på att fixa, revidera, utöka etc.
- Idéer kommuniceras tydligare. Om du arbetar med andra programmerare minskar ren kod sannolikheten för missförstånd mellan er alla, vilket också betyder färre buggar på lång sikt.
Så här kan DU börja skriva ren kod.
1. Använd beskrivande namn
Vad är variabler, klasser och funktioner? Det finns många sätt att svara på det, men när du verkligen tänker på det är dessa saker inget annat än gränssnittet mellan en programmerare och den underliggande logiken i en applikation.
Så när du använder oklara och icke-beskrivande namn för variabler, klasser och funktioner, du döljer i princip applikationslogiken från alla programmerare som läser koden, inklusive dig själv.
”Jag är inte en bra programmerare; Jag är bara en bra programmerare med fantastiska vanor. ”
- Kent Beck
Vad heter en variabel DXY
egentligen menar? Vem vet. Du måste förmodligen läsa hela koden för att omvända dess betydelse. Å andra sidan betydelsen av en variabel som distanceBetweenXY
är omedelbart igenkännbar.
Detsamma gäller för klasser och funktioner. Nöj inte med CalcTan ()
när du kan gå för CalculateTangent ()
eller CalcTangentAngle ()
istället.
2. Ge varje klass / funktion ett syfte
Har du någonsin tittat inuti en funktion som var hundratals eller till och med tusentals rader lång? Om du har det, vet du hur mycket av en smärta det kan vara att bläddra, förstå och redigera. Kommentarer kan hjälpa men endast i begränsad grad.
"Programmering bryter en stor omöjlig uppgift i flera små möjliga uppgifter."
- Jazzwant
Ren kod delas upp i atombitar. Varje funktion bör syfta till att göra en enda sak och varje klass bör syfta till att representera ett specifikt koncept. Detta är förstås en förenkling, men när du är osäker är enklare renare.
I praktiken en komplex beräkning som GetCreditScore ()
kan behöva delas upp i flera hjälpfunktioner som GetCreditReports ()
, ApplyCreditHistoryAge ()
, och FilterOutstandingMarks ()
.
3. Radera onödig kod
Denna dåliga vana är en som jag fortfarande kämpar med då och då. Det händer vanligtvis så här: Jag vill fixa eller optimera en bit kod så jag kommenterar den och gör en omskrivning precis under den - och även om den fungerar behåller jag den gamla koden där för fall.
"Är det möjligt att programvara inte är som något annat, att det är tänkt att kasseras: att hela poängen är att alltid se det som en tvålbubbla?"
- Alan J. Perlis
Med tiden samlar jag upp en hel del kommenterade blockblock med kod som inte längre behövs än som rör på mina källfiler. Och det roliga är att i många fall har den omgivande koden utvecklats så att den kommenterade koden inte fungerar även om den återställs.
Saken är att denna praxis att kommentera "säkerhetskod" har föråldrats av källkontroll. Om du inte använder något som Git eller Mercurial, måste du göra det börja använda källkontrollen direkt. Rengöringskod väntar på dig.
Kom ihåg att det också är viktigt att undvika att skriva upprepande koder, som du enkelt kan uppnå med en webbram. Här är några webbramar som är värda att lära sig som utvecklare 5 Webbramar som är värda att lära för utvecklareIntresserad av att lära sig avancerad webbutveckling? Undvik att skriva upprepande kodanvändning i stället för dessa webbutvecklingsramar. Läs mer .
4. Läsbarhet> Cleverness
Alltför många programmerare förväxlar “ren kod” med “smart kod”, som om komprimering av tio rader till en eller annan är renare. Visst, det tar mindre plats på skärmen, men är det faktiskt lättare att förstå? Ibland kanske. Men för det mesta? Nej.
”Alla vet att felsökning är dubbelt så svår som att skriva ett program i första hand. Så om du är så smart som du kan vara när du skriver det, hur kommer du någonsin felsöka det? "
- Brian W. Kernighan
Jag tror att programmerare älskar smart kod eftersom det känns som ett löst pussel eller gåta. De hittade ett speciellt och unikt sätt att implementera något - en "genväg" om du vill - och det fungerar nästan som en validering av programmerarens färdigheter.
Men för att skriva ren kod måste du lämna ditt ego vid dörren.
Optimera alltid koden för nästa person som kommer att läsa den, för det är troligt att nästa person är det faktiskt kommer att bli DU och det finns inget mer skamligt än att inte kunna läsa eller förstå din egen skicklighet.
5. Behåll en konsekvent kodningstil
jag har ingenting mot bra programmeringsstudier Vad gör en bra programmeringshandledning?Inte alla programmeringsstudier görs lika. Vissa gynnar dig och andra slösar bort din tid. Här är vad du ska leta efter i en kvalitetsprogrammeringsstudie. Läs mer , men en av nackdelarna är att nybörjare hamnar ihop en mängd olika motstridiga vanor, särskilt när det gäller kodningsstil.
Jag är inte här för att förklara att en stil är bättre än en annan. Om du vill ha hängslen på sina egna linjer, gå efter det. Om du vill gå före metodsamtal med mellanslag, bra. Om du föredrar flikar framför mellanslag, låt mig inte övertyga dig annars.
Men vad du än gör, håll dig konsekvent!
Vackert är bättre än fult.
Explicit är bättre än implicit.
Enkelt är bättre än komplex.
Komplex är bättre än komplicerat.
Lägenhet är bättre än kapslade.
Sparsamt är bättre än tätt.
Läsbarhet räknas.
- Tim Peters, Zen av Python
Om du ska använda camelCaseNaming
för variabler, inte förfalska det med underscore_naming
. Om du använder GetThisObject ()
på ett ställe, gå inte med FetchThatObject ()
någonannanstans. Och om du blandar flikar och mellanslag förtjänar du att ditt tangentbord tas bort.
Bestäm vad du ska göra från början och hålla fast vid det igenom och igenom. Vissa språk, som Python och C #, har språkövergripande stilguider som du kanske vill följa.
6. Välj rätt arkitektur
Det finns många olika paradigmer och arkitekturer som du kan använda för att skapa dina projekt. Lägg märke till hur detta tips handlar om att välja rätt en för dina behov, inte om att välja bäst en där ute. Det finns inget "bäst" här.
"Utan krav och design är programmering konsten att lägga till buggar i en tom textfil."
- Louis Srygley
Till exempel är MVC-mönstret Model-View-Controller mycket populärt just nu inom webbutveckling eftersom det hjälper till att hålla din kod organiserad och utformad på ett sätt som minimerar underhållsarbetet.
På samma sätt är Entity-Component-System (ECS) -mönstret mycket populärt just nu i spelutveckling eftersom det hjälper till att modulera speldata och logik på ett sätt som underlättar underhållet, samtidigt som du producerar kod som är lättare att göra läsa.
7. Behärska språkets formspråk
En av svårigheterna i behärska ett nytt programmeringsspråk 7 användbara trick för att behärska ett nytt programmeringsspråkDet är okej att bli överväldigad när du lär dig att koda. Du kommer förmodligen att glömma saker så snabbt som du lär dig dem. Dessa tips kan hjälpa dig att bättre behålla all den nya informationen. Läs mer lär sig nyanser som skiljer det från alla andra språk. Dessa nyanser kan vara skillnaden mellan fula, snodd kod och vacker, lätt att underhålla kod.
Tänk på Python, Java och JavaScript. De är alla extremt olika från varandra, till en grad som kräver en olika sätt att tänka på beroende på vilket språk du väljer att använda.
"Ett språk som inte påverkar ditt sätt att tänka på programmering är inte värt att veta."
- Alan J. Perlis
Medan Python handlar om kompakt kod och anka typ, är Java mer mot sidan av verbositet och explicitness. Varje språk har idiomer (som listförståelser i Python) som uppmuntrar ett visst sätt att koda. Du skulle göra det bra att lära dem.
Det finns också ”antimönster” att oroa sig för, som i huvudsak är suboptimala designmönster som resulterar i ineffektiv, opålitlig eller på annat sätt dålig kod. Studera och ta bort alla vanliga antimönster som är relaterade till ditt språk du väljer.
8. Studera Masters Code
Om du vill skriva ren kod är det bästa du kan göra att se hur ren kod ser ut och försöka förstå varför det är så det är - och det finns inget bättre sätt att göra detta än genom att studera källfilerna till branschmästare.
Uppenbarligen kan du inte bara dyka in i Microsofts huvudkontor och titta på deras projekt, men du kan alltid bläddra i välkända open source-projekt Hur man visar och redigerar källkoden för en öppen källkodsappÄven om att gå med open source kan vara ett bra val, måste du också investera i rätt community. GitHub är en av de bästa platserna att göra detta, inte bara på grund av det stora antalet ... Läs mer . Vet du inte var jag ska börja? Prova visade projekt på Github.
”Varje idiot kan skriva kod som en dator kan förstå. Bra programmerare skriver kod som människor kan förstå. ”
- Martin Fowler, Refactoring: förbättra utformningen av befintlig kod
Det är ju en av anledningarna varför öppna källkodsprojekt finns Varför bidrar människor till Open Source-projekt?Utveckling av öppen källkod är programvarans framtid. Det är bra för användare eftersom öppen källkodsprogram vanligtvis är tillgängligt gratis och ofta säkrare att använda. Men vad tvingar utvecklare att bidra med kod gratis? Läs mer : så att andra kan lära av dem. Och om du bestämmer dig för att bidra till ett sådant projekt, det kan påskynda inlärningsprocessen 5 Projektidéer som hjälper dig att lära dig programmera snabbareDet finns några sätt att underlätta inlärningskurvan för programmering. Få dina händer smutsiga och lära dig snabbare med sidoprojekt som du kan starta när som helst. Lek med dessa fem. Läs mer .
Personligen är den allra första gången jag såg riktigt ren kod när jag snubblat över en viss hobbys öppen källkod Python-projekt. Koden var så överväldigande elegant att jag nästan slutade programmera, men det slutade med att lära mig mycket.
9. Skriv bra kommentarer
"Skriv bra kommentarer" är den äldsta rådgivningen i programmeringsvärlden. Så snart nybörjare introduceras till kommentarer uppmuntras de ganska mycket att kommentera så ofta de kan.
Men det känns nästan som om vi har svängt för långt i motsatt riktning. Särskilt nybörjare tenderar att överkommentera - att beskriva saker som inte behöver beskrivas och saknar poängen vad en ”bra kommentar” faktiskt är.
"Kod alltid som om killen som slutar behålla din kod kommer att vara en våldsam psykopat som vet var du bor."
- John Woods
Här är en bra tumregel: kommentarer finns för att förklara VARFÖR en kodbit snarare än VAD koden faktiskt gör. Om koden skrivs tillräckligt rent bör den vara självförklarande vad den gör - kommentaren borde belysa avsikten bakom varför den skrevs.
Kommentarer kan vara bra för varningar (dvs. "ta bort detta kommer att bryta A, B och C") men för det mesta avslöja saker som inte omedelbart kan hämtas från koden (dvs. "använd den här parametern eftersom X, Y och Z”).
10. Refactor, Refactor, Refactor
Precis som redigering är en del av skrivprocessen, är refactoring en del av kodningsprocessen. En motvilja mot refactoring är det snabbaste sättet att sluta med ohållbar kod, så på många sätt är detta faktiskt det viktigaste tipset att tänka på.
Kort sagt, refactoring är bara ett fint uttryck för att rensa upp koden utan att påverka dess faktiska beteende.
"När jag måste tänka för att förstå vad koden gör, frågar jag mig själv om jag kan refaktorera koden för att göra den förståelsen mer uppenbar."
- Martin Fowler, Refactoring: förbättra utformningen av befintlig kod
En bit av visdom som har fastnat hos mig är ordspråket, "Kommentera inte dålig kod. Omskriva det. ” Som Fowler förklarar i citatet ovan, om koden någonsin känns förvirrande nog att du behöver kommentera den, kanske du faktiskt behöver refaktorera den.
När du redigerar kodkod här och där genom hela projektet, lämna alltid koden i bättre skick än när du först hittade den. Det kan verka som en olägenhet just nu, men det kommer att lönas i det långa loppet (och kan till och med avvärja mental utbränning Programmera utbrändhet: Hur du kan återfå din förlorade motivAtt skriva alla dessa kodrader kan tömmas fysiskt och känslomässigt. Allt du behöver för att få tillbaka är medvetenheten om att motivation kan återvinnas. Läs mer ).
Det finns alltid något nytt att lära sig
En programmerare som lär sig att skriva ren kod liknar en romanförfattare som lär sig att skriva ren prosa: det finns inget rätt sätt att göra det i sig, men det finns många fel sätt att göra det på, och det kommer att ta år att bemästra.
Vissa människor har inte vad som krävs och så småningom slutar sluta programmera för gott 6 tecken på att du inte är tänkt att vara programmerareDet är inte alla som är programmerare. Om du inte är helt säker på att du är tänkt att vara programmerare är här några tecken som kan peka dig i rätt riktning. Läs mer - och det är bra för det finns gott om andra tekniska jobb som inte involverar kodning Kodning är inte för alla: 9 tekniska jobb som du kan få utan detBli inte avskräckt om du vill vara en del av det tekniska området. Det finns gott om jobb för människor utan kodningsförmåga! Läs mer . Men för alla andra är ren kod något som är absolut värt att sträva efter, även om det tar resten av ditt liv för att komma dit.
Joel Lee har en B.S. inom datavetenskap och mer än sex års yrkeserfarenhet. Han är chefredaktör för MakeUseOf.