Reklaam

Programmeerimine on kahtlemata raske. See on üks asi õppida keeli ja õppima algoritmid, kuid see on terve teine ​​metsaline, kes üritab kodeerida keerulist töötavat rakendust, mis ei tee sellest, et tahaksite silmi kinni tõmmata.

Puhta koodi kirjutamine sarnaneb joonistamise, toiduvalmistamise või fotografeerimisega sarnaselt - see tundub lihtsam kui tegelikult. Miks siis vaeva näha? Noh, kuna eelised on seda väärt:

  • Probleeme on lihtsam lahendada. Kui olete hakanud mõtlema puhta koodi järgi, muutub teie lähenemine probleemide lahendamisele. Lahenduse sundimise asemel muutuvad teie algoritmid ja tarkvarakujundus elegantsemaks ja kavalamaks.
  • Hooldusele kulub vähem aega. Puhta koodi on hõlpsam lugeda ja mõista, nii et kulutate vähem aega, et aru saada, mida teatud segmendid tegelikult teevad, ja rohkem aega fikseerimiseks, muutmiseks, laiendamiseks jne.
  • Ideed edastatakse selgemalt. Kui töötate koos teiste programmeerijatega, vähendab puhas kood teie kõigi vahel arusaamatuste tõenäosust, mis tähendab ka pikas perspektiivis vähem vigu.
instagram viewer

Siit saate teada, kuidas saate alustada puhta koodi kirjutamist.

1. Kasutage kirjeldavaid nimesid

Mis on muutujad, klassid ja funktsioonid? Sellele saab vastata mitmel viisil, kuid kui järele mõelda, siis pole need asjad muud kui liides programmeerija ja rakenduse loogika vahel.

Nii et kui kasutate muutujate, klasside ja funktsioonide jaoks ebaselgeid ja kirjeldamata nimesid, muudate rakenduse loogikat sisuliselt kõigi programmeerijate poolt, kes koodi loevad, sealhulgas iseennast.

„Ma ei ole suurepärane programmeerija; Olen lihtsalt hea ja suurepäraste harjumustega programmeerija. ”
- Kent Beck

Mida nimetab muutuja? dxy tegelikult tähendab? Kes teab. Selle tähenduse muutmiseks peate tõenäoliselt lugema kogu koodiosa. Teisest küljest on muutuja tähendus nagu distanceBetweenXY on koheselt äratuntav.

Sama kehtib klasside ja funktsioonide kohta. Ärge leppige CalcTan () kui saate edasi minna ArvutaTangent () või CalcTangentAngle () selle asemel.

2. Pange igale klassile / funktsioonile üks eesmärk

Kas olete kunagi piilunud funktsiooni sees, mis oli sadu või isegi tuhandeid jooni pikk? Kui teil on, siis teate, kui palju valu võib olla sirvimine, mõistmine ja muutmine. Kommentaarid võivad aidata, kuid ainult piiratud määral.

"Programmeerimine jagab ühe suure võimatu ülesande mitmeks väikseks võimalikuks ülesandeks."
- Jazzwant

Puhas kood jaotatakse aatomitükkideks. Iga funktsiooni eesmärk peaks olema ühe asja tegemine ja iga klassi eesmärk peaks olema ühe konkreetse kontseptsiooni esindamine. See on muidugi lihtsustamine, kuid kui kahtlete, on lihtsam puhtam.

Praktikas keeruline arvutus nagu GetCreditScore () võib olla vaja jagada mitmeks abistajafunktsiooniks, näiteks GetCreditReports (), ApplyCreditHistoryAge ()ja FilterOutstandingMarks ().

3. Kustutage mittevajalik kood

See halb harjumus on selline, millega ikka vaeva näen. Tavaliselt juhtub see nii: soovin koodiosa parandada või optimeerida, nii et kommenteerin selle välja ja kirjutan ümber just selle all oleva teksti - ja kuigi see töötab, hoian vana koodi igaks juhuks alles.

"Kas on võimalik, et tarkvara pole nagu miski muu, et see on mõeldud loobumiseks: et kogu mõte on näha seda alati seebimullina?"
- Alan J. Perlis

Aja jooksul on mul kogunenud terve rida kommenteeritavaid koodiplokke, mida pole enam vaja, kuid veel ei sega minu lähtefailid. Ja naljakas on see, et paljudel juhtudel on ümbritsev kood muutunud, nii et kommenteeritud kood ei töötaks isegi siis, kui see taastatakse.

Asi on selles, et varukoodi kommenteerimise tava muutis allikakontroll aegunuks. Kui te ei kasuta midagi sellist nagu Git või Mercurial, peate seda tegema alustage allikakontrolli kasutamist kohe. Puhastaja kood ootab teid.

Pidage meeles, et on oluline vältida ka korduva koodi kirjutamist, mida saate veebiraamistiku abil hõlpsasti teostada. Siin on mõned veebiraamistikud, mida tasub arendajana õppida 5 veebisüsteemi, mida tasub arendajatel õppidaKas olete huvitatud täpsema veebiarenduse õppimisest? Vältige nende veebiarenduse raamistike korduva koodikasutuse kirjutamist. Loe rohkem .

4. Loetavus> Nutikus

Liiga paljud programmeerijad seovad “puhta koodi” “targa koodiga”, justkui oleks kümne rea ühte tihendamine kuidagi puhtam. Muidugi, see võtab ekraanil vähem ruumi, kuid kas seda on tegelikult lihtsam mõista? Vahel võib-olla. Aga enamasti? Ei

„Kõik teavad, et silumine on kaks korda raskem kui programmi kirjutamine. Nii et kui te olete selle kirjutamisel nii tark kui saate, siis kuidas te seda siluda saate? "
- Brian W. Kernighan

Arvan, et programmeerijad armastavad nutikat koodi, sest see on nagu lahendatud mõistatus või mõistatus. Nad leidsid spetsiaalse ja ainulaadse viisi millegi rakendamiseks - kui soovite - otsetee ja see toimib peaaegu programmeerija oskuste kinnitamisel.

Kuid puhta koodi kirjutamiseks peate oma ego ukse taha jätma.

Optimeerige kood alati järgmise inimese jaoks, kes seda loeb, sest suure tõenäosusega on järgmine inimene sa oled tegelikult Sina ja pole midagi häbiväärsetmat kui see, kui sa ei suuda iseennast lugeda ega mõista nutikus.

5. Hoidke järjepidevat kodeerimisstiili

mul on midagi heade programmeerimisõpetuste vastu Mis teeb hea programmeerimisõpetuse?Kõiki programmeerimisõpetusi ei tehta võrdseks. Mõni toob teile kasu ja teised raiskavad teie aega. Siit saate teada, mida kvaliteetsest programmeerimisõpetusest otsida. Loe rohkem , kuid üks varjukülgi on see, et uustulnukad omandavad lõpuks mitmesuguseid vastuolulisi harjumusi, eriti kuna tegemist on kodeerimisstiiliga.

Ma ei ole siin, et kuulutada, et üks stiil on teisest parem. Kui soovite, et breketid oleksid nende endi jooned, siis otsige seda. Kui soovite eelistada meetodikõnesid tühikutega, siis sobib. Kui eelistate vahekaarte tühikutele, ärge lubage mul teisiti veenda.

Kuid mida iganes sa teed, ole järjekindel!

Ilus on parem kui kole.
Selgesõnaline on parem kui kaudne.
Lihtne on parem kui keeruline.
Keeruline on parem kui keeruline.
Korter on parem kui pesastatud.
Hõre on parem kui tihe.
Loetavus loeb.
- Tim Peters, Pythoni zen

Kui te kavatsete kasutada camelCaseNaming muutujate puhul ärge seda võltsige allajoonimine. Kui kasutate GetThisObject () ühes kohas ärge minge kaasa FetchThatObject () kuskil mujal. Ja kui segate vahelehti ja tühikuid, väärite klaviatuuri äravõtmist.

Otsustage algusest peale, mida kavatsete teha, ja pidage seda läbi ja lõhki. Mõnel keelel, näiteks Pythonil ja C # -l, on keeltevahelised stiilijuhised, mida võiksite järgida.

6. Valige õige arhitektuur

On palju erinevaid paradigmasid ja arhitektuure, mida saate kasutada oma projektide loomiseks. Pange tähele, kuidas see näpunäide valiku kohta on eks üks teie vajadustele, mitte selle valimiseks parim üks seal. Siin pole "parimat".

"Ilma nõuete ja kujunduseta on programmeerimine veade lisamine tühjasse tekstifaili."
- Louis Srygley

Näiteks on mudel-vaade-kontroller (MVC) muster praegu veebiarenduses väga populaarne, kuna see aitab hoida teie koodi korrastatuna ja kujundatud viisil, mis vähendab hooldustööd.

Samamoodi on Entity-Component-System (ECS) muster mängude arendamisel praegu väga populaarne, kuna see aitab moduleerida mänguandmeid ja loogikat viisil, mis teeb hooldamise lihtsamaks, luues samas lihtsama koodi loe.

7. Valda keele idioome

Üks raskusi Belgias uue programmeerimiskeele valdamine 7 kasulikke nippe uue programmeerimiskeele valdamiseksKoodide õppimisel on okei. Tõenäoliselt unustate asjad nii kiiresti kui õpite. Need näpunäited aitavad teil kogu seda uut teavet paremini säilitada. Loe rohkem õpib nüansse, mis eraldavad seda kõigist teistest keeltest. Need nüansid võivad olla erinevus koleda, keerdunud koodi ja ilusa, kergesti hooldatava koodi vahel.

Mõelge Pythonile, Javale ja JavaScriptile. Nad kõik on üksteisest äärmiselt erinevad määral, mis nõuab a erinev mõtteviis sõltuvalt sellest, millist keelt valida.

"Keel, mis ei mõjuta programmeerimise mõtteviisi, pole seda väärt."
- Alan J. Perlis

Kui Python on seotud kompaktsete koodide ja partide tippimisega, siis Java on rohkem sõnaoskuse ja selgeltnägemise poole. Igal keelel on idioomid (näiteks Pythonis loendi mõistmine), mis julgustavad teatud viisil kodeerima. Teil oleks hea neid õppida.

Muretsemiseks on ka nn anti-mustrid, mis on sisuliselt mitteoptimaalsed disainimustrid, mille tulemuseks on ebatõhus, ebausaldusväärne või muul viisil halb kood. Uurige ja tehke lahti kõik teie valitud keelega seotud levinumad antiismid.

8. Uurige magistrikoodeksit

Kui soovite kirjutada puhast koodi, on kõige parem teha see, kui vaadata puhta koodi väljanägemist ja proovida mõista, miks see nii on - ja selleks pole paremat viisi, kui uurida saidi lähtefaile tööstuse meistrid.

Ilmselt ei saa te lihtsalt Microsofti peakontorisse hüpata ja nende projekte piiluda, vaid võite alati sirvida tuntud avatud lähtekoodiga projekte Kuidas avatud lähtekoodiga rakenduse lähtekoodi vaadata ja redigeeridaEhkki avatud lähtekoodiga tarkvara kasutamine võib olla hea valik, peate investeerima ka õigesse kogukonda. GitHub on üks parimaid kohti selleks, mitte ainult tänu suurele hulgale ... Loe rohkem . Kas te ei tea kust alustada? Proovige näidatud projektid Githubis.

„Iga loll võib kirjutada koodi, millest arvuti aru saab. Head programmeerijad kirjutavad koodi, millest inimesed aru saavad. ”
- Martin Fowler, Refaktorimine: olemasoleva koodi kujunduse parendamine

Lõppude lõpuks on see üks põhjustest miks on avatud lähtekoodiga projektid olemas Miks inimesed panustavad avatud lähtekoodiga projektidesse?Avatud lähtekoodiga arendus on tarkvara tulevik. See sobib kasutajatele suurepäraselt, kuna avatud lähtekoodiga tarkvara on tavaliselt saadaval tasuta ja sageli turvalisem kasutada. Mis aga sunnib arendajaid koodi tasuta sisestama? Loe rohkem : et teised saaksid neist õppida. Ja kui otsustate sellisesse projekti panustada, see võib õppeprotsessi kiirendada 5 projektiideed, mis aitavad teil programmeerimist kiiremini õppidaProgrammeerimise õppimiskõvera kergendamiseks on mõned viisid. Pange oma käed räpaseks ja õppige kiiremini, kui alustate kõrvalprojektidega, mida võite alustada igal ajal. Mängige nende viiega ringi. Loe rohkem .

Isiklikult nägin ma esimest korda tõeliselt puhast koodi, kui komistasin läbi mõne harrastaja avatud lähtekoodiga Pythoni projekti. Kood oli nii tohutult elegantne, et peaaegu loobusin programmeerimisest, kuid lõpuks õpetas see mulle palju.

9. Kirjutage häid kommentaare

„Kirjutage häid kommentaare” on programmeerimise maailmas vanim nõuanne. Tegelikult, niipea kui uustulnukad on kommentaaridesse tutvustatud, julgustatakse neid päris palju kommenteerima nii tihti kui võimalik.

Kuid peaaegu on tunne, et oleme liiga vastupidises suunas liikunud. Eelkõige algajad kipuvad liiga palju kommenteerima - kirjeldavad asju, mida pole vaja kirjeldada ja millel puudub punkt, mis tegelikult on “hea kommentaar”.

"Koodige alati nii, nagu oleks tüüp, kes teie koodi säilitab, vägivaldne psühhopaat, kes teab, kus te elate."
- John Woods

Siin on hea rusikareegel: kommentaarid eksisteerivad selleks, et selgitada, MIKS kooditükk on olemas, mitte MIDA kood tegelikult on. Kui kood on kirjutatud piisavalt puhtalt, peaks see olema iseenesest mõistetav, mida see teeb - kommentaar peaks valgustama kavatsust, miks see kirjutati.

Kommentaarid võivad olla hoiatuste jaoks head (st „selle eemaldamine rikub A, B ja C”), kuid enamasti peaksid paljastada asju, mida ei saa koodist kohe välja tõmmata (st „kasutage seda parameetrit, kuna X, Y ja Z ”).

10. Refaktor, reaktor, reaktor

Nii nagu redigeerimine on osa kirjutamisprotsessist, on refaktoriseerimine osa kodeerimisprotsessist. Vastupanu refaktoriseerimisele on kiireim viis töötlematu koodi saamiseks, nii et see on mitmes mõttes tegelikult kõige olulisem näpunäide.

Lühidalt öeldes on refaktoriseerimine lihtsalt väljamõeldud termin koodi puhastamiseks ilma selle tegelikku käitumist mõjutamata.

"Kui ma pean mõtlema, et aru saada, mida see kood teeb, küsin endalt, kas ma suudan koodi ümber teha, et see arusaamine kohe nähtavamaks teha."
- Martin Fowler, Refaktorimine: olemasoleva koodi kujunduse parendamine

Üks natuke tarkust, mis mulle silma on jäänud, on ütlus: “Ärge kommenteerige halba koodi. Kirjutage see ümber. ” Nagu Fowler ülaltoodud tsitaadis selgitab, kui kood tundub kunagi piisavalt segane, et peate seda kommenteerima, peate võib-olla tegelikult selle uuesti reageerima.

Lisaks sellele, kui redigeerite siin ja seal kogu projekti vältel kood bitti, jätke kood alati paremasse olekusse kui siis, kui selle esimest korda leidsite. See võib hetkel tunduda häirivana, kuid tasub pikas perspektiivis ära (ja võib isegi ära hoida vaimse läbipõlemise Läbipõlemise programmeerimine: kuidas kaotatud motivatsiooni taastadaKõigi nende koodiridade kirjutamine võib füüsiliselt ja emotsionaalselt ära voolata. Varundamiseks on vaja ainult teadlikkust, et motivatsiooni saab taastada. Loe rohkem ).

Õppimiseks on alati midagi uut

Programmeerija, kes õpib puhta koodi kirjutamist, sarnaneb romaani kirjutajaga, kes õpib puhta proosa kirjutamist: iseenesest pole õige viis seda teha, kuid selleks on palju valesid viise ja selleks kulub aastaid peremees.

Mõnel inimesel pole seda, mis selleks vaja on lõpuks loobuda programmeerimisest 6 märki, et te ei taha olla programmeerijaKõiki ei lõigata programmeerijaks. Kui te pole täiesti kindel, et olete mõeldud programmeerijaks, siis siin on mõned märgid, mis võivad teid õiges suunas näidata. Loe rohkem - ja see on hästi, sest neid on palju muud tehnilised tööd, mis ei hõlma kodeerimist Kodeerimine pole kõigile: 9 tehnilist tööd, mida saate ilma selletaÄrge heitke end, kui soovite olla osa tehnikavaldkonnast. Kodeerimisoskuseta inimestel on palju töökohti! Loe rohkem . Kuid kõigi teiste jaoks on puhas kood asi, mille poole tasub kindlasti pingutada, isegi kui sinna jõudmiseks on vaja kogu ülejäänud elu.

Joel Lee'l on B.S. arvutiteaduses ja üle kuue aasta kestnud erialase kirjutamise kogemus. Ta on MakeUseOfi peatoimetaja.