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 PHP: 8 – Programmazione a Oggetti (OOP) in PHP

8 – Programmazione a Oggetti (OOP) in PHP

Introduzione

La programmazione a oggetti (OOP) è un paradigma che consente di organizzare il codice in modo più modulare, riutilizzabile e leggibile. PHP supporta pienamente l’OOP a partire dalla versione 5, rendendolo uno strumento potente non solo per siti web semplici, ma anche per applicazioni complesse.

Concetti chiave:

  • Classe → un modello, una struttura che definisce proprietà e metodi.

  • Oggetto → un’istanza concreta di una classe.

  • Proprietà → variabili appartenenti alla classe.

  • Metodi → funzioni che appartengono alla classe.


Classi e Oggetti

Una classe può essere vista come il progetto di un edificio, mentre l’oggetto è l’edificio costruito secondo quel progetto.

  • Dichiarare una classe significa definire il comportamento e le caratteristiche.

  • Creare un oggetto significa avere una copia concreta che può essere utilizzata.

Esempio concettuale:

  • Classe: “Automobile” (ha proprietà come colore, marca, modello; e metodi come accendi(), frena()).

  • Oggetto: una Fiat Panda rossa (istanza reale della classe Automobile).


Proprietà e Metodi

  • Proprietà: rappresentano lo stato dell’oggetto.

    • Esempio: $colore, $marca, $prezzo.

  • Metodi: rappresentano le azioni che l’oggetto può compiere.

    • Esempio: accendi(), frena(), mostraDettagli().

Visibilità delle proprietà e metodi

  • public → accessibile ovunque.

  • private → accessibile solo all’interno della classe.

  • protected → accessibile dalla classe e dalle sue sottoclassi.


Costruttori e Distruttori

Quando si crea un oggetto, spesso è utile inizializzare automaticamente alcune proprietà: questo è il compito del costruttore (__construct).

  • Costruttore: metodo speciale che viene chiamato automaticamente alla creazione dell’oggetto.

  • Distruttore: metodo (__destruct) che viene chiamato quando un oggetto non è più utilizzato, ad esempio per liberare risorse.

Esempio concettuale:

  • Un oggetto Database può aprire la connessione al momento della creazione (costruttore) e chiuderla quando non serve più (distruttore).


Ereditarietà

Uno dei principi fondamentali dell’OOP è il riuso del codice.
L’ereditarietà consente a una classe di derivare da un’altra, ereditando proprietà e metodi.

  • Classe base: contiene attributi e comportamenti comuni.

  • Classe derivata: aggiunge o modifica comportamenti specifici.

Esempio concettuale:

  • Classe Utente → ha nome, email, metodo login().

  • Classe Admin (eredita da Utente) → ha in più i permessi di gestione, metodo cancellaUtente().


Esercizio: Simulazione di gestione utenti con classi

Obiettivo

Creare un sistema semplificato per gestire utenti e amministratori con PHP OOP.

Passaggi logici

  1. Definire la classe Utente con proprietà (nome, email) e metodo login().

  2. Aggiungere un costruttore per inizializzare i dati dell’utente.

  3. Definire la classe Admin che eredita da Utente e aggiunge il metodo cancellaUtente().

  4. Creare più oggetti (utenti e admin) e simulare alcune operazioni.

Estensione

  • Inserire la proprietà password con metodo verificaPassword().

  • Aggiungere un metodo che restituisce una stringa con i dettagli dell’utente.

  • Creare una piccola lista utenti e ciclare per mostrare i loro dati.


Conclusione

La programmazione a oggetti in PHP consente di organizzare il codice in modo elegante e scalabile. Con le classi si definisce la struttura, con gli oggetti si creano istanze reali. I costruttori e i distruttori gestiscono l’inizio e la fine del ciclo di vita, mentre l’ereditarietà permette di riutilizzare il codice e specializzarlo. L’esercizio proposto simula un caso reale, ossia la gestione degli utenti, che rappresenta la base di molti sistemi web (registrazioni, login, aree riservate).


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