Cum se scrie cod curat Lecții învățate din „Codul curat” - Robert C
Există două lucruri - Programare și Programare bună. Programarea este ceea ce am făcut cu toții. Acum este momentul să faci o programare bună. Știm cu toții că chiar și codul rău funcționează. Dar este nevoie de timp și resurse pentru a face un program bun. Mai mult, alți dezvoltatori vă batjocoresc când încearcă să afle ce se întâmplă în codul dvs. Dar niciodată nu este prea târziu să ai grijă de programele tale.

Această carte mi-a oferit multe cunoștințe despre care sunt cele mai bune practici și despre cum să scriu codul. Acum îmi este rușine de abilitățile mele de codare. Deși mă străduiesc întotdeauna să-mi îmbunătățesc codul, această carte a învățat mult mai multe.
Acum, citiți acest blog din două motive. În primul rând, ești programator. În al doilea rând, vrei să fii un programator mai bun. Bun. Avem nevoie de programatori mai buni.
Caracteristicile unui cod Clean:
- Ar trebui să fie elegant - Codul curat ar trebui să fie plăcut de citit. Citind-o ar trebui să te facă să zâmbești așa cum ar face o cutie de muzică bine artizanată sau o mașină bine proiectată.
- Codul curat este focalizat - Fiecare funcție, fiecare clasă, fiecare modul expune o atitudine unică, care rămâne în întregime nedistricționată și nepoluată de detaliile din jur.
- Codul curat este îngrijit. Cineva și-a luat timp să-l păstreze simplu și ordonat. Au acordat o atenție adecvată detaliilor. Le-a pasat.
4. Rulează toate testele
5. Nu conține duplicări
6. Minimizați numărul de entități, cum ar fi clase, metode, funcții și altele asemenea.
Folosiți nume care dezvăluie intenția. Alegerea unor nume bune necesită timp, dar economisește mai mult decât este necesar. Numele unei variabile, funcții sau clase, ar trebui să răspundă la toate întrebările mari. Ar trebui să vă spună de ce există, ce face și cum este utilizat. Dacă un nume necesită un comentariu, atunci numele nu își dezvăluie intenția.
Ex- int d; // timpul scurs în zile.
Ar trebui să alegem un nume care să specifice ce se măsoară și unitatea măsurii respective.
Un nume mai bun ar fi: - int elapsedTime. (Chiar dacă cartea spune elapsedTimeInDays, aș prefera totuși cea dintâi. Să presupunem că timpul scurs se schimbă în milisecunde. Apoi ar trebui să schimbăm mult în int și elapsedTimeInMillis în loc de elapsedTimeInDays. Și pentru cât timp vom continua să schimbăm ambele tipul de date și numele.)
Numele clasei - Clasele și obiectele ar trebui să aibă nume de nume substantivale sau de sintagme nominale precum Client, WikiPage, Cont și AddressParser. Evitați cuvintele precum Manager, procesor, date sau informații în numele unei clase. Un nume de clasă nu trebuie să fie un verb.
Numele metodelor -Metodele ar trebui să aibă nume de verbe sau de fraze verbale precum postPayment, deletePage sau save. Accesorii, mutatorii și predicatele trebuie denumite după valoarea lor și prefixate cu get, set.
Când constructorii sunt supraîncărcați, utilizați metode statice din fabrică cu nume care descriu argumentele. De exemplu,
Punct fulcrum complex = Complex.FromRealNumber (23.0); este, în general, mai bun decât Complex fulcrumPoint = new Complex (23.0);
Alegeți un cuvânt pe concept -Alegeți un cuvânt pentru un concept abstract și rămâneți cu el. De exemplu, este confuz să obțineți, să preluați și să obțineți ca metode echivalente din diferite clase. Cum vă amintiți ce nume de metodă se asociază cu ce clasă? La fel, este confuz să ai un controler, un manager și un driver în aceeași bază de cod. Care este diferența esențială între un DeviceManager și un Protocol-Controller?
Prima regulă a funcțiilor este că acestea ar trebui să fie mici. A doua regulă a funcțiilor este că acestea ar trebui să fie mai mici decât aceasta. Acest lucru implică faptul că blocurile din instrucțiunile if, else, în timp ce instrucțiunile și așa mai departe, ar trebui să aibă o linie lungă. Probabil că acea linie ar trebui să fie un apel funcțional. Acest lucru nu numai că menține funcția de închidere mică, dar adaugă și valoare documentară, deoarece funcția numită în cadrul blocului poate avea un nume frumos descriptiv.