Răspuns
„Frumusețea este cumpărată după judecata ochiului”.
Acestea fiind spuse, cred că majoritatea programatorilor vor fi de acord că codul frumos demonstrează un echilibru între claritate și transparență, eleganță, eficiență și estetică.
-
Claritate și transparență : Claritatea este cât de ușor poate citi un cititor ce face codul. Codul transparent face ceea ce pare să facă. Dacă codul pare să facă un lucru, dar de fapt face altceva (sau ceva mai mult), nu este transparent – este înșelător.
-
Eleganță : există multe modalități de a implementa majoritatea algoritmilor, dar unele moduri sunt stângace, în timp ce altele sunt îngrijite și grațioase. Concluzia adaugă adesea eleganță, dar concizia excesivă poate reduce claritatea.
-
Eficiență : evitarea utilizării inutile a resurselor (cum ar fi timpul procesorului, memoria și I / O).
-
Estetică : a fi ușor pentru ochi. Acest lucru este destul de subiectiv. Cea mai mare parte se reduce la stil. Un aspect important este să aveți un stil consistent . Codul care schimbă, de exemplu, stilul de indentare la jumătatea parcursului, este urât.
Comentarii
Răspundeți
Nu lăsați oamenii să vă păcălească gândindu-vă că un cod frumos este următorul:
- algoritmi inteligenți
- caracteristici de limbaj ascuns
- rezolvarea unei probleme cu cea mai mică cantitate de lovituri cheie
Pentru că nu este. Un astfel de cod este drăguț și „merită cu siguranță o privire, dar nu este genul de cod cu care doriți să vă stabiliți.
Și știți că polimorfismul static recursiv cu șabloane meta care moștenește lambdas variatic – sau despre ce ați citit online? S-ar putea să fiți dornici să treceți la trucuri inovatoare și ingenioase fără un motiv clar pentru a le folosi. Dar codul care depășește granițele unei limbi nu este nici frumos.
Ele sunt sexy .
O mulțime de distracție, dar întreabă-te: Chiar vreau să petrec timp explorând anatomia acestui limbaj sau vreau să lucrez împreună cu un limbaj și să construiesc ceva frumos? La urma urmei, un limbaj de programare este doar instrumentul de creat.
Deci, ce este codul frumos atunci?
Cod frumos = cod care poate fi întreținut. ACEASTA ESTE!
CE A ESTE FORMULA !
Dacă puteți scrie ceva, reveniți la el câteva luni mai târziu și continuați să faceți progrese în acest sens, atunci este frumos. Dacă un an mai târziu vă dați seama că doriți să adăugați și funcționalități ca modificarea unei caracteristici existente și reușiți să o faceți cu relativă ușurință, atunci CE ESTE frumos. Dacă alte persoane pot păși în baza de cod și își dau seama rapid ce se întâmplă pentru că lucrurile sunt organizate, vor avea mai mult păr și vor fi, de asemenea, frumoase.
Deci, întrebarea reală pe care doriți să o puneți este : „Cum scriu un cod mai ușor de întreținut?”. Mi-e teamă că este o întrebare mai mare și este o disciplină creativă. Doar continuați să scrieți cod, dar de data aceasta nu vă întrebați dacă poate fi mai frumos. Întrebați-vă dacă îl puteți face mai ușor de întreținut.
Comentarii
Răspuns
Ideea mea este că „Codul frumos” nu este un termen obiectiv sau deosebit de util. Și nu ar trebui să încercăm să-l definim.
Definițiile tipice ale dicționarului cuvântului englezesc „beauty” merg așa:
- „1. combinația tuturor calitățile unei persoane sau lucruri care încântă simțurile și fac plăcere minții „
- ” 1. calitatea prezentă într-o persoană sau lucru care oferă o plăcere estetică intensă sau o satisfacție profundă minții sau simțurilor. ”
- „1. Calitatea care dă plăcere minții sau simțurilor și este asociată cu proprietăți precum armonia formei sau culorii, excelența artistică, veridicitatea și originalitatea.”
(Sursa http://dictionary.com )
Firul comun este „frumusețea” este despre ceea ce este estetic plăcut. Aceasta este neapărat subiectiv … așa cum este ilustrat de zicala „Frumusețea este în ochiul privitorului”.
Putem aplica cuvântul „frumusețe” la cod , iar semnificația evidentă este că codul este „plăcut din punct de vedere estetic”.
Dar a spune că „codul frumos” are un anumit set de atribute (așa cum sugerează alte răspunsuri) este o contradicție a evident sens de plăcut estetic. Estetica se referă la modul în care oamenii … oameni individuali … percep lucrurile.
Sau pentru a pune altfel, există ceva respingător despre cineva care-mi spune ce ar trebui să cred că este frumos, fie că este vorba de oameni, opere de artă sau … cod.
în ceea ce mă privește, codul frumos este un cod care cred că este frumos și atât. Este subiectiv și individual și permite doar să o lăsăm așa.
Răspuns
Iată sfatul meu.
Căutați răspunsurile la Cum puteți explica " cod frumos " unui non-programator? și vedeți pe ce caracteristici spun să se concentreze. Apoi ridicați o carte precum Cod complet și citiți-o pentru a afla sfaturi despre cum să scrieți un cod mai bun.
La un moment dat vă va lovi în timp ce vă uitați la codul dvs. mai vechi „Acest lucru este urât”. Va fi o reacție estetică directă. Și uitându-vă la el, vă veți da seama că vă vizualizați codul ca un programator și puteți vedea urâtul, deoarece știți cum ar trebui să arate codul mai bun.
Răspuns
Doar pentru că citești des despre codul frumos nu înseamnă că oamenii care scriu despre el au aceeași definiție. Din păcate, judecând după întrebarea ta, nu pare că s-au deranjat chiar să definește-l în primul rând.
Pentru mine, codul frumos este:
Codul concis care nu este expresiv poate fi criptic, iar codul expresiv care nu este concis tinde să fie umflat și plictisitor de citit, deci aveți nevoie de ambele.
Nu aș include mentenabilitatea ca parte a ceea ce face codul frumos, pentru că frumusețea este ceva ce vezi / citești, nu ceva ce acționezi. Dar, din nou, este „punctul meu de vedere personal.
Răspunde
Termenul cod frumos este un termen foarte vag și abstract. Este ușor să-ți dai seama ce reprezintă și ce înseamnă, dar nu ar trebui niciodată văzut ca mai mult decât un obiectiv secundar.
Îmi amintește o mulțime de valori privind acoperirea codului. Când obțineți un număr suficient de mare, vă puteți relaxa și merge la altceva. A avea o bază de cod cu o acoperire de aproximativ 80% este minunat, nu antiglonț, dar suficient pentru a vă răci și a face alte lucruri. A avea 40% de acoperire este destul de înfricoșător și ar trebui să te încurajeze să crești acest număr.
Punctul este că acoperirea codului este semnificativă doar dacă numărul este redus. Deci, nu o lăsați să fie scăzută. Când acoperirea crește la un anumit punct, treceți la altceva.
În mod similar, codul frumos este minunat. Dacă aveți cod destul, minunat, treceți la altceva. Nu vă stresați prea mult. Nu veți atinge niciodată această marcă de 100% și, dacă faceți acest lucru, veți găsi că v-ați concentrat prea mult pe ceea ce citește sau cum arată, și nu suficient pe ce face sau cum o face. Așadar, ajungeți la un semn rezonabil și apoi opriți-vă.
Dar dacă codul dvs. este rapid, dacă este o mizerie gigantică de cod spaghetti, dacă vă doare fizic să deschideți fișierul, dacă nu aveți comentarii sau documentație etc etc etc apoi remediați-o. Și faceți-o cât mai curând posibil.
Veți descoperi că, în timp, baza codului dvs. ajunge în general mai curată, în general mai strălucitoare și, în general, mai frumoasă și, mai important, mai ușor de utilizat, atunci când vă concentrați să o faceți mai slabă. Scrierea unui cod frumos este nu un proces dintr-un singur pas.
Nu există o filozofie magică. Cei 1000 de pași mai mici ai săi sunt realizați împreună, toți având un scop concret care nu are nimic de-a face cu cât de frumos este codul. Dar, atunci când serviți-le pe toate împreună, formează un cod frumos ca suma părților sale. Ca voltron. Sau planeta căpitan.
Răspuns
Sunt de acord cu răspunsurile de aici, însă, adoptând o abordare mai puțin tehnică, aș spune că codul frumos este o expresie a autorilor săi „claritatea gândirii problemei la îndemână, care se manifestă printr-un limbaj bine formulat și precis, dar simplu.
Pentru mine, a căuta prin coduri frumoase seamănă cu a privi o piesă de artă, a vedea detalii mereu noi care arată „producătorul” intenția, dar și modul în care s-au realizat diferitele părți, fiecare oferind un răspuns la atâtea întrebări și apoi, în cele din urmă, modul în care existența sa se simte ca o lege naturală la care totul se aliniază astfel încât să poată fi descris doar cu cuvinte de uimire: magnific , inspirator, frumos.
Deci, din această perspectivă, în cariera ta de programator ai putea face descoperiri de coduri frumoase pe care alții nu le-ar putea înțelege, deoarece le lipsește cunoștințele sau s-ar putea să nu mai găsească demne de remarcat, deoarece au fost răsfățați prin prea multă frumusețe;)
Codul frumos are toate calitățile pragmatice așa cum s-a menționat altfel, sunt total de acord.
Răspuns
Am trei criterii:
- Simplu: Cel puțin trebuie să fie lizibil de către om. De exemplu, puteți scrie un cod care funcționează la O (1) pentru o soluție cu tone de linii, dar prefer codul care funcționează cu 0 (n) rezolvă cu câteva linii. Acest lucru s-ar putea schimba pentru situații extreme, dar pentru început simplitatea este importantă.
- Reutilizabil: Codul trebuie să fie reutilizabil, dar nu suprascris. Dacă aveți nevoie de o operație, ar trebui să o definiți așa cum o puteți folosi ani mai târziu.
- Indentare: Poate că aceasta nu este o problemă pentru dvs., dar pentru începători, acesta este primul lucru care trebuie rezolvat.