Cos’è uno stack software?

E' l'insieme delle tecnologie che lavorano insieme per far funzionare un'applicazione o un sito web.

Ci sono stack della vecchia scuola, per lo più deprecati come LAMP, che si riferisce all'utilizzo di Linux per ospitare Apache HTTPS, MySQL e PHP per eseguire un sito web. Linux è ancora raccomandato, ma il resto non è più la migliore pratica per i nuovi siti (non avete scelta se state usando WordPress, anche se penso che WordPress sia quasi sempre una cattiva idea oggi).

Ci sono stack più recenti come MEAN e MERN: MongoDB, ExpressJS, React/Angular e Node.js. Entrambi rientrano nel nuovo approccio chiamato JAMstack, dove invece di usare un linguaggio come PHP per generare tutte le pagine di un sito ogni volta che vi si accede, si servono pagine statiche e le si lascia cambiare dinamicamente sul client.

Ma lo stack può anche includere molte altre tecnologie. MongoDB sta cadendo dal favore in generale, e più stack stanno usando PostgreSQL. Database grafici come Dgraph, o adattatori come Postrgraphile, rendono facile supportare GraphQL come parte del vostro stack. TypeScript è una scelta di best practice quando si usa Node.js.

E poi lo stack può includere il provider di cloud che state usando (AWS, Google Cloud, Azure, ecc.), l'infrastruttura-come-codice (Terraform, Amazon CDK, ecc.), [1] tecnologie aggiuntive come il caching (Redis, MemcacheDB), le code di messaggi (AWS SQS, RabbitMQ), o i framework di server (NestJS, Next.js, ecc.).

Quindi quando si parla di "stack", ci si riferisce all'elenco delle tecnologie di base che modellano l'architettura dell'app a cui si sta lavorando. Non tutte le librerie che stai usando, ma i capisaldi.

Note

[1] AWS Cloud Development Kit - Amazon Web Services