Articolul meu anterior a descris cum puteți intra în dezvoltarea frontendului. De asemenea, s-a discutat despre modul în care front-end-ul poate fi un loc plin de mine terestre – pășește într-un loc greșit și vei fi copleșit de numeroasele cadre ale ecosistemului JavaScript.
În acest articol de blog, să vedem cum puteți intra în dezvoltarea back-end. Pe parcurs, voi răspunde la unele dintre cele mai frecvente întrebări pe care mi le adresează oamenii despre asta.
Ce este dezvoltarea Backend?
Dezvoltarea front-end implică ceea ce un utilizator vede pe ecran atunci când deschide o anumită adresă URL deținută de dvs. Chiar și într-un mediu complet static (doar cu HTML / CSS), atunci când cineva deschide un site web, un server de pe planetă trebuie să vă răspundă cu acele fișiere HTML și CSS.
Serverul respectiv este doar un computer, la fel ca cel pe care îl folosiți pentru a naviga pe internet. Dar a fost reglat pentru performanță și nu are componente inutile, cum ar fi un mouse sau o tastatură atașate. Și stă cu multe alte computere probabil într-un depozit de date.
Programarea acestor computere într-un mod special se numește dezvoltare back-end.
S-ar putea să credeți că dezvoltarea backend-ului se numește ceea ce este, deoarece rulează în spatele utilizatorului. Un vizitator al site-ului dvs. web niciodată nu „accesează” complet back-end-ul complet. Ei comunică doar cu serverul dvs., fie direct prin porturi pentru acces foarte limitat (cum ar fi transferul de fișiere HTML / CSS) sau chiar atât – îngropat adânc sub CDN-uri sau firewall-uri (cum ar fi Cloudflare).
Acum, că avem o înțelegere brută a ceea ce înseamnă dezvoltarea back-end, să intrăm în unele real întrebări.
Sunt necesare cunoștințe de programare front-end pentru back-end?
TLDR; Nu.
Dezvoltarea back-end, așa cum s-a menționat mai sus, implică programarea unui computer așezat probabil pe cealaltă parte a planetei responsabilă pentru a răspunde la ceea ce spun utilizatorii dvs. de la propriile computere.
Dacă sunteți dezvoltator de backend cu normă întreagă, nu trebuie să vă preocupe cu adevărat ce se întâmplă în acele fișiere HTML, CSS și JavaScript pe care le trimiteți în browserul utilizatorului. În schimb, trebuie să vă concentrați mai mult pe performanța serverului, codul serverului și transferul.
Ce se întâmplă în dezvoltarea back-end?
Ei bine, mergând după cărți, puteți spune că o persoană care codifică o aplicație care poate răspunde cererilor HTTP este un dezvoltator back-end.
Dar, în realitate, uneori dezvoltatorii de back-end sunt capabili să facă mult mai mult decât să scrie scripturi de server. Ei au cunoștințele necesare pentru a configura servere proxy inverse (NGiNX / HAProxy), pentru a permite compresia și alte modalități de a accelera site-ul și pentru a configura un mediu de andocare de producție.
Pentru a mă califica ca dezvoltator de back-end, aș spune că abilitățile minime de care aveți nevoie sunt:
- Cunoaștere bună despre un limbaj de programare în care puteți scrie servere HTTP. Exemple: C #, Java, Node, PHP, Python etc. (sunt multe!)
- Gestionați să găzduiți folosind cPanel (tradițional) sau folosind terminal bash (cloud hosting / tradițional)
- Lucrul cu sistemele de control al versiunilor (VCS), cum ar fi git pentru gestionarea și implementarea versiunilor
La fel ca fiecare joc vine cu specificații minime și recomandate, pentru dezvoltatorii de back-end, specificațiile mele recomandate ar fi (inclusiv abilitățile minime):
- NGiNX pentru activele de fișiere statice și gestionarea serverului
- Abilități de gestionare a bazelor de date (SQL / NoSQL)
- Securitatea backend-ului (Scrierea unui cod sigur și robust, rularea aplicațiilor în containere docker cu privilegii limitate, protecție împotriva atacurilor DoS)
- Autoscalare / echilibrare a sarcinii
Bine, prea mult vorbim despre ceea ce se întâmplă în dezvoltarea back-end. Dar cum devii unul?
Începeți cu cerințele minime
Așa cum am spus, pentru back-end, la fel ca jocurile, avem un set de cerințe minime și cerințe recomandate. Cerințele minime constă din 3 lucruri:
Aflați un limbaj de programare backend
Când oamenii învață singuri, de obicei nu au o echipă sau nimeni care să poată dezvolta front end. Toți sunt singuri. Așadar, va trebui adesea să creați singuri pagini web și servere, cel puțin la început.
Deși există o mulțime de opțiuni pentru limbajele de programare din spate și nu mă pot gândi la nici un limbaj de sistem popular care nu acceptă servere HTTP din cutie. Avantajul alegerii Nodului este că abilitățile dvs. JavaScript din partea frontală sunt transferabile în partea din spate.
Cu toate acestea, puteți alege dintr-o varietate de limbaje cum ar fi Java, C ++, C #, Python, PHP etc.
Cum alegi unul, s-ar putea să întrebi. Răspunsul este același cu cel din articolul de dezvoltare front-end: trebuie să încerci totul inițial și să vezi care dintre ele dă clic cel mai bine cu tine.
Nodul este ușor, deoarece este posibil să fi făcut deja programarea JS pentru front-end. Dar dacă sunteți dezvoltator Python sau Java, s-ar putea să le găsiți ușor. Depinde de profesia și gustul tău complet.
Aflați despre gestionarea găzduirii
Au trecut vremurile în care va trebui să achiziționați manual servere și să le configurați acasă, să vă conectați la ISP-ul dvs., să faceți singur toate aceste lucruri. Aceasta este era cloud computing-ului. Acum, când vă găzduiți site-ul, aveți în principal 2 opțiuni:
- Căutați servere de găzduire gestionate, cum ar fi HostGator sau GoDaddy.
- Căutați furnizori de găzduire cloud, cum ar fi GCP, AWS sau DigitalOcean.
Care este diferența dintre cele două? În ambele cazuri, serverele sunt deținute și operate de companiile respective. Dar diferența majoră este că găzduirea gestionată este mai prietenoasă cu GUI, are un set bogat de instrumente pentru vizualizarea sistemului de fișiere, monitorizarea utilizării, gestionarea e-mailurilor oficiale din domeniul dvs., încărcarea / descărcarea fișierelor de pe serverul dvs. și așa mai departe. Este practic o configurație pentru persoanele cu abilități tehnice mai puține.
Din acest motiv, nu recomand site-uri gestionate precum HostGator sau GoDaddy pentru dezvoltatorii experimentați. Totuși, ar putea fi o platformă bună pentru a face greșeli și a învăța, în primul rând pentru că de obicei aveți planuri preplătite pentru ele. Veți avea, de asemenea, o interfață de utilizare bună pentru gestionarea lucrurilor, care nu vă permite să vă ridicați accidental facturile.
Dar când începeți să accelerați viteza, vă recomand să treceți la un furnizor de cloud. Aceasta elimină toate instrumentele frumoase de pe cPanel pe care le-ați folosit pentru a gestiona fișiere și foldere pe servere. Dar, în același timp, vă va provoca să vă ridicați mult abilitățile.
Astăzi, o mulțime de furnizori de cloud oferă, de asemenea, o perioadă de încercare gratuită decentă, astfel încât să puteți încerca platforma lor înainte de a intra complet. Găzduiesc site-ul meu pentru dezvoltatori – codedamn – pe DigitalOcean și consider că este la un echilibru dulce de complexitatea și caracteristicile site-ului.
Poți să folosești acest link către înscriere pe DigitalOcean și obțineți credite gratuite de 100 USD. Instanțele DigitalOcean sunt la fel de ieftine ca 5 USD pe lună, deci aveți o pistă de aproximativ 20 de luni în acea instanță, mare lucru, nu?
Oricum, puteți alege orice furnizor de cloud. Apoi, este important să învățați să gestionați serverul folosind doar linia de comandă, introducând în el.
Aflați despre sistemele de control al versiunilor
Există și alte soluții în afară de Git pentru VCS. Dar Git este cel mai folosit și mai simplu de înțeles.
Ca individ, s-ar putea să nu-l apreciezi imediat. Dar veți înțelege de ce este atât de important în momentul în care începeți să lucrați, fie în echipă, cu mai multe funcții simultan în proiectul dvs.
Git vă permite să vă gestionați fluxul de lucru utilizând comitetele și ramurile. Angajamentele sunt ca. puncte de control în baza de coduri – la care puteți reveni oricând dacă vă înșelați.
Ramurile sunt ca. realități alternative a proiectului dvs., unde s-ar putea întâmpla ceva complet diferit. Aceste realități alternative pot fi create din orice moment și pot fi combinate din nou în orice moment.
Dacă aceste realități pot fi combinate împreună cu compatibilitatea, atunci este bine. Dar dacă există un conflict (cum ar fi dacă ești viu într-o realitate și mort în alta), atunci trebuie să faci o alegere manuală. Alte modificări pot fi combinate automat.
Git este foarte interesant și, odată ce îl veți obține, veți dori să îl folosiți în fiecare proiect. Veți păstra un istoric al muncii dvs. într-un mod eficient (comprimă și stochează doar diferența dintre comitere).
De asemenea, vă permite să creați depozite git online pe site-uri precum GitHub, care acționează ca o sursă centrală de adevăr pentru site-ul dvs. web. Site-uri precum GitHub pot fi configurate cu webhook-uri speciale care vă pot actualiza site-ul web de fiecare dată când adăugați un nou punct de control (un nou commit) fără a fi nevoie să mergeți manual la server și să îl actualizați singur.
Mergeți pentru abilitățile recomandate
Sunt un mare credincios în a învăța prin a face. Iar cel mai bun mod de a face ceva vine din necesitate sau interes. Odată ce te consideri suficient de bun cu cerințele minime, este timpul să dobândești abilitățile recomandate. Aceasta include toate instrumentele precum Docker și NGiNX menționate mai sus.
DevOps este, de asemenea, ceva care se potrivește foarte frumos cu dezvoltatorii din spate. Ai putea încerca și explora TravisCI sau Cerc CI pentru implementări automate de construire. Integrarea și implementarea continuă (CI / CD) este un subiect care ar putea lua o altă postare întreagă pe blog, așa că nu voi intra în asta. De fapt, odată ce este configurat corect, vă va economisi o cantitate ridicolă de timp pentru dezvoltatori!
Apoi vin bazele de date, pe care le-am plasat în abilitățile recomandate. Dar veți avea nevoie de baze de date pentru aproape orice aplicație care implică un fel de persistență a datelor generate de utilizator.
Bazele de date sunt de obicei ușor de început, dar sunt mai greu de întreținut și modificat în mod corespunzător. Cel mai bun mod de a începe să lucrați la o stivă tehnică de back-end este să aveți totul împreună pe un singur server – codul aplicației dvs., serverele proxy invers, baza de date etc. Apoi, pe măsură ce deveniți mai competenți în fiecare lucru, puteți decuplați-l de logica comercială existentă.
Făcând acest lucru, activați o arhitectură care poate fi foarte scalată. O aplicație intensivă care funcționează în baza de date ar putea avea o soluție optimizată pentru bazele de date. Și un site cu trafic intens ar trebui să aibă un mecanism CDN bun pentru a descărca activele statice și așa mai departe.
Concluzie
Există atât de multe de învățat, dar totul este realizabil dacă nu renunți. Spuneți-mi ce părere aveți despre această postare prin intermediul meu stare de nervozitate și Instagram mânere. Va însemna foarte mult dacă ne conectăm acolo!
De asemenea, dacă sunteți interesat, verificați codedamn – o platformă axată pe dezvoltatori pentru tehnologii de învățare precum dezvoltarea backend-ului! Am postat chiar și un Video YT despre crearea propriului dvs. server de site web simplu în 2 minute! Verifică asta și anunță-mă ce crezi!
Pace!