3.1

Què és un Framework Web?

Un framework és un conjunt de biblioteques, eines i regles de disseny ja preparades que ens faciliten la creació d'una aplicació.

Per què fer-los servir?

  • Eviten el "codi espaguetti" (desendreçat i impossible de mantenir)
  • Estructura estàndard: un nou treballador entén l'arquitectura el primer dia
  • Ja incorporen mecanismes contra atacs: injeccions SQL, CSRF, etc.
📈

Inconvenient

Tenen una corba d'aprenentatge. Requereixen temps d'estudi abans de ser productiu.

Comparativa de Frameworks populars

Llenguatge
Framework
Descripció
🐍 Python
Django
Molt complet, madur, ideal per projectes mitjans/grans. L'utilitzarem en aquest curs pel seu excel·lent ecosistema de testing.
🐍 Python
Flask
Microframework molt lleuger, ideal per a coses ràpides o APIs simples.
🐘 PHP
Laravel
El rei actual del PHP modern. Molt elegant i productiu.
⚡ JavaScript
Express
S'executa amb NodeJS. Va ser pioner en portar JS al servidor.
☕ Java
Spring
Compilat, fortament tipat. Molt usat en grans corporacions.
💎 Ruby
Ruby on Rails
Un referent històric. Va popularitzar el concepte de "Convention over Configuration".
3.2

L'ecosistema Python: Aïllament i Dependències

Quan programem, utilitzem codi d'altra gent (biblioteques). Instal·lar aquestes biblioteques directament al sistema operatiu (instal·lació global) és un greu error.

☠️
Dependency Hell: Diferents projectes poden necessitar versions incompatibles de la mateixa llibreria. Instal·lar-ho tot junt al sistema pot fins i tot trencar aplicacions del propi Sistema Operatiu.

La solució: Entorns Virtuals i Gestors de Paquets

venv
🫧

Entorns Virtuals

Eina integrada a Python. Crea "bombolles" aïllades per a cada projecte. El projecte A tindrà el seu propi Python i les seves pròpies biblioteques, separades del projecte B.

python -m venv env
pip
📦

Gestor de Paquets

Automatitza la descàrrega i instal·lació de biblioteques des dels repositoris oficials d'internet (PyPI).

pip install django==4.2
requirements
📋

requirements.txt

Llista en text pla de totes les biblioteques i les seves versions exactes. Permet que qualsevol company pugui reproduir l'entorn.

pip install -r requirements.txt
💡
Equivalent a NodeJS: El fitxer requirements.txt de Python és equivalent al package.json de Node.js. La carpeta node_modules/ és equivalent a env/. Ambdues carpetes s'han d'ignorar al .gitignore!

🗂️ Resum Ràpid — Mòdul 3

Framework Estructura + eines + regles. Evita codi espaguetti i inclou seguretat.
Django Framework Python complet. L'usarem en el curs pel seu testing excel·lent.
Dependency Hell Conflicte entre versions. Solució: entorns virtuals aïllats amb venv.
venv Crea una "bombolla" Python aïllada per projecte. python -m venv env
pip Instal·la biblioteques. pip install django==4.2
requirements.txt Llista de dependències exactes. Equivalent al package.json de Node.