STATICO + SITO DINAMICO “FACILE” + PROGRAMMA La storia delle web application Capiamo da dove viene questo termine e come siamo arrivati a lavorare come facciamo oggi SITO WEB STATICO + PROGRAMMA 1998 2006 2014
di templating • nessun pattern di sviluppo (es. MVC) • un programma eseguito ad ogni richiesta utente (molto dispendioso) • difficoltà a mettere “a fattor comune” parti di librerie
• il copia incolla regna • funzioni di base distribuite (es. chiusura connessione) • gestione dati a livello di statement (sql injection,etc..) • inclusioni globali che eseguono codice non necessario (es. create table)
meccanismo “client-server” • L’utilizzo di framework javascript a livello di DOM è molto limitante per le aspettative dell’utente di oggi • lo sviluppatore deve conoscere tutto lo stack (frontend\backend)
Definire l’architettura • Imparare a fare API “per bene” Come? • Imparando quali “pezzi” utilizzare a livello architetturale • Imparando come strutturare l’applicazione internamente
e sfruttare in base alle esigenze dell’applicativo RDBMS Quando usarlo? • Struttura fortemente relazionata • Necessità di calcoli aggregati e statistiche • Mancata competenza su NoSQL NOSQL Quando usarlo? • Bigdata • Necessità verticali (es. Elastic per ricerca) • Clustering
dei DB NOSQL • Semplice da usare • integrato con tutti i framework Quando usarlo? • condividere dati di sessione tra più server • cache applicativa (es. ci salvo la lista dei comuni all’avvio...) • grandi moli di dati in forma chiave:valore
sistema operativo e sostituisce il vecchio approccio a macchine virtuali. • Semplifica il processo di sviluppo • Si lavora con lo stesso ambiente di produzione anche in locale • Permette di scalare senza cambiare il codice (es. kubernetes) • Riduce la complessità sistemistica Quando usarlo? • per lo sviluppo, in tutti i casi in cui evita l’installazione di tool locali (es. mysql, apache etc..) • per la produzione, ovunque vi sia permesso, facendo attenzione a calibrare la soluzione in base alla complessità del problema
di identificare in maniera semplice l’utente • Semplice da usare • Disponibile come applicativi standalone (es. keycloak) • integrabile su tutti i framework • sicuro Quando usarlo? • condividere l’accesso tra più applicativi • necessità di essere autenticato da più backend API
introducendo fnuzionalità di base. • nasconde le api reali (sicurezza e indipendenza) • traccia le chiamate • applica limitazioni (es. massimo 10 richieste al secondo) • offre un portale per sviluppatori Quando usarlo? • Se le api sono utilizzate da terze parti • Se pensiamo, in futuro, di aprire le nostre API all’esterno • Se abbiamo necessità di limitare l’uso delle API
lettura dei dati e ha un modello 1:1 con la struttura dati • BLL (Business Logic Layer): Si occupa della logica di gestione dei dati. Il suo modello dati coincide con il dominio applicativo ed è svincolato dall’accesso ai dati • PL (Presentation Layer): Se abbiamo lavorato bene, è totalmente in carico al frontend
• Api Gateway: Api Gateway in un esempio pratico • Slack API:Slack Pusher: Push Slack Messages to Wordpress • NoSQL:NOSQL or NOT NOSQL? • Headless CMS: Inside Headless CMS • TDD+ MVC:Build an ASP.NET Wiki to Explain TDD • Docker: Simple tutorial to understand docker basics