¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cómo encajan las piezas de una web

Después de esta lección: Puedo dibujar cómo encajan las piezas de una aplicación web sencilla.

Lección de 50 minSin comandos

Diez mil pedidos un domingo

Un supermercado online recibe diez mil pedidos el domingo por la tarde. Cada cliente mira precios, llena el carrito y paga. Después le llega un correo y el almacén imprime su albarán.

Todo eso no lo hace un único programa. Lo hacen varias piezas, cada una con su tarea. Hoy aprendes a dibujarlas.

Al final de esta lección

Nota

Puedo dibujar cómo encajan las piezas de una aplicación web sencilla.

Palabras clave

PalabraQué significa
Clienteel programa que usa la persona: una app o un navegador
Servidorel ordenador que recibe peticiones y ejecuta el backend
Base de datosdonde se guardan los datos de forma permanente
Cachéuna copia rápida de datos que se leen mucho
Colauna lista de tareas que se harán después, por orden
Trabajadorun programa que va sacando tareas de la cola

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Tres piezas en casi todas las webs

Casi todas las aplicaciones web empiezan con tres piezas.

El cliente es lo que ve la persona: la app del móvil o la web en el navegador. El servidor recibe sus peticiones y decide qué hacer. La base de datos guarda pedidos, clientes y productos, aunque se apague el servidor.

El cliente nunca habla con la base de datos. Siempre pasa por el servidor.

La caché ahorra lecturas repetidas

Miles de clientes miran el precio de la leche cada hora. El precio cambia, como mucho, una vez al día.

Leerlo cada vez de la base de datos es lento y la carga mucho. La caché guarda una copia en memoria. La primera lectura va a la base de datos. Las siguientes salen de la copia.

Ejecuta el bloque y cuenta las lecturas lentas.

Practica: cuenta las lecturas

Código: python
# El catálogo de un supermercado online. Leer la base de datos es lento.
database = {"leche": 95, "pan": 120, "aceite": 899}
cache = {}
slow_reads = 0

def price_of(product):
    global slow_reads
    if product in cache:
        return cache[product]  # rápido: ya lo teníamos guardado
    slow_reads = slow_reads + 1
    price = database[product]
    cache[product] = price  # lo guardamos para la próxima vez
    return price

visits = ["leche", "pan", "leche", "leche", "aceite", "pan", "leche"]
for product in visits:
    price_of(product)

print("Consultas a la página:", len(visits))
print("Lecturas lentas a la base de datos:", slow_reads)

# Añade cinco veces más "leche" a la lista visits y ejecuta otra vez.
# ¿Cambia el número de lecturas lentas?

Un error frecuente

Advertencia

Mucha gente cree que la caché sirve para guardar los datos importantes. Es al revés: la caché es una copia que se puede perder. El dato bueno vive en la base de datos. Usa caché solo para lo que se lee mucho y cambia poco.

La cola guarda lo que puede esperar

Al pagar, el cliente quiere saber enseguida que su pedido está hecho. El correo de confirmación y el albarán del almacén pueden tardar unos segundos.

Por eso el servidor no los hace en ese momento. Los deja en una cola y contesta ya. Un trabajador saca las tareas de la cola, por orden, y las hace.

Si el servicio de correo falla un rato, las tareas esperan en la cola sin perderse.

Ejemplo: qué pieza hace cada cosa

Lo que pasaPiezaPor qué ahí
El cliente ve el precio del panCachése lee mucho y cambia poco
Se guarda el pedido pagadoBase de datosno se puede perder
Sale el correo de confirmaciónCola y trabajadorpuede esperar unos segundos
Se decide si el pago es válidoServidorno se fía del cliente

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.