Oglas

Brez dvoma je programiranje naporno. To je ena stvar učite jezike in študij algoritmi, ampak to je povsem druga zver, ki skuša kodirati zapleteno delovno aplikacijo, zaradi česar ne želite, da bi izmuznili oči.

Na nek način je pisanje čiste kode podobno risanju, kuhanju ali fotografiranju - videti je lažje, kot je v resnici. Zakaj torej moti? No, ker so koristi vredne:

  • Težave lažje rešimo. Ko začnete razmišljati s čisto kodo, se vaš pristop k reševanju težav spremeni. Namesto rešitev za prisiljevanje, vaši algoritmi in načrtovanje programske opreme postanejo bolj elegantni in namerni.
  • Manj časa porabimo za vzdrževanje. Čisto kodo je lažje prebrati in razumeti, zato porabite manj časa, da bi ugotovili, kaj določeni segmenti dejansko počnejo, in več časa za popravljanje, pregledovanje, razširitev itd.
  • Ideje se bolj jasno sporočajo. Če delate z drugimi programerji, čista koda zmanjša verjetnost nesporazumov med vami, kar pomeni tudi manj napak na dolgi rok.

Takole lahko začnete pisati čisto kodo.

1. Uporabite opisna imena

Kaj so spremenljivke, razredi in funkcije? Na to lahko odgovorimo na veliko načinov, toda ko resnično razmišljate, te stvari niso nič drugega kot vmesnik med programerjem in osnovno logiko aplikacije.

Ko torej uporabljate nejasna in ne-opisana imena za spremenljivke, razrede in funkcije, v bistvu zavračate logiko aplikacije od vsakega programerja, ki bere kodo, vključno s seboj.

"Nisem odličen programer; Sem samo dober programer z velikimi navadami. "
- Kent Beck

Kaj pomeni spremenljivka z imenom dxy pravzaprav pomeni? Kdo ve. Verjetno boste morali prebrati celoten kos kode, da bi inženir pomnil njen pomen. Po drugi strani pa pomen spremenljivke kot razdalja medX je takoj prepoznaven.

Enako velja za razrede in funkcije. Ne poravnajte se CalcTan () ko lahko greš CalculateTangent () ali CalcTangentAngle () namesto tega.

2. Vsakemu razredu / funkciji dajte en namen

Ste že kdaj pokukali v funkcijo, ki je bila dolga sto ali celo tisoč vrstic? Če jih imate, potem veste, koliko bolečine lahko brska, razume in ureja. Komentarji lahko pomagajo, vendar le v omejeni meri.

"Programiranje razdeli eno veliko nemogočo nalogo v več majhnih možnih nalog."
- Jazzwant

Čista koda se razdeli na atomske koščke. Vsaka funkcija mora imeti za cilj eno samo stvar, vsak razred pa mora predstavljati en določen koncept. To je seveda poenostavitev, toda kadar je v dvomih, je preprostejše čistejše.

V praksi je zapleten izračun kot GetCreditScore () bo morda treba razdeliti na več pomožnih funkcij, kot so GetCreditReports (), UporabiCreditHistoryAge (), in FilterOutstandingMarks ().

3. Izbrišite nepotrebno kodo

Ta slaba navada je tista, s katero se še vedno občasno spopadam. Ponavadi se zgodi takole: želim popraviti ali optimizirati kos kode, zato ga komentiram in naredim prepisovanje tik pod njim - in čeprav deluje, obdržim staro kodo za vsak slučaj.

"Ali je mogoče, da programska oprema ni podobna čemur drugemu, da jo je treba zavreči: da je poanta, da jo vedno vidimo kot milni mehurček?"
- Alan J. Perlis

Sčasoma naberem cel kup komentiranih blokov kode, ki jih še ne potrebujejo, pa še vedno zberejo moje izvorne datoteke. In smešno je, da se je v številnih primerih koda okoli razvila, tako da komentirana koda ne bi delovala, tudi če bi bila obnovljena.

Stvar je v tem, da je ta postopek komentiranja "rezervne kode" zastaral z nadzorom vira. Če ne uporabljate nečesa, kot je Git ali Mercurial, morate začnite uporabljati nadzor vira takoj. Čaka vas čistilna koda.

Ne pozabite, da se je treba izogibati pisanju ponavljajoče se kode, ki jo lahko preprosto dosežete s spletnim okvirom. Tukaj je nekaj spletnih okvirov, ki jih je vredno razviti kot razvijalca 5 Spletni okviri se za razvijalce vredno učenjaVas zanima učenje naprednega spletnega razvoja? Izogibajte se pisanju ponavljajoče se kodeuse teh okvirov spletnega razvoja. Preberi več .

4. Berljivost> bistrost

Preveč programerjev povezuje "čisto kodo" s "pametno kodo", češ da je stiskanje desetih vrstic v eno nekako čistejše. Seveda, na zaslonu zavzame manj prostora, a ga je dejansko lažje razumeti? Včasih, morda. Toda večino časa? Št.

»Vsi vemo, da je razhroščevanje programov dvakrat težje kot pisanje programa. Torej, če ste tako pameten kot ste, ko ga napišete, kako boste to kdaj odpravili? "
- Brian W. Kernighan

Mislim, da imajo programerji radi pametno kodo, ker je videti kot rešena uganka ali uganka. Našli so poseben in edinstven način, kako nekaj uresničiti - "bližnjico", če hočete - in skorajda deluje kot potrditev sposobnosti programerja.

Če pa želite napisati čisto kodo, morate svoj ego pustiti pred vrati.

Vedno optimizirajte kodo za naslednjo osebo, ki jo bo prebrala, saj je po vsej verjetnosti naslednja oseba pravzaprav bo to, KI SI TI in ni nič bolj sramotnega kot to, da ne znaš brati ali razumeti svojega bistroumnost.

5. Naj bo dosleden slog kodiranja

imam nič proti dobrim vajam za programiranje Kaj je dobro vadnico o programiranju?Niso vse programske vaje enake. Nekatere koristi, ki jih vi in ​​drugi na koncu zapravite. Tukaj je tisto, kar je treba iskati v vadbi o kakovostnem programiranju. Preberi več , vendar je ena od pomanjkljivosti ta, da novorojenci nabirajo najrazličnejše nasprotujoče si navade, zlasti če se nanašajo na slog kodiranja.

Nisem tukaj, da bi izjavil, da je en slog boljši od drugega. Če želite naramnice na lastnih linijah, pojdite po svoje. Če želite klice pred metodami preslediti s presledki, v redu. Če imate raje zavihke pred presledki, ne dovolite, da vas prepričam drugače.

Toda karkoli naredite, ostanite dosledni!

Lepa je boljša kot grda.
Izrecno je bolje kot implicitno.
Preprosto je bolje kot kompleksno.
Kompleks je boljši kot zapleten.
Stanovanje je bolje kot gnezdeno.
Redki so boljši kot gosti.
Štetje berljivosti.
- Tim Peters, Zen Pitona

Če boste uporabljali camelCaseNaming za spremenljivke je ne ponašajte z podčrtaj_naimanje. Če uporabljate GetThisObject () na enem mestu ne gre FetchThatObject () nekje drugje. Če mešate zavihke in presledke, si zaslužite, da vam odvzamejo tipkovnico.

Odločite se, kaj boste počeli od začetka, in se držite tega skozi in skozi. Nekateri jeziki, kot sta Python in C #, imajo vodnike po vsem jeziku, ki jim boste morda želeli slediti.

6. Izberite pravo arhitekturo

Obstaja veliko različnih paradigem in arhitektur, ki jih lahko uporabite za ustvarjanje svojih projektov. Upoštevajte, kako se ta nasvet nanaša na izbiro prav enega za vaše potrebe, ne pa o izbiri najboljši enega tam zunaj. Tu ni "najboljšega".

"Brez zahtev in zasnove je programiranje umetnost dodajanja napak v prazno besedilno datoteko."
- Louis Srygley

Na primer, vzorec Model-View-Controller (MVC) je trenutno zelo priljubljen v spletnem razvoju, saj pripomore k ohranjanju organizacije in oblikovanja kode na način, ki zmanjša vzdrževanje.

Podobno je vzorec Entity-Component-System (ECS) trenutno zelo priljubljen v razvoju iger, ker je pomaga modularizirati podatke o igrah in logiko na način, ki olajša vzdrževanje, hkrati pa ustvari enostavnejšo kodo prebrati.

7. Obvladite jezikovne idiome

Ena od težav v obvladovanje novega programskega jezika 7 uporabnih trikov za obvladovanje novega programskega jezikaV redu je biti preobremenjen, ko se učiš šifrirati. Verjetno boste stvari pozabili tako hitro, ko se jih boste naučili. Ti nasveti vam lahko pomagajo bolje obdržati vse te nove informacije. Preberi več se nauči odtenkov, ki ga ločujejo od vseh drugih jezikov. Ti odtenki so lahko razlika med grdo, zmedeno kodo in lepo, enostavno vzdrževalno kodo.

Upoštevajte Python, Java in JavaScript. Vsi so med seboj zelo različni, do stopnje, ki zahteva: drugačen način razmišljanja, odvisno od tega, kateri jezik izberete.

"Jezika, ki ne vpliva na način razmišljanja o programiranju, ni vredno vedeti."
- Alan J. Perlis

Medtem ko Python govori o kompaktnem tipkanju kode in rac, je Java bolj na strani dobesednosti in eksplicitnosti. Vsak jezik ima idiome (kot so seznami razumevanja v Pythonu), ki spodbujajo določen način kodiranja. Dobro bi se jih naučili.

Skrbeti je treba tudi "proti-vzorce", ki so v bistvu premalo optimalni vzorci oblikovanja, ki povzročajo neučinkovito, nezanesljivo ali kako drugače slabo kodo. Preučite in izučite vse običajne proti vzorce, povezane z vašim izbranim jezikom.

8. Študij kodeksa mojstrov

Če želite napisati čisto kodo, je najbolje, da vidite, kako izgleda čista koda in poskusite razumejte, zakaj je tako - in ni boljšega načina, kot da preučite izvorne datoteke mojstri industrije.

Očitno je, da ne morete preprosto priti na sedež Microsofta in pokukati na njihove projekte, ampak vedno lahko brskajte po znanih odprtokodnih projektih Kako si ogledati in urediti izvorno kodo odprtokodne aplikacijeMedtem ko bo odprta koda morda dobra izbira, boste morali tudi vlagati v pravo skupnost. GitHub je eno najboljših krajev za to, ne le zaradi velike količine ... Preberi več . Ne veste, kje začeti? Poskusite predstavljeni projekti na Githubu.

"Vsak norec lahko napiše kodo, ki jo računalnik razume. Dobri programerji napišejo kodo, ki jo človek lahko razume. "
- Martin Fowler, Refactoring: izboljšanje zasnove obstoječega koda

Navsezadnje je to eden od razlogov zakaj obstajajo odprtokodni projekti Zakaj ljudje prispevajo k projektom odprtega izvora?Razvoj odprte kode je prihodnost programske opreme. Za uporabnike je odličen, saj je programska oprema z odprtokodno programsko opremo običajno na voljo brezplačno in je pogosto varnejša za uporabo. Toda kaj prisili razvijalce, da brezplačno prispevajo kodo? Preberi več : tako se lahko drugi učijo od njih. In če se odločite prispevati k takšnemu projektu, lahko pospeši učni proces 5 idej projekta, s pomočjo katerih se boste hitreje naučili programiranjaObstaja nekaj načinov za olajšanje krivulje učenja za programiranje. Umazajte si roke in se hitreje učite s stranskimi projekti, ki jih lahko začnete kadar koli. Poigrajte se s temi petimi. Preberi več .

Osebno sem prvič videl resnično čisto kodo, ko sem naletel na odprtokodni projekt Python določenega hobista. Koda je bila tako presenetljivo elegantna, da sem skoraj opustil programiranje, vendar me je na koncu veliko naučilo.

9. Napišite dobre komentarje

"Napišite dobre komentarje" je najstarejši nasvet v svetu programiranja. V bistvu jih takoj, ko se novost seznani s komentarji, spodbuja, naj komentirajo tako pogosto, kot lahko.

A skorajda se zdi, kot da smo se preveč obrnili v nasprotno smer. Zlasti prišleki so nagnjeni k prekomernemu komentiranju - opisujejo stvari, ki jih ni treba opisovati, in pogrešajo stališče, kaj je "dober komentar" v resnici.

"Vedno kodirajte, kot da bi bil fant, ki na koncu ohrani vašo kodo, nasilen psihopat, ki ve, kje živite."
John Woods

Tu je dobro pravilo: komentarji pojasnijo, zakaj obstaja del kode in ne, kaj koda dejansko počne. Če je koda napisana dovolj čisto, mora biti samoumevno, kaj počne - komentar naj osvetli namero, zakaj je bila napisana.

Komentarji so lahko dobri za opozorila (tj. "Če to odpravite, se zlomijo A, B in C"), v večjem delu pa odkrijte stvari, ki jih ni mogoče takoj pobrati iz kode (tj. "uporabite ta parameter, ker so X, Y in Z ”).

10. Refactor, Refactor, Refactor

Tako kot je urejanje del postopka pisanja, je ponovni faktoring del procesa kodiranja. Averzija do ponovnega faktoringa je najhitrejši način, da se končate z neobvladljivo kodo, zato je v mnogih pogledih to najpomembnejši nasvet.

Skratka, refaktoring je le domišljijski izraz za čiščenje kode, ne da bi to vplivalo na njeno dejansko vedenje.

"Kadar koli moram razumeti, kaj koda počne, se vprašam, ali lahko ponovno spremenim kodo, da bi to razumevanje takoj postalo očitno."
- Martin Fowler, Refactoring: izboljšanje zasnove obstoječega koda

Nekaj ​​modrosti, ki se mi je zataknilo, je rek: „Ne komentirajte slabe kode. Prepiši ga. " Kot je Fowler razložil v zgornjem citatu, če je koda kdaj dovolj zmedena, da jo morate komentirati, jo morate morda dejansko popraviti.

Poleg tega med urejanjem koščkov tu in tam skozi svoj projekt, vedno pustite kodo v boljšem stanju kot takrat, ko ste jo prvič našli. V trenutku se lahko zdi kot nadloga, vendar se bo na dolgi rok izplačalo (in lahko celo prepreči duševno izgorelost Programiranje izgorevanje: kako povrniti izgubljeno motivacijoPisanje vseh teh vrstic kode lahko izčrpava fizično in čustveno. Vse, kar potrebuješ, da se znebiš, je zavedanje, da je motivacija mogoče ponovno pridobiti. Preberi več ).

Vedno se je treba naučiti nekaj novega

Programer, ki se uči pisati čisto kodo, je soroden romanopiscu, ki se uči čiste proze: sam po sebi ni pravega načina, vendar obstaja veliko napačnih načinov, in to bo trajalo leta, da mojster.

Nekateri ljudje nimajo tega, kar potrebujejo na koncu za vedno opusti programiranje 6 znakov, da ne želite biti programerNiso vsi odrezani kot programer. Če niste povsem prepričani, da ste mišljeni kot programer, je nekaj znakov, ki vas lahko usmerijo v pravo smer. Preberi več - in to je v redu, ker jih je veliko druga tehnična opravila, ki ne vključujejo kodiranja Kodiranje ni za vsakogar: 9 delovnih mest, ki jih lahko dobite brez njegaNe bodite zavarovani, če želite biti del področja tehnike. Obstaja veliko delovnih mest za ljudi brez veščin kodiranja! Preberi več . Toda za vse druge je čista koda nekaj, čemur bi si bilo vsekakor treba prizadevati, četudi je vse življenje potrebno, da pridete tja.

Joel Lee ima B.S. na področju računalništva in več kot šest let izkušenj s pisanjem. Je glavni urednik za MakeUseOf.