Annonse

Uten tvil er programmering tøff. Det er en ting å gjøre lære språk og studere algoritmer, men det er et helt annet beist som prøver å kode en kompleks arbeidsapplikasjon som ikke får deg til å ønske å klø øynene.

På en måte er det å skrive ren kode mye som å tegne, lage mat eller fotografere - det ser lettere ut enn det faktisk er. Så hvorfor bry seg? Vel, fordi fordelene er verdt det:

  • Problemer blir lettere å løse. Når du begynner å tenke på ren kode, endres tilnærmingen din til å løse problemene. I stedet for brute-tvangsløsninger, blir algoritmene og programvaredesignen mer elegant og forsettlig.
  • Mindre tid er bortkastet på vedlikehold. Ren kode er lettere å lese og forstå, så du bruker mindre tid på å prøve å finne ut hva visse segmenter faktisk gjør og mer tid på å fikse, revidere, utvide osv.
  • Ideene blir tydeligere kommunisert. Hvis du jobber med andre programmerere, reduserer ren kode sannsynligheten for misforståelser mellom dere alle, noe som også betyr færre feil i det lange løp.
instagram viewer

Slik kan DU begynne å skrive ren kode.

1. Bruk beskrivende navn

Hva er variabler, klasser og funksjoner? Det er mange måter å svare på, men når du virkelig tenker på det, er disse tingene ikke annet enn grensesnittet mellom en programmerer og den underliggende logikken i et program.

Så når du bruker uklare og ikke-beskrivende navn for variabler, klasser og funksjoner, du gjenspeiler programlogikken fra programmerere som leser koden, inkludert deg selv.

“Jeg er ikke en stor programmerer; Jeg er bare en god programmerer med gode vaner. ”
- Kent Beck

Hva heter en variabel dxy egentlig mener? Hvem vet. Du må sannsynligvis lese hele delen av koden for å reversere dens betydning. På den annen side, betydningen av en variabel som distanceBetweenXY er umiddelbart gjenkjennelig.

Det samme gjelder klasser og funksjoner. Ikke nøy deg med CalcTan () når du kan gå for CalculateTangent () eller CalcTangentAngle () i stedet.

2. Gi hver klasse / funksjon ett formål

Har du noen gang kikket inn i en funksjon som var hundrevis eller tusenvis av linjer lang? Hvis du har det, vet du hvor mye vondt det kan være å bla gjennom, forstå og redigere. Kommentarer kan hjelpe, men bare i begrenset grad.

"Programmering er å dele en stor umulig oppgave i flere små mulige oppgaver."
- Jazzwant

Ren kode brytes ned i atombiter. Hver funksjon skal ha som mål å gjøre en enkelt ting, og hver klasse skal ha som mål å representere ett bestemt konsept. Dette er en forenkling selvfølgelig, men når du er i tvil, er enklere renere.

I praksis en kompleks beregning som GetCreditScore () kan trenge å bli delt inn i flere hjelperfunksjoner som GetCreditReports (), ApplyCreditHistoryAge (), og FilterOutstandingMarks ().

3. Slett unødvendig kode

Denne dårlige vanen er en som jeg fremdeles sliter med fra tid til annen. Det skjer som oftest slik: Jeg vil fikse eller optimalisere en del av koden, så jeg kommenterer den og gjør en omskriving rett under den - og selv om den fungerer, beholder jeg den gamle koden der bare i tilfelle.

"Er det mulig at programvare ikke er som noe annet, at det er ment å bli kastet: at hele poenget er å alltid se det som en såpeboble?"
- Alan J. Perlis

Over tid samler jeg opp en hel masse kommenterte blokker med kode som ikke lenger er nødvendig, men enda rotet i kildefilene mine. Og det morsomme er at i mange tilfeller har den omkringliggende koden utviklet seg slik at den kommenterte koden ikke ville fungert selv om den ble gjenopprettet.

Saken er at denne praksisen med å kommentere “backup-kode” ble foreldet av kildekontroll. Hvis du ikke bruker noe som Git eller Mercurial, må du gjøre det begynn å bruke kildekontroll med en gang. Renere kode venter på deg.

Husk at det også er viktig å unngå å skrive repeterende koder, som du enkelt kan oppnå med en nettramme. Her er noen få nettrammer som er verdt å lære som utvikler 5 Nettrammer verdt å lære for utviklereEr du interessert i å lære avansert webutvikling? Unngå å skrive repeterende kodebruk i stedet for disse nettutviklingsrammer. Les mer .

4. Lesbarhet> Cleverness

For mange programmerere sammenveier “ren kode” med “smart code”, som om å komprimere ti linjer til en eller annen måte er renere. Jada, den tar mindre plass på skjermen, men er det faktisk lettere å forstå? Noen ganger, kanskje. Men mesteparten av tiden? Nei.

”Alle vet at feilsøking er dobbelt så vanskelig som å skrive et program i utgangspunktet. Så hvis du er så flink som du kan være når du skriver det, hvordan vil du noen gang debugge det? "
- Brian W. Kernighan

Jeg tror programmerere elsker smarte koder fordi det føles som et løst puslespill eller gåte. De fant en spesiell og unik måte å implementere noe på - en "snarvei" hvis du vil - og det fungerer nesten som en validering av programmererens ferdigheter.

Men for å skrive ren kode, må du legge igjen egoet ditt på døra.

Optimaliser alltid koden for neste person som skal lese den, for med stor sannsynlighet at neste person er det faktisk kommer til å bli DEG, og det er ikke noe mer skammelig enn å ikke kunne lese eller forstå din egen dyktighet.

5. Behold en konsekvent kodingstil

jeg har ingenting imot god programmeringsopplæring Hva gjør en god programmeringsopplæring?Ikke alle programmeringsveiledninger blir gjort like. Noen fordeler deg og andre ender opp med å kaste bort tiden din. Her er hva du skal se etter i en programmeringsopplæring av høy kvalitet. Les mer , men en av ulempene er at nybegynnere ender opp med å plukke opp et bredt utvalg av motstridende vaner, spesielt når det gjelder kodestil.

Jeg er ikke her for å erklære at en stil er bedre enn en annen. Hvis du vil ha seler på sine egne linjer, kan du gå etter det. Hvis du vil gå foran metodeanrop med mellomrom, er det greit. Hvis du foretrekker faner fremfor mellomrom, ikke la meg overbevise deg om noe annet.

Men uansett hva du gjør, vær konsekvent!

Vakker er bedre enn stygg.
Eksplisitt er bedre enn implisitt.
Enkelt er bedre enn komplekst.
Kompleks er bedre enn komplisert.
Flat er bedre enn nestet.
Sparsom er bedre enn tett.
Lesbarhet teller.
- Tim Peters, Zen av Python

Hvis du kommer til å bruke camelCaseNaming for variabler, ikke forfalsk det med underscore_naming. Hvis du bruker GetThisObject () et sted, ikke gå med FetchThatObject () et annet sted. Og hvis du blander faner og mellomrom, fortjener du å få tastaturet tatt bort.

Bestem hva du skal gjøre fra begynnelsen, og hold deg til det gjennom og gjennom. Noen språk, som Python og C #, har språklige stilguider som du kanskje vil følge.

6. Velg riktig arkitektur

Det er mange forskjellige paradigmer og arkitekturer som du kan bruke til å lage prosjektene dine. Legg merke til hvordan dette tipset handler om å velge Ikke sant en for dine behov, ikke om å velge beste en der ute. Det er ingen "beste" her.

"Uten krav og design er programmering kunsten å legge til feil i en tom tekstfil."
- Louis Srygley

MVC-mønsteret Model-View-Controller (MVC) er for eksempel veldig populært akkurat nå i webutvikling fordi det hjelper med å holde koden organisert og designet på en måte som minimerer vedlikeholdsinnsatsen.

Tilsvarende er Entity-Component-System (ECS) -mønsteret veldig populært akkurat nå i spillutvikling fordi det hjelper med å modulere spilldata og logikk på en måte som gjør vedlikehold enklere, alt mens du produserer kode som er enklere å gjøre lese.

7. Mestre språkets formspråk

En av vanskene i mestre et nytt programmeringsspråk 7 nyttige triks for å mestre et nytt programmeringsspråkDet er greit å bli overveldet når du lærer å kode. Du vil sannsynligvis glemme ting så raskt som du lærer dem. Disse tipsene kan hjelpe deg med å beholde all den nye informasjonen bedre. Les mer lærer nyansene som skiller det fra alle andre språk. Disse nyansene kan være forskjellen mellom stygg, omviklet kode og vakker kode som er lett å vedlikeholde.

Tenk på Python, Java og JavaScript. De er alle ekstremt forskjellige fra hverandre, i en grad som krever a forskjellig måte å tenke på, avhengig av hvilket språk du velger å bruke.

"Et språk som ikke påvirker måten du tenker på programmering er ikke verdt å vite."
- Alan J. Perlis

Mens Python handler om kompakt kode og andetyping, handler Java mer mot siden av grovhet og eksplisitt. Hvert språk har formspråk (for eksempel listeforståelser i Python) som oppmuntrer til en bestemt måte å kode på. Du ville gjøre det bra å lære dem.

Det er også "antimønstre" å bekymre deg for, som i hovedsak er suboptimale designmønstre som resulterer i ineffektiv, upålitelig eller på annen måte dårlig kode. Studer og avlær alle vanlige antimønstre relatert til ditt språk du velger.

8. Studer Masters Code

Hvis du vil skrive ren kode, er det beste du kan gjøre å se hvordan ren kode ser ut og prøve å gjøre det forstå hvorfor det er slik det er - og det er ingen bedre måte å gjøre dette på enn å studere kildefilene til bransjemestere.

Det er klart at du ikke bare kan komme inn i Microsofts hovedkvarter og kikke på prosjektene deres, men du kan alltid gjøre det bla gjennom kjente open source-prosjekter Slik viser og redigerer jeg kildekoden til en åpen kildekode-appSelv om det å være åpen kildekode kan være et godt valg, må du også investere i riktig samfunn. GitHub er et av de beste stedene å gjøre dette, ikke bare på grunn av den store mengden ... Les mer . Vet du ikke hvor du skal begynne? Prøv viste frem prosjekter på Github.

“Enhver tull kan skrive kode som en datamaskin kan forstå. Gode ​​programmerere skriver kode som mennesker kan forstå. ”
- Martin Fowler, Refactoring: Forbedre utformingen av eksisterende kode

Det er tross alt en av grunnene hvorfor åpen kildekode-prosjekter eksisterer Hvorfor bidrar folk til Open Source-prosjekter?Open source utvikling er fremtiden til programvare. Det er flott for brukere fordi åpen kildekode-programvare vanligvis er tilgjengelig gratis og ofte sikrere å bruke. Men hva tvinger utviklere til å bidra med kode gratis? Les mer : slik at andre kan lære av dem. Og hvis du bestemmer deg for å bidra til et slikt prosjekt, det kan akselerere læringsprosessen 5 Prosjektideer som hjelper deg å lære raskere å programmereDet er noen måter å lette læringskurven for programmering. Få skitne hender og lær raskere med sideprosjekter du kan starte når som helst. Lek med disse fem. Les mer .

Personlig er den aller første gangen jeg så virkelig ren kode da jeg snublet over en viss hobbys åpen kildekode-Python-prosjekt. Koden var så overveldende elegant at jeg nesten sluttet med programmering, men det endte med at jeg lærte meg mye.

9. Skriv gode kommentarer

“Skriv gode kommentarer” er det eldste rådene i programmeringsverdenen. Så snart nybegynnere blir introdusert for kommentarer, blir de ganske mye oppfordret til å kommentere så ofte de kan.

Men det føles nesten som om vi har svingt for langt i motsatt retning. Spesielt nybegynnere har en tendens til å kommentere over - for å beskrive ting som ikke trenger å bli beskrevet og savner poenget med hva en “god kommentar” faktisk er.

"Kode alltid som om fyren som ender opp med å opprettholde koden din vil være en voldelig psykopat som vet hvor du bor."
- John Woods

Her er en god tommelfingerregel: kommentarer finnes for å forklare HVORFOR det eksisterer et stykke kode i stedet for hva koden faktisk gjør. Hvis koden er skrevet rent nok, skal den være selvforklarende hva den gjør - kommentaren skal belyse intensjonen bak hvorfor den ble skrevet.

Kommentarer kan være gode for advarsler (dvs. "å fjerne dette vil ødelegge A, B og C"), men for det meste avdekke ting som ikke umiddelbart kan hentes fra koden (dvs. "bruk denne parameteren fordi X, Y og Z”).

10. Refactor, Refactor, Refactor

Akkurat som redigering er en del av skriveprosessen, er refactoring en del av kodingsprosessen. En motvilje mot refactoring er den raskeste måten å ende opp med uholdbar kode, så på mange måter er dette faktisk det viktigste tipset du bør vurdere.

Kort sagt, refactoring er bare en fancy begrep for å rydde opp i koden uten å påvirke dens faktiske oppførsel.

"Hver gang jeg må tenke for å forstå hva koden gjør, spør jeg meg selv om jeg kan refaktorere koden for å gjøre den forståelsen mer tydelig."
- Martin Fowler, Refactoring: Forbedre utformingen av eksisterende kode

Én bit av visdom som har fulgt med meg er ordtaket, "Ikke kommenter dårlig kode. Omskriv det. ” Som Fowler forklarer i sitatet ovenfor, hvis koden noen gang føles forvirrende nok til at du trenger å kommentere den, kanskje du faktisk trenger å refaktorere den.

Når du redigerer kodebiter her og der gjennom hele prosjektet ditt, la alltid koden være i bedre tilstand enn da du først fant den. Det kan virke som en plage i øyeblikket, men det vil lønne seg i det lange løp (og kan til og med avverge mental utbrenthet Programmering av utbrenthet: Hvordan gjenvinne din tapte motivasjonÅ skrive alle kodelinjene kan tappes fysisk og følelsesmessig. Alt du trenger for å komme opp igjen er bevisstheten om at motivasjon kan gjenvinnes. Les mer ).

Det er alltid noe nytt å lære

En programmerer som lærer å skrive ren kode tilsvarer en forfatter som lærer å skrive ren prosa: det er ikke en riktig måte å gjøre det i seg selv, men det er mange gale måter å gjøre det på, og det vil ta år å herre.

Noen mennesker har ikke det som trengs og til slutt ender opp med å avslutte programmeringen for godt 6 tegn på at du ikke har ment å være programmererIkke alle er kuttet ut til å være programmerer. Hvis du ikke er helt sikker på at du er ment som programmerer, her er noen tegn som kan peke deg i riktig retning. Les mer - og det er bra fordi det er nok av andre tekniske jobber som ikke involverer koding Koding er ikke for alle: 9 tekniske jobber du kan få uten detIkke bli motløs hvis du vil være en del av det tekniske feltet. Det er mange jobber for mennesker uten kodingsevner! Les mer . Men for alle andre er ren kode noe som absolutt er verdt å strebe mot, selv om det tar resten av livet å komme dit.

Joel Lee har en B.S. innen informatikk og over seks års profesjonell skriveerfaring. Han er sjefredaktør for MakeUseOf.