Publicitate

Fără îndoială, programarea este grea. Este un lucru de făcut învață limbi si studiu algoritmi, dar este o altă bestie care încearcă să codifice o aplicație de lucru complexă care nu te face să vrei să-ți scoți ochii.

Într-un fel, scrierea unui cod curat seamănă foarte mult cu desenul, gătitul sau fotografia - pare mai ușor decât este în realitate. Atunci de ce să te deranjezi? Ei bine, pentru că beneficiile merită:

  • Problemele devin mai ușor de rezolvat. Odată ce începeți să gândiți în cod curat, abordarea dvs. la rezolvarea problemelor se schimbă. În loc de soluții forțate brute, algoritmii și designul dvs. software devin mai elegante și mai intenționate.
  • Mai puțin timp este pierdut la întreținere. Codul curat este mai ușor de citit și de înțeles, așa că petreci mai puțin timp încercând să-ți dai seama ce fac de fapt anumite segmente și mai mult timp la fixarea, revizuirea, extinderea etc.
  • Ideile sunt comunicate mai clar. Dacă lucrați cu alți programatori, codul curat reduce probabilitatea de neînțelegeri între toți, ceea ce înseamnă, de asemenea, mai puține erori pe termen lung.
    instagram viewer

Iată cum puteți începe să scrieți un cod curat.

1. Utilizați nume descriptive

Care sunt variabilele, clasele și funcțiile? Există multe modalități de a răspunde la asta, dar când vă gândiți cu adevărat la acestea, acele lucruri nu sunt altceva decât interfața dintre un programator și logica de bază a unei aplicații.

Deci, când utilizați nume neclare și nedescriptive pentru variabile, clase și funcții, în mod esențial, obișnuiești logica aplicației de la orice programator care citește codul, inclusiv pe tine însuți.

„Nu sunt un mare programator; Sunt doar un programator bun, cu obiceiuri grozave. ”
- Kent Beck

Ce numește o variabilă numită dxy de fapt înseamnă? Cine știe. Probabil va trebui să citiți întreaga bucată de cod pentru a inversa sensul inginerului. Pe de altă parte, sensul unei variabile ca. distanceBetweenXY este recunoscut instantaneu.

Același lucru este valabil și pentru clase și funcții. Nu vă mulțumiți CalcTan () când poți merge CalculateTangent () sau CalcTangentAngle () in schimb.

2. Oferiți fiecărei clase / funcții un scop

Ați aruncat vreodată o privire în interiorul unei funcții care a durat sute sau chiar mii de linii? Dacă aveți, atunci știți cât de multă durere poate fi să răsfoiți, să înțelegeți și să editați. Comentariile pot ajuta, dar numai într-o măsură limitată.

„Programarea împarte o mare sarcină imposibilă în câteva sarcini mici posibile.”
- Jazzwant

Codul curat este defalcat în bucăți atomice. Fiecare funcție ar trebui să urmărească să facă un singur lucru și fiecare clasă ar trebui să urmărească să reprezinte un concept particular. Desigur, aceasta este o simplificare, dar când există îndoială, simplul este mai curat.

În practică, un calcul complex ca GetCreditScore () poate fi necesar să fie divizat în mai multe funcții de ajutor, cum ar fi GetCreditReports (), ApplyCreditHistoryAge (), și FilterOutstandingMarks ().

3. Ștergeți codul inutil

Acest obicei prost este unul cu care încă mă lupt din când în când. De obicei, se întâmplă astfel: vreau să remediez sau să optimizez o bucată de cod, așa că o comentez și fac o rescriere chiar sub ea - și chiar dacă funcționează, păstrez codul vechi acolo, în caz.

"Este posibil ca software-ul să nu fie ca orice altceva, ci să fie aruncat: că tot ideea este să-l vedem întotdeauna ca un balon de săpun?"
- Alan J. Perlis

De-a lungul timpului, acumulez o mulțime de blocuri de cod comentate care nu mai sunt necesare, dar încă îmi înghesuie fișierele sursă. Și amuzant este că, în multe cazuri, codul înconjurător a evoluat, astfel încât codul comentat nu ar funcționa chiar dacă este restaurat.

Cert este că această practică de comentare a „codului de rezervă” a fost învechită prin controlul sursei. Dacă nu utilizați ceva de genul Git sau Mercurial, trebuie să faceți acest lucru începe imediat să folosești controlul sursei. Codul mai curat te așteaptă.

Nu uitați, este important să evitați scrierea codului repetitiv, pe care îl puteți realiza cu ușurință cu un cadru web. Iată câteva cadre web care merită învățate ca dezvoltator 5 cadre web care merită învățate pentru dezvoltatoriVrei să înveți dezvoltarea web avansată? Evitați să scrieți coduri repetitive, în schimb, aceste cadre de dezvoltare web. Citeste mai mult .

4. Readability> Inteligență

Prea mulți programatori combină „codul curat” cu „codul inteligent”, de parcă compactarea a zece linii într-una este oarecum mai curată. Sigur, ocupă mai puțin spațiu pe ecran, dar este de fapt mai ușor de înțeles? Uneori, poate. Dar de cele mai multe ori? Nu.

„Toată lumea știe că depanarea este de două ori mai grea decât scrierea unui program în primul rând. Așadar, dacă ești cât mai isteț ca tine când îl scrii, cum îl vei depana vreodată? "
- Brian W. Kernighan

Cred că programatorii adoră codul inteligent, deoarece se simte ca un puzzle sau o ghicitoare rezolvată. Au găsit o modalitate specială și unică de a pune în aplicare ceva - o „scurtătură” dacă doriți - și aproape că acționează ca o validare a competențelor programatorului.

Dar pentru a scrie cod curat, trebuie să vă lăsați ego-ul la ușă.

Optimizați întotdeauna codul pentru următoarea persoană care o va citi, pentru că, după toate probabilitățile, este următoarea persoană de fapt vei fi TU și nu este nimic mai rușinos decât să nu poți citi sau înțelege pe al tău istetime.

5. Păstrați un stil de codare consecvent

eu am nimic împotriva tutorialelor bune de programare Ce face un bun program de programare?Nu toate tutorialele de programare sunt egale. Unii beneficiază de tine, iar alții sfârșesc să-ți pierzi timpul. Iată ce să caute într-un tutorial de programare de calitate. Citeste mai mult , dar unul dintre dezavantaje este faptul că principalii ajung să ia o mare varietate de obiceiuri conflictuale, mai ales că se referă la stilul de codare.

Nu sunt aici pentru a declara că un stil este mai bun decât altul. Dacă doriți bretele pe propriile linii, mergeți pentru ea. Dacă doriți să precedeți apelurile metodei cu spații, bine. Dacă preferați filele spațiilor, nu mă lăsați să vă conving altfel.

Dar orice ai face, rămâi consecvent!

Frumos este mai bun decât urât.
Explicitul este mai bun decât implicit.
Simplu este mai bun decât complex.
Complexul este mai bine decât complicat.
Flat este mai bun decât cuibărit.
Sparse este mai bun decât dens.
Lectura contează.
- Tim Peters, Zenul lui Python

Dacă veți folosi camelCaseNaming pentru variabile, nu o adulează underscore_naming. Dacă folosești GetThisObject () într-un singur loc, nu mergeți FetchThatObject () altundeva. Și dacă amestecați filele și spațiile, meritați să vă luați tastatura.

Decideți ce veți face de la bun început și rămâneți cu ea până la capăt. Unele limbi, cum ar fi Python și C #, au ghiduri în stilul întregii limbi pe care poate doriți să le urmați.

6. Alegeți Arhitectura potrivită

Există multe paradigme și arhitecturi diferite pe care le puteți utiliza pentru a vă crea proiectele. Rețineți cum este acest sfat despre selectarea dreapta unul pentru nevoile dvs., nu despre selectarea Cel mai bun unul acolo. Nu există „cel mai bun” aici.

„Fără cerințe și design, programarea este arta de a adăuga bug-uri la un fișier text gol.”
- Louis Srygley

De exemplu, modelul Model-View-Controller (MVC) este foarte popular chiar acum în dezvoltarea web, deoarece ajută la menținerea codului dvs. organizat și proiectat într-un mod care să minimizeze eforturile de întreținere.

În mod similar, modelul Entity-Component-System (ECS) este foarte popular chiar acum în dezvoltarea jocului, deoarece ajută la modularizarea datelor și logicii jocului într-un mod care să faciliteze menținerea, producând totodată mai ușor cod citit.

7. Stăpânește Idiomele limbii

Una dintre dificultățile din stăpânirea unui nou limbaj de programare 7 trucuri utile pentru stăpânirea unui limbaj de programare nouEste în regulă să fii copleșit când înveți să faci cod. Probabil că veți uita lucrurile la fel de repede când le veți învăța. Aceste sfaturi vă pot ajuta să păstrați mai bine toate aceste informații noi. Citeste mai mult învață nuanțele care o separă de toate celelalte limbi. Aceste nuanțe pot fi diferența dintre codul urât, convolut și codul frumos, ușor de întreținut.

Luați în considerare Python, Java și JavaScript. Toți sunt extrem de diferiți unul de celălalt, într-o măsură care necesită o modul diferit de a gândi în funcție de ce limbă alegeți să folosiți.

„Un limbaj care nu afectează modul în care gândești despre programare nu merită să-l știi.”
- Alan J. Perlis

În timp ce Python se referă la scrierea compactă a codului și a raței, Java se orientează mai mult către versiunea verosimilității și a mărturisirii. Fiecare limbă are idiomuri (cum ar fi înțelegerile de listă din Python) care încurajează un anumit mod de codare. Ai face bine să le înveți.

Există, de asemenea, „anti-modele” de care să vă faceți griji, care sunt esențial modele de proiectare sub-optime care au ca rezultat cod ineficient, nesigur sau rău. Studiați și dezvăluiți toate anti-modelele comune legate de limba voastră aleasă.

8. Studiază Codul Maeștrilor

Dacă doriți să scrieți un cod curat, cel mai bun lucru pe care îl puteți face este să vedeți cum arată codul curat și să încercați înțelegeți de ce este așa - și nu există o modalitate mai bună de a face acest lucru decât prin studierea fișierelor sursă stăpâni în industrie.

Evident, nu poți doar să intri în sediul Microsoft și să arunci o privire asupra proiectelor lor, dar poți mereu răsfoiți proiecte binecunoscute open-source Cum Pentru a vizualiza și edita codul sursă al unei aplicații cu sursă deschisăDeși accesul la sursă deschisă poate fi o alegere bună, va trebui să investiți și în comunitatea potrivită. GitHub este unul dintre cele mai bune locuri pentru a face acest lucru, nu numai datorită cantității pure ... Citeste mai mult . Nu știți de unde să începeți? Incearca proiecte expuse pe Github.

„Orice prost poate scrie un cod pe care un computer îl poate înțelege. Programatorii buni scriu codul pe care oamenii îl pot înțelege. ”
- Martin Fowler, Refactoring: Îmbunătățirea proiectării codului existent

Până la urmă, acesta este unul dintre motivele de ce există proiecte open-source De ce contribuie oamenii la proiecte open source?Dezvoltarea open source este viitorul software-ului. Este excelent pentru utilizatori, deoarece software-ul open source este de obicei disponibil gratuit și de multe ori este mai sigur de utilizat. Dar ce îi obligă pe dezvoltatori să contribuie gratuit cu codul? Citeste mai mult : pentru ca alții să învețe de la ei. Și dacă decideți să contribuiți la un astfel de proiect, poate accelera procesul de învățare 5 idei de proiect care să vă ajute să învățați programarea mai rapidăExistă câteva modalități de a ușura curba de învățare pentru programare. Îmbrăcați-vă mâinile și învățați mai repede cu proiecte secundare pe care le puteți începe oricând. Joacă în jur cu aceste cinci. Citeste mai mult .

Personal, prima dată când am văzut un cod curat, cu adevărat, este când am dat peste un proiect Python open-source al unui anumit hobbyist. Codul era atât de copleșitor de elegant, încât aproape că am renunțat la programare, dar a sfârșit învățându-mă mult.

9. Scrie comentarii bune

„Scrieți comentarii bune” este cel mai vechi sfat din lumea programării. De fapt, de îndată ce newbies-urile sunt introduse în comentarii, sunt destul de încurajați să comenteze cât de des pot.

Dar aproape că simțim că ne-am învârtit prea mult în direcția opusă. Newbies, în special, tind să exagereze excesiv - descriind lucruri care nu trebuie să fie descrise și lipsesc punctul care este de fapt un „comentariu bun”.

„Codează întotdeauna ca și cum tipul care va ajunge să-ți mențină codul va fi un psihopat violent care știe unde locuiești.”
- John Woods

Iată o regulă bună: există comentarii pentru a explica DE CE există o bucată de cod, mai degrabă decât CE face efectiv codul. În cazul în care codul este suficient de curat, ar trebui să fie explicabil de la sine ceea ce face - comentariul ar trebui să dea dovadă de intenția din spatele motivului pentru care a fost scris.

Comentariile pot fi bune pentru avertismente (adică „eliminarea acestui lucru va rupe A, B și C”), dar în mare parte ar trebui descoperiți lucruri care nu pot fi extrase imediat din cod (de exemplu, „utilizați acest parametru deoarece X, Y și Z“).

10. Refactor, Refactor, Refactor

La fel cum editarea face parte din procesul de scriere, refactorizarea face parte din procesul de codare. Aversiunea la refactorizare este cea mai rapidă modalitate de a termina cu un cod de neînlocuit, astfel încât, în multe feluri, acesta este de fapt cel mai important sfat de luat în considerare.

Pe scurt, refactorizarea este doar un termen fantezist pentru curățarea codului, fără a afecta comportamentul real.

„Ori de câte ori trebuie să mă gândesc să înțeleg ce face codul, mă întreb dacă pot refactora codul pentru a face această înțelegere mai imediată”.
- Martin Fowler, Refactoring: Îmbunătățirea proiectării codului existent

Un pic de înțelepciune care s-a blocat cu mine este zicala: „Nu comentați codul prost. Rescrie-l. " Așa cum explică Fowler în citatul de mai sus, dacă codul se simte vreodată suficient de confuz încât trebuie să-l comentezi, poate trebuie să îl refactorizezi.

În plus, pe măsură ce editați biți de cod aici și acolo pe întregul proiect, lăsați întotdeauna codul într-o stare mai bună decât atunci când l-ați găsit. Poate părea o problemă în momentul de față, dar va plăti pe termen lung (și poate chiar să se oprească de arsuri mentale Programare Burnout: Cum să-ți recâștigi motivația pierdutăScrierea tuturor acestor linii de cod poate fi scurgeră fizic și emoțional. Tot ce ai nevoie pentru a te recupera este conștientizarea faptului că motivația poate fi redobândită. Citeste mai mult ).

Întotdeauna este ceva nou de învățat

Un programator care învață cum să scrie cod curat este similar cu un romancier care învață cum să scrie proză curată: nu există o modalitate corectă de a face acest lucru în sine, dar există o mulțime de modalități greșite de a face acest lucru și va dura ani întregi maestru.

Unii oameni nu au ce trebuie și în cele din urmă sfârși renunțând la programare pentru bine 6 semne că nu vrei să fii programatorNu toată lumea este tăiată pentru a fi programator. Dacă nu sunteți complet sigur că sunteți menit să fiți un programator, iată câteva semne care vă pot indica în direcția corectă. Citeste mai mult - și este în regulă, pentru că sunt destule alte joburi tehnice care nu implică codare Codarea nu este pentru toată lumea: 9 locuri de muncă tehnice pe care le puteți obține fără elNu vă descurajați dacă doriți să faceți parte din domeniul tehnologic. Există o mulțime de locuri de muncă pentru oameni fără abilități de codare! Citeste mai mult . Însă, pentru toți ceilalți, codul curat este ceva care merită absolut să te străduiești, chiar dacă îți este nevoie de restul vieții.

Joel Lee are un B.S. în informatică și peste șase ani de experiență profesională în scris. Este redactor șef pentru MakeUseOf.