Home » Articole » Articole » Calculatoare » Dezvoltarea web » Bune practici în programarea web

Bune practici în programarea web

Organizarea fișierelor

Pe măsură ce începem să creăm din ce în ce mai multe fișiere prin programare web pentru a finaliza site-ul nostru web, păstrarea tuturor fișierelor într-un singur folder va deveni rapid aglomerată. Pentru a rezolva acest lucru, putem crea foldere la fel cum facem când sortăm fișiere în Documentele mele. În mod tradițional, puteți crea dosare pentru imagini, scripturi, pagini sau fișiere sau pentru diferite secțiuni de conținut sau sarcini, cum ar fi un dosar de administrare sau un magazin de comerț electronic. Cum și de ce sunt create aceste foldere variază în funcție de gusturile personale sau de grup și, în unele cazuri, se face pentru a menține o anumită metodă de scriere a codului cum ar fi model-view-controller.

Pseudo-cod mai întâi!

Tablele nescrise, blocnotesurile și șervețelele sunt prietenii tăi. Scrierea modului în care intenționați să abordați o anumită problemă vă va ajuta să identificați problemele logice înainte de a fi la jumătatea codării lor și vă va ajuta să urmăriți ceea ce trebuie să lucrați pe măsură ce progresați. Crearea pseudo-codului este procesul de a scrie în propoziții slab structurate ceea ce trebuie făcut. De exemplu, dacă sarcina mea este să mă uit la fiecare element dintr-o matrice și să spun utilizatorului dacă este adevărat sau fals, am putea redacta următoarele:

foreach(thing in array){
if(thing / 2 is 0) then show Even
else show Odd
}

Imaginați-vă că în timp ce scriem acest exemplu ne dăm seama că vrem să stocăm răspunsurile pentru a le folosi din nou mai târziu, nu doar să le arătăm utilizatorului. Deci, haideți să ne actualizăm pseudo-codul pentru a avea în vedere acest caz de utilizare:

foreach(thing in array){
if(thing / 2 is 0) then add to even array
else add to odd array
send arrays back in an array
}

Revizuind ceea ce avem acum, nu prea arată diferit, dar până acum nu a trebuit să rescriem niciun cod. După ce ne-am gândit, s-ar putea să ne gândim că scrierea a două matrice suplimentare ar putea consuma mai multă memorie și mai puțin eficientă decât editarea celei pe care le avem deja. Deci, pentru a simplifica lucrurile și, eventual, a îmbunătăți performanța, am putea încerca acest lucru:

foreach(thing in array){
if(thing / 2 is 0) then add it to even array, delete
from this array
send arrays back in an array
}

În cele din urmă, deoarece acum edităm matricea noastră existentă, trebuie să ne asigurăm că facem referire la ea (asigurându-ne că modificările noastre sunt reflectate după finalizarea foreach), ceea ce înseamnă, de asemenea, că trebuie doar să returnăm matricea noatră pară:

foreach(reference! Thing in array){
if(thing / 2 is 0) then add it to even array, delete
from this array
send even array back
}

Deși niciunul dintre exemplele de mai sus nu ar funcționa (sunt doar pseudo-coduri), am putut edita de patru ori o versiune conceptuală a programului nostru. Alternativ, am fi petrecut timp creând și revizuind linii de cod reale de trei ori, doar pentru a continua să găsim o problemă, a face backup și a face o mulțime de modificări.

Comentarii

Pentru a cita Legea lui Eagleson, „Orice cod la care nu v-ați uitat timp de șase luni sau mai multe ar fi putut la fel de bine să fi fost scris de altcineva.” Acest lucru nu înseamnă că stilul sau abordarea dvs. se vor schimba drastic în timp, ci că memoria dvs. imediată despre ce înseamnă variabilele, de ce au fost făcute anumite excepții sau despre ceea ce codul, în cele din urmă, trebuia să abordeze, s-ar putea să nu fie la fel de evidentă ca atunci când ați lucrat ultima dată la fișier. Este firesc să simțim că ne vom aminti aceste detalii deoarece sunt atât de evidente atunci când le creăm. Necesitatea de a comenta bine devine imediat evidentă atunci când revizuiți munca altcuiva, și vă învârtiți frustrat încercând să vă dați seama ce încerca acea persoană să facă.

Acest lucru nu este pentru comentarii care sunt evidente pentru cititor din linie, cum ar fi:

$int = 2 + 2 //we added 2 and 2 together

Mai degrabă, comentariile sunt cele mai potrivite pentru a explica de ce metodele convenite nu au fost utilizate sau ce ar putea face codul dificil de înțeles, cum ar fi:

// Acest bloc de cod verifică fiecare fișier text din folder pentru data considerată și îl șterge

// Acesta este codul moștenit de când Frank M. lucra aici. Dacă schimbăm ceva, pot apare probleme

Ordinea de atribuire

Multe limbaje de scripting fac distincție între instrucțiunile de atribuire și testele logice pe baza numărului de semne egale utilizate în instrucțiune. De exemplu, acordarea pentru variabila $temp a valorii 10 (numită și „setarea” sau „atribuirea” variabilei) poate fi exprimată ca $temp = 10, în timp ce verificarea valorii ar arăta ca if ($temp == 10). Este foarte ușor să uităm plusul = atunci când scriem instrucțiuni logice, deoarece suntem atât de condiționat să-l folosim de unul singur.

Acest lucru creează probleme, deoarece un test logic scris ca if ($temp == 10) va fi întotdeauna adevărat. În primul rând, executăm ceea ce este în paranteză — în acest caz, setăm temperatura egală cu 10. Când se întâmplă acest lucru, sistemul returnează un rezultat „adevărat” în script – solicitarea a fost finalizată. Este ca și cum ai întreba dacă adevărat este adevărat – așa este întotdeauna! Deoarece acest lucru nu provoacă o problemă care oprește rularea programului, nu vom primi nicio eroare înainte de a-l rula. Erorile vor fi descoperite numai atunci când programul nu se comportă conform intenției și, în funcție de natura instrucțiunii logice dorite, acesta poate fi un caz rar, ceea ce duce la o depanare frustrantă. Acestea se numesc erori logice, deoarece compilatorul sau motorul poate rula codul pe care i l-am dat, iar eroarea se află între execuția așteptată și ceea ce este programat de fapt să facă sistemul.

Pentru a ne proteja de acest lucru, ne putem inversa afirmațiile logice pentru a ne pune valorile pe primul loc. Deoarece nu putem atribui o variabilă unui număr, scrierea 10 = $temp ar fi considerată invalidă, deoarece 10 nu reprezintă un loc în memoria sistemului. Nici variabilele, nici constantele nu pot începe cu un număr, chiar și 10 USD nu sunt valide. Cu toate acestea, if (10 == $temp) este încă valid, deoarece sistemul compară ambele părți ale ecuației între ele și este indiferent la ordine.

Plasând mai întâi valorile în instrucțiunile noastre logice, dacă uităm să folosim numărul corect de =, vom primi o eroare devreme pe care o putem găsi și remedia imediat. În caz contrar, rămânem cu o eroare logică pe care trebuie să o urmărim prin programul nostru mai târziu când descoperim că nu funcționează corect.

Citește-mă

Strâns legat de conceptul de comentariu bun este omniprezentul fișier Readme – familiar pentru mulți utilizatori, deoarece este fișierul text de bază pe care nimeni nu îl citește niciodată, în ciuda cererii tăcute a titlului. Prevalența continuă a fișierului Readme într-un astfel de format de fișier învechit se face pentru a se asigura că este lizibil pe cea mai mare varietate de sisteme de operare și este în continuare considerat cel mai bun format de livrare.

În fișierul dvs. Readme ar trebui să existe note care vizează utilizatorii finali. Dacă nu eliberați cod în sursă deschisă, aceștia nu vor putea citi comentariile dvs. Aceste note ar trebui să spună utilizatorului care sunt cerințele aplicației, cum să o instaleze, cum să obțineți ajutor și, dacă doriți, ce modificări notabile sunt în versiunea pe care o urmăriți în comparație cu predecesoarea. De obicei, cea mai obișnuită locație pentru a pune un fișier Readme este în folderul rădăcină al fișierelor dvs. sau într-un subdosar în care se aplică notele Readme.

Spațiere

Așa cum folosim spațierea în documente pentru a transmite că are loc o schimbare a subiectului, putem întrerupe șirul mai lung de comenzi punând spații în jurul liniilor care sunt grupate împreună pentru a finaliza o anumită sarcină, ceea ce înseamnă că următorul set de linii este pentru o altă sarcină. .

Paranteze

Unele limbaje impun programatorului să folosească o combinație de paranteze rotunde și pătrate pentru a identifica ce bucăți de cod sunt împreună. Acest lucru permite motorului sau compilatorului să delimiteze codul care ar trebui testat ca instrucțiune logică, codul care este executat dacă declarația respectivă este adevărată și codul că aparține funcțiilor sau claselor.

Pe măsură ce ne scriem codul și ajungem la cazurile în care avem nevoie de aceste elemente, este o practică bună să introduceți imediat atât marcatorul de început, cât și cel de sfârșit, apoi să creați spațiu între acestea pentru a introduce codul. Acest lucru vă va ajuta să vă asigurați că nu uitați să închideți parantezele mai târziu sau să le închideți în locuri greșite atunci când imbricați codul. În funcție de editorul dvs. de text, acesta vă poate ajuta prin adăugarea automată de paranteze de închidere și ajutându-vă să identificăți parantezele de deschidere și de închidere care se potrivesc.

Indentare

Pentru a face codul mai ușor de citit, puteți utiliza indentarea pentru a oferi cititorului o idee despre ce linii de cod aparțin diferitelor secțiuni. Acest lucru se face de obicei în interiorul funcțiilor, claselor și structurilor de control. Când imbricăm codul, se adaugă indentări suplimentare pentru fiecare strat din interior, deplasând acele blocuri de text mai spre dreapta pentru a le distinge vizual. Pe măsură ce terminăm conținutul unei bucle sau al unei funcții, paranteza noastră de închidere este aliniată cu definiția funcției sau declarația noastră logică pentru a arăta că secțiunea de cod care îi aparține este completă.

Deși programul nostru se va desfășura foarte bine fără indentare, vă este mai ușor să vedeți unde vă aflați în program și unde se dorește să fie linia la care vă uitați în fluxul logic.

Programare web - Formatarea codului(Exemple de formatare a codului)

Nume semnificative de variabile

Când creați variabile și funcții, încercați să creați nume care să aibă sens nu numai pentru dvs., ci și pentru alții care vă pot citi codul. Deși poate fi tentant să folosiți o mulțime de nume scurte de variabile în timp ce scrieți codul, va fi mai dificil mai târziu să urmăriți ceea ce ar trebui să reprezinte variabila. Puteți decide să utilizați nume scurte precum queryResult sau query_result sau ceva mai lung, cum ar fi numberOfResumesReceived. În timp ce acesta din urmă durează mai mult să tastați în timpul codificării, numele este foarte clar despre ceea ce reprezintă. Deoarece spațiile sunt în general interzise în numele variabilelor, aceste exemple ne arată câteva modalități de a aborda numele mai lungi. Metoda pe care o utilizați depinde de dvs., dar ar trebui să fie folosită în mod consecvent în codul dvs. pentru a reduce confuzia. Diferențele în ceea ce privește modul și locul în care folosiți majusculele sau caracterele de subliniere pot fi folosite pentru a reprezenta diferite tipuri de variabile, cum ar fi clase sau grupuri de variabile.

Numele scurte de variabile, cum ar fi un x simplu sau un nume generic, cum ar fi temp, pot avea locurile lor în codul dvs., dar sunt cel mai bine rezervate atunci când identifică o variabilă mică sau una care va avea o perioadă de valabilitate foarte scurtă în codul dvs.

Versiune

Acesta este procesul de creare a mai multor versiuni ale software-ului dvs., în loc de a vă suprascrie continuu singura ediție de cod. Prin crearea unor copii diferite ale programului pe măsură ce creați noi funcții, puteți păstra copii de lucru sau chiar puteți crea versiuni diferite ale programului. Acest lucru vă permite să „reveniți” sau să restaurați versiunile anterioare dacă în codul nou sunt create erori neprevăzute sau să permiteți încercarea și eliminarea diferitelor funcții în timp. Convențiile de denumire pentru diferite versiuni ale codului dvs. pot implica numere, litere, etape de lansare (de exemplu, alfa, beta, versiune candidată și lansare) o combinație a tuturor acestora, sau doar „dezvoltare” și „live”.

GitHub

Un instrument popular pentru colaborarea la proiecte în acest moment este GitHub. Concentrându-se pe proiecte open source, GitHub este un serviciu cloud cu opțiuni de aplicație instalate local, care se concentrează pe ramificare. Ramificarea facilitează mai multe versiuni de lucru cu funcții diferite pentru a coexista în același spațiu de proiect, oferind dezvoltatorilor posibilitatea de a contopi în mod selectiv noul cod GitHub în depozitul oficial al proiectului. Platforma acceptă partajarea codului, generarea de ramuri și include forumuri de discuții, erori și zone de solicitare a funcțiilor.

Sursa: Michael Mendez, The Missing Link – An Introduction to Web Development and Programming (CC BY-NC-SA 3.0 License), Published by Open SUNY Textbooks, Milne Library (IITG PI), State University of New York at Geneseo. Traducere de Nicolae Sfetcu

Articol publicat sub licență CC BY-NC-SA 3.0

Ghidul autorului de cărţi electronice
Ghidul autorului de cărţi electronice

Descoperă cum să devii autor de succes în era digitală!

Nu a fost votat $4.99 Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Filosofia tehnologiei blockchain - Ontologii
Filosofia tehnologiei blockchain – Ontologii

O incursiune în ontologiile și implicațiile tehnologiei revoluționare blockchain.

Nu a fost votat $0.00$2.75 Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.
Ghid WordPress pentru începători
Ghid WordPress pentru începători

Descoperă arta gestionării site-urilor web cu WordPress!

Nu a fost votat $2.99$5.48 Selectează opțiunile Acest produs are mai multe variații. Opțiunile pot fi alese în pagina produsului.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *