Capitol gratuit

Introducere in Backend Development

Backend-ul reprezinta partea invizibila a unei aplicatii web - logica de business, procesarea datelor, comunicarea cu bazele de date si gestionarea securit...

Ce este backend-ul?

Backend-ul reprezinta partea invizibila a unei aplicatii web - logica de business, procesarea datelor, comunicarea cu bazele de date si gestionarea securitatii. Daca frontend-ul este interfata pe care utilizatorul o vede, backend-ul este motorul care face totul sa functioneze.

Un backend modern proceseaza cereri HTTP, valideaza date, executa operatii pe baze de date, gestioneaza autentificarea si returneaza raspunsuri structurate (JSON, XML) catre clienti - fie ei browsere, aplicatii mobile sau alte servicii.

Arhitecturi backend

Monolith vs. Microservicii

Arhitectura monolitica pastreaza toata aplicatia intr-un singur codebase si proces. Este simpla de dezvoltat si deployat initial, dar devine greu de scalat si intretinut pe masura ce creste.

Arhitectura microservicii imparte aplicatia in servicii independente, fiecare responsabil de o functionalitate specifica. Ofera scalabilitate si flexibilitate, dar adauga complexitate in comunicare si deployment.

CriteriuMonolithMicroservicii
Complexitate initialaScazutaRidicata
ScalabilitateVerticalaOrizontala
DeploymentUn singur artefactServicii independente
TehnologiiStack unicPolyglot
EchipaOrice dimensiuneEchipe mici, autonome

Serverless si FaaS

Modelul serverless (Functions as a Service) permite rularea codului fara gestionarea serverelor. Platforme precum AWS Lambda, Google Cloud Functions sau Vercel Functions executa functii la cerere, cu plata per executie.

Cand alegem fiecare arhitectura?

Monolith - ideal pentru MVP-uri, proiecte mici/medii, echipe mici. Alegeti monolith-ul daca nu aveti nevoie de scalabilitate extrema.

Microservicii - ideal cand componentele au cerinte diferite de scalabilitate sau echipe separate lucreaza pe module distincte.

Serverless - ideal pentru functii izolate, procesare evenimente, API-uri cu trafic variabil.

Limbaje si framework-uri backend

LimbajFramework principalFolosit pentru
JavaScript/TypeScriptExpress, Fastify, NestJSAPI-uri REST/GraphQL, real-time
PythonDjango, FastAPI, FlaskAPI-uri, ML/AI, scripting
PHPLaravel, SymfonyCMS, e-commerce, web apps
GoGin, Fiber, EchoMicroservicii, sisteme performante
JavaSpring BootEnterprise, fintech, sisteme mari
RustActix Web, AxumSisteme critice, performanta maxima
💡 De ce Node.js in acest curs?

Am ales Node.js si Express.js pentru ca JavaScript este deja cunoscut din frontend, permitand full-stack development cu un singur limbaj. Node.js are cel mai mare ecosistem (npm) si o comunitate foarte activa.

Instrumente esentiale

Pentru dezvoltarea backend eficienta, aveti nevoie de urmatoarele instrumente:

  • Editor - VS Code cu extensii: REST Client, Thunder Client, ESLint, Prettier
  • Terminal - Git Bash, Windows Terminal, iTerm2 (macOS)
  • API Testing - Postman, Insomnia sau extensia Thunder Client
  • Baze de date - DBeaver, pgAdmin, MongoDB Compass, TablePlus
  • Containerizare - Docker Desktop, docker-compose
  • Version control - Git + GitHub/GitLab

Fluxul unei cereri web

Intelegerea fluxului complet al unei cereri HTTP este fundamentala:

  1. Client - browserul sau aplicatia trimite o cerere HTTP (ex: GET /api/products)
  2. DNS - domeniul este rezolvat la o adresa IP
  3. Load Balancer - distribuie cererea catre un server disponibil
  4. Web Server - Nginx/Apache primeste cererea si o transmite aplicatiei
  5. Aplicatie - Node.js/Express proceseaza cererea prin middleware-uri
  6. Baza de date - datele sunt citite/scrise dupa necesitate
  7. Raspuns - serverul returneaza un raspuns JSON cu status code corespunzator

Continuați cu restul cursului

Acesta este capitolul 1 din cele 20 ale cursului, cu 5 lecții din 82. Cumpărați cursul și parcurgeți tot conținutul în cont, cu progres salvat, test final și certificat.

Cumpărați cursul la 110 €