Mainos
Ohjelmointi on epäilemättä vaikeaa. Se on yksi asia oppia kieliä ja opiskella algoritmit, mutta se on aivan toinen peto, joka yrittää koodata monimutkaisen työskentelysovelluksen, joka ei tee sinun kiinnittää silmiäsi.
Tavallaan puhtaan koodin kirjoittaminen on paljon kuin piirtäminen, ruoanlaitto tai valokuvaus - se näyttää helpommalta kuin se on. Joten miksi vaivautua? No, koska edut ovat sen arvoisia:
- Ongelmien ratkaiseminen on helpompaa. Kun alkaa miettiä puhdasta koodia, lähestymistavasi ongelmanratkaisuun muuttuu. Ratkaisemattomien ratkaisujen sijasta algoritmeistasi ja ohjelmistosuunnittelustasi tulee elegantti ja tarkoituksellinen.
- Huoltoon kuluu vähemmän aikaa. Puhdasta koodia on helpompi lukea ja ymmärtää, joten vietät vähemmän aikaa yrittääksesi selvittää, mitä tietyt segmentit todella tekevät, ja lisää aikaa kiinnittämiseen, tarkistamiseen, laajentamiseen jne.
- Ideat välitetään selkeämmin. Jos työskentelet muiden ohjelmoijien kanssa, puhdas koodi vähentää väärinkäsitysten todennäköisyyttä kaikkien teidän välillä, mikä tarkoittaa myös vähemmän virheitä pitkällä tähtäimellä.
Näin voit aloittaa puhtaan koodin kirjoittamisen.
1. Käytä kuvaavia nimiä
Mitä muuttujat, luokat ja funktiot ovat? Tähän voidaan vastata monella tapaa, mutta kun todella ajatellaan sitä, nämä asiat eivät ole muuta kuin rajapinta ohjelmoijan ja sovelluksen taustalla olevan logiikan välillä.
Joten kun käytät epäselviä ja kuvaamattomia nimiä muuttujille, luokille ja funktioille, hämmentät sovelluslogiikkaa jokaiselta ohjelmaa lukevalta ohjelmoijalta, mukaan lukien itsesi.
”En ole suuri ohjelmoija; Olen vain hyvä ohjelmoija, jolla on hyvät tottumukset. "
- Kent Beck
Mitä muuttuja nimeltään DXY
oikeasti tarkoittaa? Kuka tietää. Sinun olisi todennäköisesti lukenut koko koodipala, jotta sen merkitys muutetaan. Toisaalta muuttujan merkitys kuten distanceBetweenXY
on heti tunnistettavissa.
Sama pätee luokkiin ja toimintoihin. Älä tyydy CalcTan ()
kun voit jatkaa CalculateTangent ()
tai CalcTangentAngle ()
sen sijaan.
2. Anna jokaiselle luokalle / toiminnolle yksi tarkoitus
Oletko koskaan kurkistanut toiminnon sisällä, joka oli satoja tai jopa tuhansia rivejä pitkä? Jos sinulla on, tiedät kuinka paljon kipua selaamiseen, ymmärtämiseen ja muokkaamiseen voi olla. Kommentit voivat auttaa, mutta vain rajoitetusti.
"Ohjelmointi hajottaa yhden suuren mahdottoman tehtävän useiksi pieniksi mahdollisiksi tehtäviksi."
- Jazzwant
Puhdas koodi jaotellaan atomipalasiksi. Jokaisen toiminnon tulisi pyrkiä tekemään yksi asia ja jokaisen luokan tulisi pyrkiä edustamaan yhtä tiettyä käsitettä. Tämä on tietysti yksinkertaistaminen, mutta epävarmassa tilanteessa yksinkertaisempi on puhtaampaa.
Käytännössä monimutkainen laskenta kuten GetCreditScore ()
voi olla tarpeen jakaa useisiin auttajatoimintoihin, kuten GetCreditReports ()
, ApplyCreditHistoryAge ()
ja FilterOutstandingMarks ()
.
3. Poista tarpeeton koodi
Tämä huono tapa on tapana silti ajoittain taistella. Se tapahtuu yleensä näin: Haluan korjata tai optimoida koodinpätkän, joten kommentoin sitä ja kirjoitan uudelleen sen alle - ja vaikka se toimii, pidän vanhan koodin siellä joka tapauksessa.
"Onko mahdollista, että ohjelmistot eivät ole kuin mikään muu, että ne on tarkoitus hylätä: että koko asia on nähdä se aina saippuakuplana?"
- Alan J. Perlis
Ajan myötä kertyy paljon kommentoituja koodilohkoja, joita ei enää tarvita, ja vieläkään sotkua lähdetiedostojani. Ja hauska asia on, että ympäröivä koodi on monissa tapauksissa kehittynyt, joten kommentoitu koodi ei toimisi, vaikka se palautettaisiin.
Asia on, että tämä "varmuuskoodin" kommentoinnin käytäntö on vanhentunut lähdeohjauksella. Jos et käytä jotain kuten Git tai Mercurial, sinun täytyy aloita lähdeohjauksen käyttö heti. Puhtaampi koodi odottaa sinua.
Muista, että on myös tärkeää välttää toistuvan koodin kirjoittaminen, jonka voit tehdä helposti verkkokehyksellä. Tässä on muutama verkkokehykset, jotka kannattaa oppia kehittäjänä 5 kehittäjille oppimisen arvoista verkkokehystäOletko kiinnostunut oppimaan edistynyttä web-kehitystä? Vältä sen sijaan, että kirjoittaisit toistuvat koodikäytöt näiden web-kehityskehysten kanssa. Lue lisää .
4. Luettavuus> Järkevyys
Liian monet ohjelmoijat sekoittavat ”puhtaan koodin” ”fiksuun koodiin”, ikään kuin kymmenen rivin tiivistäminen olisi jotenkin puhtaampaa. Toki se vie vähemmän tilaa näytöllä, mutta onko se todella helpompaa ymmärtää? Joskus, ehkä. Mutta suurimman osan ajasta? Ei.
”Kaikki tietävät, että virheenkorjaus on kaksinkertaisen vaikeaa kuin ohjelman kirjoittaminen. Joten jos olet niin taitava kuin pystyt olemaan kirjoittaessasi sitä, kuinka koskaan virheenkorjaat sitä? "
- Brian W. Kernighan
Mielestäni ohjelmoijat rakastavat fiksua koodia, koska se tuntuu ratkaistulta pulmalta tai arvoitukselta. He löysivät erityisen ja ainutlaatuisen tavan toteuttaa jotain - "oikotie", jos haluat - ja se melkein vahvistaa ohjelmoijan taitoja.
Mutta puhtaan koodin kirjoittamiseksi sinun on jätettävä egosi ovella.
Optimoi koodi aina seuraavalle henkilölle, joka aikoo lukea sen, koska todennäköisesti seuraava henkilö on itse asiassa sinusta tulee sinä, eikä ole mitään häpeällisempää kuin ette pysty lukemaan tai ymmärtämään omaasi nokkeluutta.
5. Pidä johdonmukainen koodaustyyli
minulla on mitään vastaan hyviä ohjelmointiohjeita Mikä tekee hyvästä ohjelmointiohjeesta?Kaikkia ohjelmointiohjeita ei tehdä yhtäläisiksi. Jotkut hyödyt sinulle ja toiset lopulta tuhlaavat aikaa. Tässä on mitä etsiä laadukkaasta ohjelmointikoulutuksesta. Lue lisää , mutta yksi haittapuolia on, että aloittelijat päätyvät monenlaisiin ristiriitaisiin tapoihin, varsinkin kun ne koskevat koodaustapaa.
En ole täällä ilmoittamassa, että yksi tyyli on parempi kuin toinen. Jos haluat henkselit omilla linjoillaan, etsi se. Jos haluat edeltää menetelmäsoittoja välilyönneillä, hyvä. Jos et halua välilehtiä välilyönteihin, älä anna minun vakuuttaa sinua toisin.
Mutta mitä teetkin, pysy johdonmukaisena!
Kaunis on parempi kuin ruma.
Täsmällinen on parempi kuin epäsuora.
Yksinkertainen on parempi kuin monimutkainen.
Monimutkainen on parempi kuin monimutkainen.
Litteä on parempi kuin sisäkkäinen.
Harva on parempi kuin tiheä.
Luettavuus laskee.
- Tim Peters, Pythonin Zen
Jos aiot käyttää camelCaseNaming
älä vääri sitä muuttujien kanssa underscore_naming
. Jos käytät GetThisObject ()
yhdessä paikassa, älä mene mukaan FetchThatObject ()
jossain muualla. Ja jos sekoitat välilehtiä ja välilyöntejä, ansaitset näppäimistön pois.
Päätä, mitä aiot tehdä alusta alkaen, ja pysy siinä läpi ja läpi. Joillakin kielillä, kuten Python ja C #, on koko kielen tyylin oppaita, joita haluat ehkä noudattaa.
6. Valitse oikea arkkitehtuuri
On olemassa monia erilaisia paradigmoja ja arkkitehtuureja, joiden avulla voit luoda projekteja. Huomaa, kuinka tämä vinkki on valittaessa oikea yksi tarpeitasi varten, ei siitä, että valitset parhaat yksi siellä. Täällä ei ole "parasta".
"Ilman vaatimuksia ja suunnittelua ohjelmointi on taidetta lisätä virheitä tyhjään tekstitiedostoon."
- Louis Srygley
Esimerkiksi Model-View-Controller (MVC) -malli on erittäin suosittu tällä hetkellä verkkokehityksessä, koska se auttaa pitämään koodisi järjestetyllä ja suunnitellulla tavalla, joka minimoi ylläpitotyöt.
Samoin Entity-Component-System (ECS) -malli on erittäin suosittu tällä hetkellä pelien kehittämisessä, koska se auttaa modularoimaan pelitiedot ja logiikan tavalla, joka tekee ylläpidosta helpompaa, ja tuottaa samalla helpompaa koodia lukea.
7. Hallitse kielen idiat
Yksi vaikeuksista uuden ohjelmointikielen hallitseminen 7 Hyödyllisiä temppuja uuden ohjelmointikielen hallitsemiseenOn okei hukkua, kun opit koodaamaan. Unohdat asiat todennäköisesti niin nopeasti kuin opit. Nämä vinkit voivat auttaa sinua säilyttämään kaiken uuden tiedon paremmin. Lue lisää oppii vivahteita, jotka erottavat sen kaikista muista kielistä. Nämä vivahteet voivat olla ero ruman, kiertyneen koodin ja kauniin, helppohoitoisen koodin välillä.
Mieti Python, Java ja JavaScriptiä. Ne ovat kaikki erittäin erilaisia toisistaan siinä määrin, että vaaditaan erilainen ajattelutapa sen mukaan, mitä kieltä valitset käyttää.
"Kieli, joka ei vaikuta tapaan, jolla ajattelet ohjelmointia, ei ole syytä tuntea."
- Alan J. Perlis
Python-ohjelmassa on kyse kompaktaisesta koodin ja ankan kirjoittamisesta, kun taas Java on enemmän kohti moninaisuuden ja selkeyttä. Jokaisella kielellä on idiomeja (kuten Python-luettelon ymmärtämistä), jotka rohkaisevat tietynlaista koodaustapaa. Sinun olisi hyvä oppia heidät.
On myös huolestuttavia "anti-malleja", jotka ovat käytännössä epäoptimaalisia suunnittelumalleja, jotka johtavat tehottomaan, epäluotettavaan tai muuten huonoon koodiin. Opiskele ja poista kaikki valitsemasi kieleen liittyvät yleiset anti-mallit.
8. Opiskele mestarikoodia
Jos haluat kirjoittaa puhtaan koodin, parasta mitä voit tehdä, on nähdä miltä puhdas koodi näyttää ja yrittää ymmärrä miksi se on niin - ja ei ole parempaa tapaa tehdä tämä kuin tutkimalla lähdetiedostoja teollisuuden mestarit.
Ilmeisesti et voi vain poistua Microsoftin pääkonttorissa ja kurkistaa heidän projekteitaan, mutta voit aina selata tunnettuja avoimen lähdekoodin projekteja Kuinka tarkastella ja muokata avoimen lähdekoodin sovelluksen lähdekoodiaVaikka avoimen lähdekoodin käyttäminen saattaa olla hyvä valinta, sinun on myös investoitava oikeaan yhteisöön. GitHub on yksi parhaista paikoista tehdä tämä, ei pelkästään pelkän määrän takia ... Lue lisää . Etkö tiedä mistä aloittaa? Kokeile esiteltyjä projekteja Githubissa.
”Kuka tahansa typerys voi kirjoittaa koodin, jonka tietokone ymmärtää. Hyvät ohjelmoijat kirjoittavat koodin, jonka ihmiset ymmärtävät. ”
- Martin Fowler, Refaktorointi: Olemassa olevan koodin suunnittelun parantaminen
Loppujen lopuksi se on yksi syistä miksi avoimen lähdekoodin projekteja on olemassa Miksi ihmiset osallistuvat avoimen lähdekoodin hankkeisiin?Avoimen lähdekoodin kehitys on ohjelmiston tulevaisuus. Se on loistava käyttäjille, koska avoimen lähdekoodin ohjelmisto on yleensä saatavana ilmaiseksi ja usein turvallisempi käyttää. Mutta mikä pakottaa kehittäjät lähettämään koodin ilmaiseksi? Lue lisää : jotta muut voivat oppia heiltä. Ja jos päätät osallistua tällaiseen projektiin, se voi nopeuttaa oppimisprosessia 5 hankeideaa, joiden avulla voit oppia ohjelmoimaan nopeamminOn olemassa muutamia tapoja helpottaa ohjelmoinnin oppimiskäyrää. Likaise kätesi ja opi nopeammin sivuprojekteilla, jotka voit aloittaa milloin tahansa. Leikkiä näiden viiden kanssa. Lue lisää .
Henkilökohtaisesti aivan ensimmäisen kerran näin todella puhtaan koodin, kun kompasin tietyn harrastajan avoimen lähdekoodin Python-projektin yli. Koodi oli niin ylivoimaisesti tyylikäs, että melkein lopetin ohjelmoinnin, mutta se lopulta opetti minulle paljon.
9. Kirjoita hyviä kommentteja
“Kirjoita hyviä kommentteja” on vanhin neuvo ohjelmoinnin maailmassa. Itse asiassa heti kun aloittelijat esitellään kommentteihin, heitä rohkaistaan melko paljon kommentoimaan niin usein kuin mahdollista.
Mutta tuntuu melkein siltä, että olemme kääntyneet liian pitkälle vastakkaiseen suuntaan. Erityisesti aloittelijoilla on taipumus liiasta kommentoida - kuvata asioita, joita ei tarvitse kuvata, ja puuttuvat se kohta, mikä "hyvä kommentti" todella on.
"Koodaa aina kuin se kaveri, joka lopulta ylläpitää koodiasi, on väkivaltainen psykopaatti, joka tietää missä asut."
- John Woods
Tässä on hyvä nyrkkisääntö: Kommentteja on olemassa selittämään MIKSI koodinosa on olemassa sen sijaan, mitä koodi todella tekee. Jos koodi on kirjoitettu riittävän selkeästi, sen tulisi olla itsestään selvää mitä se tekee - kommentin tulisi valaista tarkoitus, miksi se kirjoitettiin.
Kommentit voivat olla hyviä varoituksille (ts. “Tämän poistaminen hajottaa A, B ja C”), mutta suurimmaksi osaksi pitäisi paljasta asiat, joita ei voida välittömästi poistaa koodista (ts. “käytä tätä parametria, koska X, Y ja Z”).
10. Refaktori, reaktori, reaktori
Aivan kuten editointi on osa kirjoitusprosessia, refactoring on osa koodausprosessia. Vastenmielisyys refaktorointiin on nopein tapa päästä käsittämättömään koodiin, joten tämä on monella tavalla tärkein huomioitava vinkki.
Lyhyesti sanottuna, refactoring on vain hieno termi puhdistaa koodi vaikuttamatta sen todelliseen käyttäytymiseen.
"Aina kun minun on ajateltava ymmärtääksesi mitä koodi tekee, kysyin itseltäni, voinko reagoida koodin tehdäkseni tämän ymmärryksen heti näkyvämmäksi."
- Martin Fowler, Refaktorointi: Olemassa olevan koodin suunnittelun parantaminen
Yksi vähän viisautta, joka on kiinni minuun, on sanonta: “Älä kommentoi huonoa koodia. Kirjoita se uudelleen. ” Kuten Fowler selittää yllä olevassa lainauksessa, jos koodi tuntuu joskus tarpeeksi hämmentävältä, että joudut kommentoimaan sitä, sinun on ehkä todellakin reagoitava se.
Lisäksi kun muokkaat koodibittejä täällä ja siellä koko projektin aikana, jätä koodi aina parempaan tilaan kuin silloin, kun löysit sen. Se voi tuntua haitalta tällä hetkellä, mutta se kannattaa pitkällä tähtäimellä (ja voi jopa välttää henkistä uupumista Ohjelmointi Burnout: Kuinka saada takaisin menettämäsi motivaatioKaikkien näiden koodirivien kirjoittaminen voi tyhjentää fyysisesti ja henkisesti. Sinun tarvitsee palata takaisin on tietoisuus siitä, että motivaatio voidaan palauttaa. Lue lisää ).
Aina on jotain uutta opittavaa
Ohjelmoija, joka oppii kirjoittamaan puhdasta koodia, muistuttaa kirjailijaa, joka oppii kirjoittamaan puhdasta proosaa: ei ole oikein tapa tehdä se sinänsä, mutta siihen on paljon vääriä tapoja, ja sen toteuttaminen vie vuosia hallita.
Joillakin ihmisillä ei ole sitä mitä tarvitaan ja lopulta lopettaa ohjelmoinnin hyväksi 6 merkkiä siitä, että et halua olla ohjelmoijaKaikkia ei ole leikattu ohjelmoijaksi. Jos et ole täysin varma, että sinun on tarkoitus olla ohjelmoija, tässä on joitain merkkejä, jotka voivat osoittaa sinut oikeaan suuntaan. Lue lisää - ja se on hieno, koska niitä on paljon muut tekniset työt, joihin ei liity koodausta Koodaus ei ole kaikille: 9 teknistä työtä, jotka voit saada ilman sitäÄlä lannistu, jos haluat olla osa tekniikan kenttää. Ihmisillä on paljon työpaikkoja ilman koodaustaitoja! Lue lisää . Mutta kaikille muille puhdas koodi on jotain, johon on ehdottomasti pyrittävä pyrkimään, vaikka sinne kuluu loppuelämäsi.
Joel Leellä on B.S. tietotekniikan alalta ja yli kuuden vuoden ammattikirjoittamisen kokemus. Hän on MakeUseOfin päätoimittaja.