Context engineering

Immagine
  Negli ultimi mesi, chi lavora con i modelli linguistici ha iniziato a notare uno spostamento sottile ma significativo: il problema non è più cosa scrivere nel prompt , ma cosa mettere nel contesto . È la differenza tra dare un'istruzione ben formulata e costruire l'intero ambiente informativo in cui un modello deve operare — memoria, strumenti, cronologia, vincoli, stato del sistema. Si parla ormai apertamente di context engineering come disciplina distinta dal prompt engineering, e la distinzione non è solo terminologica. 🔹 1. Il prompt come istruzione, il contesto come ambiente Un prompt ben scritto ottimizza una singola interazione. Il contesto, invece, è tutto ciò che il modello "vede" prima di rispondere: documenti recuperati, risultati di strumenti, conversazioni pregresse, regole di sistema, persino la cronologia di errori già commessi in quella sessione. Con l'adozione crescente di agenti che lavorano su compiti lunghi — scrivere codice, orchestrare...

Corso di JavaScript & Programmazione Web: 8 – LocalStorage e persistenza

LocalStorage e persistenza dei dati


Obiettivi didattici:

  • Introdurre le API localStorage e sessionStorage per salvare dati lato client.

  • Mostrare come mantenere preferenze dell’utente, come il tema dark/light, tra diverse visite al sito.

  • Svolgere un esempio pratico di dark mode persistente.

1. Introduzione a localStorage e sessionStorage

JavaScript fornisce due principali sistemi di storage locale nel browser:

API Durata dati Scope Uso tipico
localStorage permanente (finché l’utente non cancella) stesso dominio preferenze utente, dati persistenti
sessionStorage durata sessione (chiusura tab) stesso tab dati temporanei, sessione utente

Proprietà principali:

  • Si lavora sempre con coppie chiave/valore (key/value) in formato stringa.

  • Metodi principali:

localStorage.setItem('chiave', 'valore');   // salva un dato
localStorage.getItem('chiave');             // legge un dato
localStorage.removeItem('chiave');          // elimina un dato
localStorage.clear();                        // cancella tutto

Per sessionStorage si usa la stessa sintassi.

2. Salvare dati dell’utente

Esempio: memorizzare la preferenza tema (light/dark) del visitatore.

Logica:

  1. L’utente seleziona il tema.

  2. Lo script salva la scelta in localStorage.

  3. Alla visita successiva, lo script legge il valore e applica il tema automaticamente.

3. Esempio pratico: Dark Mode persistente

HTML base:

<!DOCTYPE html>
<html lang="it">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Dark Mode Persistente</title>
<style>
  body.light { background-color: white; color: black; }
  body.dark  { background-color: #121212; color: white; }
  button { margin: 20px; padding: 10px; }
</style>
</head>
<body>
  <h1>Dark Mode Persistente</h1>
  <button id="toggleTheme">Cambia Tema</button>

  <script src="script.js"></script>
</body>
</html>

JavaScript (script.js):

// Recupera il tema salvato, se esiste
let savedTheme = localStorage.getItem('theme') || 'light';
document.body.className = savedTheme;

// Funzione per cambiare tema
function toggleTheme() {
  if(document.body.className === 'light') {
    document.body.className = 'dark';
    localStorage.setItem('theme', 'dark');
  } else {
    document.body.className = 'light';
    localStorage.setItem('theme', 'light');
  }
}

// Event listener sul pulsante
document.getElementById('toggleTheme').addEventListener('click', toggleTheme);

Cosa succede:

  • Alla prima visita il tema di default è light.

  • L’utente clicca su “Cambia Tema”, la classe del body cambia e il nuovo tema viene salvato in localStorage.

  • Alla visita successiva, lo script legge il tema salvato e lo applica automaticamente.

4. Approfondimenti

  • localStorage salva solo stringhe. Per oggetti complessi si può usare JSON:

let settings = { theme: 'dark', fontSize: '16px' };
localStorage.setItem('settings', JSON.stringify(settings));

let loadedSettings = JSON.parse(localStorage.getItem('settings'));
console.log(loadedSettings.theme); // "dark"
  • Differenza con cookies: localStorage è più semplice e non viene inviato al server ad ogni richiesta.

5. Esercizio guidato

Obiettivo: creare un sito con scelta del tema che rimane salvata tra le visite.

Passaggi:

  1. Creare HTML con pulsante toggle.

  2. Definire due classi CSS light e dark.

  3. Leggere da localStorage il tema salvato e applicarlo al body.

  4. Al click sul pulsante, cambiare tema e salvare la nuova scelta.

Suggerimento avanzato: aggiungere anche la dimensione del font e salvare entrambi i dati in un oggetto JSON nel localStorage.

6. Test rapido

  1. Differenza tra localStorage e sessionStorage?
    Risposta: localStorage dura finché l’utente non cancella; sessionStorage dura solo fino a chiusura del tab.

  2. Come si legge un dato da localStorage?
    Risposta: localStorage.getItem('chiave')

  3. Come salvare un oggetto complesso?
    Risposta: Serializzare con JSON.stringify(obj) e leggere con JSON.parse(...)

  4. Perché localStorage è utile per dark mode?
    Risposta: Permette di ricordare la scelta dell’utente tra visite senza server.


Commenti

Post popolari in questo blog

Corso di Programmazione Strutturata e OOP: 3 Ereditarietà incapsulamento polimorfismo

Corso di CSS & Web Design: 3 – Box Model e spaziature

Corso di CSS & Web Design: 7 – Responsive Design