10 tips for å skrive renere og bedre kode
Uten tvil er programmeringen vanskelig Slik lærer du programmering uten all stress Slik lærer du programmering uten all stress Kanskje du har bestemt deg for å forfølge programmering, enten for en karriere eller bare som en hobby. Flott! Men kanskje du begynner å føle deg overveldet. Ikke så bra. Her er hjelp til å lette reisen din. Les mer . Det er en ting å lære språk og studere algoritmer, men det er et helt annet dyr som prøver å kode et komplekst arbeidsprogram som ikke gjør at du vil klage øynene dine ut.
På en måte er å skrive ren kode mye som tegning, matlaging eller fotografering. 5 Kreative hobbyer som gjør deg til en lykkeligere person. 5 Kreative hobbyer som gjør deg til en lykkeligere person. En skikkelig kreativ utløp kan gjøre underverker for mental helse og helhet lykke. Her er noen kreative hobbyer som er bevist å hjelpe på denne måten. Les mer - det ser enklere ut enn det egentlig er. Så hvorfor bry deg? Vel, fordi fordelene er verdt det:
- Problemer blir lettere å løse. Når du begynner å tenke i ren kode, endrer din tilnærming til problemløsning. I stedet for brute tvangsløsninger blir algoritmer og programvare design 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 enkelte segmenter faktisk gjør, og mer tid på å fikse, revidere, utvide osv..
- Ideer 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.
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 noe mer enn grensesnittet mellom en programmerer og den underliggende logikken til en applikasjon.
Så når du bruker uklare og ikke-beskrivende navn for variabler, klasser og funksjoner, du er i hovedsak forvirrende av programlogikken fra noen programmerer 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 vil sannsynligvis måtte lese hele delen av koden for å omdanne sin betydning. På den annen side er betydningen av en variabel som distanceBetweenXY
er umiddelbart gjenkjennelig.
Det samme gjelder for klasser og funksjoner. Ikke sett deg for 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 lenge? Hvis du har det, vet du hvor mye smerte det kan være å bla, forstå og redigere. Kommentarer kan hjelpe, men bare i begrenset grad.
“Programmering bryter en stor umulig oppgave i flere små mulige oppgaver.”
- Jazzwant
Ren kode er brutt ned i atombiter. Hver funksjon skal ha som mål å gjøre en enkelt ting, og hver klasse skal sikte på å representere et 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 ()
må kanskje brytes inn i flere hjelpefunksjoner 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 regel: Jeg vil fikse eller optimalisere en del kode, så jeg kommenterer det og gjør en omskriving like under det - og selv om det virker, holder jeg den gamle koden der bare i tilfelle.
“Er det mulig at programvare ikke er som noe annet, at det er ment å bli kassert: at hele poenget er å alltid se det som en såpeboble?”
- Alan J. Perlis
Over tid samler jeg en masse kommenterte blokker med kode som ikke lenger er nødvendig, men roter opp kildefilene mine. Og det morsomme er at i mange tilfeller har den omkringliggende koden utviklet seg, slik at kommentarkoden ikke ville fungere selv om det ble restaurert.
Saken er denne praksisen med å kommentere “sikkerhetskode” ble gjort foreldet ved kildekontroll. Hvis du ikke bruker noe som Git eller Mercurial, må du begynne å bruke kildekontroll med en gang. Hva er Git og hvorfor du bør bruke Versjonskontroll Hvis du er utvikler Hva er Git og hvorfor du bør bruke Versjonskontroll hvis du? er en utvikler Som webutviklere har mye tid vi pleier å jobbe med på lokale utviklingssteder, så laster vi opp alt når vi er ferdige. Dette er greit når det bare er deg og endringene er små, ... Les mer. Renere kode venter på deg.
4. Lesbarhet> Klarhet
For mange programmerere conflate “ren kode” med “smart kode”, som om komprimering av ti linjer til en er en eller annen måte renere. Visst, det tar opp mindre plass på skjermen, men er det faktisk lettere å forstå? Noen ganger, kanskje. Men mesteparten av tiden? Nei.
“Alle vet at debugging er dobbelt så hard som å skrive et program i utgangspunktet. Så hvis du er så smart som du kan være når du skriver den, hvordan vil du noen gang feilsøke den?”
- Brian W. Kernighan
Jeg tror programmerere elsker smart kode fordi det føles som et løst puslespill eller gåte. De fant en spesiell og unik måte å implementere noe på - a “snarvei” hvis du vil - og det fungerer nesten som en validering av programmørens ferdigheter.
Men for å skrive ren kode må du forlate ditt ego ved døren.
Alltid optimalisere kode for den neste personen som skal lese den, fordi det er sannsynlig at neste person faktisk skal være deg og det er ikke noe mer skammelig enn å ikke kunne lese eller forstå din egen intelligens.
5. Hold en konsekvent kodestil
Jeg har ingenting mot gode programmeringsopplæringer Hva gjør en god programmeringsveiledning? Hva gjør en god programmeringsveiledning? Ikke alle programmeringsopplæringene er gjort like. Noen drar nytte av deg og andre, og sliter bort tiden din. Her er det å se etter i en kvalitetsprogrammeringstutorial. Les mer, men en av ulempene er at nybegynnere ender opp med et stort utvalg av motstridende vaner, særlig ettersom de vedrører kodestil.
Jeg er ikke her for å erklære at en stil er noe bedre enn en annen. Hvis du vil ha braces på egne linjer, gå for det. Hvis du vil forutse metallsamtaler med mellomrom, fint. Hvis du foretrekker faner til mellomrom, ikke la meg overbevise deg ellers.
Men uansett hva du gjør, hold deg konsekvent!
Vakker er bedre enn stygg.
Eksplisitt er bedre enn implisitt.
Enkel er bedre enn kompleks.
Komplekset er bedre enn komplisert.
Flat er bedre enn nestet.
Sparsom er bedre enn tett.
Lesbarhet teller.
- Tim Peters, Zen av Python
Hvis du skal bruke camelCaseNaming
for variabler, ikke forfalske det med underscore_naming
. Hvis du bruker GetThisObject ()
på ett 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 fast med det gjennom og gjennom. Noen språk, som Python og C #, har språklige guider som du kanskje vil følge.
6. Velg riktig arkitektur
Det er mange forskjellige paradigmer og arkitekturer som du kan bruke til å lage dine prosjekter. 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 programmeringen kunsten å legge til feil i en tom tekstfil.”
- Louis Srygley
Modell-View-Controller (MVC) -mønsteret er for eksempel veldig populært akkurat nå i webutvikling fordi det bidrar til å holde koden din organisert og utformet på en måte som minimerer vedlikeholdsarbeidet.
På samme måte er Entity-Component-System (ECS) -mønsteret veldig populært akkurat nå i spillutvikling fordi det hjelper modularisere spilldata og logikk på en måte som gjør vedlikehold enklere, samtidig som det produseres kode som er enklere å lese.
7. Mastre språkens idiomer
En av vanskelighetene ved å mestre et nytt programmeringsspråk. 7 Nyttige triks for å mestre et nytt programmeringsspråk. 7 Nyttige triks for å mestre et nytt programmeringsspråk. Det er greit å være overveldet når du lærer å kode. Du vil sikkert glemme ting så fort du lærer dem. Disse tipsene kan hjelpe deg å bedre beholde all den nye informasjonen. Les mer lærer nyanser som skiller den fra alle andre språk. Disse nyansene kan være forskjellen mellom stygg, innviklet kode og vakker, lett å vedlikeholde kode.
Vurder Python, Java og JavaScript. De er alle svært forskjellige fra hverandre, i en grad som krever en annen 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 and-skrive, er Java mer mot siden av verbosity og explicitness. Hvert språk har idiomer (for eksempel listforståelser i Python) som oppmuntrer til en bestemt måte å kode på. Du ville gjøre det bra å lære dem.
Det er også “anti-mønstre” å bekymre seg for, som i hovedsak er suboptimale designmønstre som resulterer i ineffektiv, upålitelig eller ellers dårlig kode. Studer og unlearn alle de vanlige antimønstrene som er relatert til ditt valg språk.
8. Undersøk Masters Code
Hvis du vil skrive ren kode, er det beste du kan gjøre, å se hvilken ren kode som ser ut og prøve å forstå hvorfor det er slik det er - og det er ingen bedre måte å gjøre dette på enn ved å studere kildefilene til industrien mestere.
Åpenbart kan du ikke bare stikke inn i Microsofts hovedkvarter og kikke på sine prosjekter, men du kan alltid bla gjennom kjente open source-prosjekter. Slik ser og rediger kildekoden til en åpen kildekode-app. Slik ser du og rediger kildekoden Av en åpen kildekode-app Mens du går å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 det rene beløpet ... Les mer . Vet ikke hvor du skal begynne? Prøv utstillingsprosjektene på Github.
“Enhver idiot kan skrive kode som en datamaskin kan forstå. Gode programmerere skriver kode som mennesker kan forstå.”
- Martin Fowler, Refactoring: Forbedre utformingen av eksisterende kode
Tross alt er det en av grunnene til at åpen kildekodeprosjekter eksisterer Hvorfor bidrar folk til Open Source-prosjekter? Hvorfor bidrar folk til Open Source-prosjekter? Open source-utvikling er fremtiden for programvare. Det er flott for brukere fordi åpen kildekode programvare er vanligvis tilgjengelig gratis og ofte tryggere å bruke. Men hva tvinger utviklere til å bidra med kode gratis? Les mer: så andre kan lære av dem. Og hvis du bestemmer deg for å bidra til et slikt prosjekt, kan det akselerere læringsprosessen. 5 Prosjekt ideer som hjelper deg med å lære programmering raskere. 5 Prosjekt ideer som hjelper deg med å lære programmering raskere. Det er noen måter å lette lærekurven for programmering på. Få hendene skitne og lær raskere med sideprosjekter du kan starte når som helst. Spill rundt med disse fem. Les mer .
Personlig, første gang jeg så virkelig ren kode er når jeg snublet over en viss hobbyists open source Python prosjekt. Koden var så overveldende elegant at jeg nesten avsluttet programmering, men det endte opp med å lære meg mye.
9. Skriv gode kommentarer
“Skriv gode kommentarer” er det eldste rådet i programmeringsverdenen. Faktisk, så snart nybegynnere blir introdusert til kommentarer, blir de ganske oppmuntret til å kommentere så ofte som de kan.
Men det føles nesten som om vi har svingt for langt i motsatt retning. Newbies, spesielt, har en tendens til å overkommentere - beskriver ting som ikke trenger å bli beskrevet og mangler poenget med hva en “god kommentar” faktisk er.
“Alltid kode 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: Det finnes kommentarer for å forklare hvorfor et stykke kode eksisterer i stedet for hva koden egentlig gjør. Hvis koden er skrevet rent nok, burde det være selvforklarende hva det gjør - kommentaren bør kaste lys over hensikten bak hvorfor det ble skrevet.
Kommentarer kan være gode for advarsler (dvs.. “fjerner dette vil bryte A, B og C”), men for det meste bør 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 aversjon mot refactoring er den raskeste måten å ende opp med utilgjengelig kode, så på mange måter er dette faktisk det viktigste tipset å vurdere.
Kort sagt, refactoring er bare en fancy term for å rydde opp koden uten å påvirke sin faktiske oppførsel.
“Når jeg må tenke for å forstå hva koden gjør, spør jeg meg selv om jeg kan refactor koden for å gjøre den forståelsen mer umiddelbart åpenbar.”
- Martin Fowler, Refactoring: Forbedre utformingen av eksisterende kode
En vis visdom som har fast ved meg, er ordtaket, “Ikke kommentere dårlig kode. Skriv om det.” Som Fowler forklarer i sitatet ovenfor, hvis koden noen gang føles forvirrende nok til at du trenger å kommentere det, kanskje du faktisk trenger å refactor det.
Videre, som du redigerer biter av kode her og der gjennom hele prosjektet ditt, Forlat alltid koden i en bedre tilstand enn når du først fant den. Det kan virke som et ubehag i øyeblikket, men det vil lønne seg i det lange løp (og kan til og med avverge mental utbrenning. Programmering Burnout: Hvordan gjenvinne din tapte motivasjon Programmering Burnout: Hvordan gjenvinne din tapte motivasjon Skrive alle de linjene i Koden kan drenere fysisk og følelsesmessig. Alt du trenger for å komme seg opp er bevisstheten om at motivasjon kan gjenvinnes. Les mer).
Det er alltid noe nytt å lære
En programmerer som lærer å skrive ren kode, er lik en forfatter som lærer å skrive ren prosa: det er ikke en riktig måte å gjøre det selv, men det er mange feil måter å gjøre det på, og det vil ta år å mestre.
Noen mennesker har ikke det som trengs, og til slutt slutter å slutte programmering for godt. 6 Tegn på at du ikke er ment å være programmerer. 6 Tegn på at du ikke er ment å være programmerer. Ikke alle er kuttet ut for å være programmerer. Hvis du ikke er helt sikker på at du er ment å være programmerer, er det noen tegn som kan vise deg i riktig retning. Les mer - og det er greit fordi det er mange andre tekniske jobber som ikke innebærer koding. Koding er ikke for alle: 7 Tekniske jobber du kan få uten det, koding er ikke for alle: 7 tekniske jobber du kan få uten det Ikke motløs hvis du vil være en del av teknologifeltet - det er mange jobber for folk som ikke vet hvordan man skal kode! Les mer .
Men for alle andre er ren kode noe som er absolutt verdt å streve mot, selv om det tar resten av livet ditt å komme seg dit.
Hvor viktig er ren kode til deg? Hvilke regler følger du for å holde koden ren og organisert? Fikk du noen andre visdomsvisninger å dele? Gi oss beskjed i kommentarene nedenfor!
Utforsk mer om: Programmering.