SlideShare a Scribd company logo
1 of 121
Download to read offline
JavaScript
— Sviluppo di Servizi Web —
Augusto Ciuffoletti
Univ. di Pisa
17 febbraio 2021
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 1 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
JavaScript: l’idea di base
Il JavaScript ha la caratteristica peculiare di andare in esecuzione
nel browser
I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite
I possiamo pensare che utilizzi un ambiente di esecuzione virtuale
Questo comporta importanti conseguenze
I Non dipende dal sistema operativo ospite
I Ha a disposizione primitive di sistema standardizzate (nel browser)
I Ha a disposizione una interfaccia grafica standardizzata (dal
browser)
I Va in esecuzione in un ambiente protetto (accesso al filesystem
ospite limitato)
Nasce come linguaggio speciale, potente e poco strutturato, e
diventa dominante
Segue uno standard di riferimento, in modo da essere
interoperabile (ECMAScript)
Evolve in un linguaggio più strutturato, il TypeScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Una sandbox: giocare con JavaScript in modo
semplice
Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere
a disposizione una sandbox completa:
I un editor per scrivere il codice della app
I un server web che ospiti la nostra pagina
I un browser che accede al codice e visualizza il risultato
Esistono strumenti web che mettono a disposizione i tre
componenti attraverso il browser
Si chiamano Online IDE, ed esistono per ogni genere di
linguaggio di programmazione
Noi utilizziamo StackBlitz, che è specifico per JavaScript
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Usare la sandbox
Creiamo un account su https://stackblitz.com
Nella pagina di dashboard selezionare il tipo di progetto
JavaScript (Blank Project)
Quella che compare è la vista del progetto: a sinistra il progetto
con i suoi file, al centro l’editor per modificarli, a destra la pagina
risultante sul browser
La modifica è dinamica (disattivabile): appena modificate un file la
pagina web cambia di conseguenza
La finestra di sinistra può visualizzare, invece del progetto, una
interfaccia di ricerca, una per il deploy, una per le eventuali
estensioni, ed una per la configurazione della IDE.
I per passare dall’una all’altra usate il selettore a sinistra della
finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
Stackblitz (grafica)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 5 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Composizione del progetto JS
In questa fase del corso usiamo StackBlitz per fare semplici
esercizi in JavaScript
Il progetto base è composto da quattro file, e in questa fase non
ne aggiungeremo altri:
I Il file index.html che contiene solo un <div>, riempito dallo script
JavaScript
I Il file index.js, che contiene il JavaScript: viene eseguito
automaticamente, anche se non esplicitamente indicato
nell’index.html
F imposta una stringa nel <div> definito nella pagina html
F lavoreremo essezialmente su questo
I Un file package.json che definisce versione, nome ed altri
meta-dettagli della app
I Un file style.css che contiene lo stile della pagina
A suo tempo vedremo la composizione di un progetto TypeScript,
RxJS, e Angular
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Hallo world (hallo)
Per fare fare pratica di solito scriveremo codice nel file index.js
Per esempio, con il codice seguente nel file index.js;
// Import stylesheets
import ’./style.css’;
window.alert("Hallo world");
Il risultato è il solito popup
Per caricare gli esercizi senza perdere tempo a ricopiare:
I Creare un progetto StackBlitz
I Selezionare "Connect repository" poi "import an existing repository"
I Impostare il link, che costruite a partire dalla etichetta accanto al
titolo della trasparenza
I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita
dall’etichetta hallo
I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
Visualizzazione dei risultati (trealert)
Gli alert possone essere inseriti nel codice per arrestare
l’esecuzione e visualizzare un messaggio: scomodi, li useremo il
minimo
// Import stylesheets
import "./style.css";
// Write Javascript code!
const appDiv = document.getElementById("app");
appDiv.innerHTML = ‘<h1>Prova con gli alert</h1>‘;
window.alert("Primo");
window.alert("Secondo");
window.alert("Terzo");
Il comando JS alert visualizza il messaggio ed attende l’Ok per
procedere
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 8 / 19
Visualizzazione dei risultati (trealert)
Gli alert possone essere inseriti nel codice per arrestare
l’esecuzione e visualizzare un messaggio: scomodi, li useremo il
minimo
// Import stylesheets
import "./style.css";
// Write Javascript code!
const appDiv = document.getElementById("app");
appDiv.innerHTML = ‘<h1>Prova con gli alert</h1>‘;
window.alert("Primo");
window.alert("Secondo");
window.alert("Terzo");
Il comando JS alert visualizza il messaggio ed attende l’Ok per
procedere
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 8 / 19
Visualizzazione dei risultati (console)
Un modo pratico per visualizzare messaggi durante l’esecuzione
è tramite la console
// Import stylesheets
import ’./style.css’;
// Write Javascript code!
const appDiv = document.getElementById(’app’);
appDiv.innerHTML = ‘<h1>JS Starter</h1>‘;
console.log("Primo");
console.log("Secondo");
console.log("Terzo");
Il metodo log della console visualizza il messaggio sulla console
Per aprire la console premete il tasto sinistro sulla barra in basso
alla sezione del browser
I per chiuderere la console premete il tastino in alto a destra della
sua finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
Visualizzazione dei risultati (console)
Un modo pratico per visualizzare messaggi durante l’esecuzione
è tramite la console
// Import stylesheets
import ’./style.css’;
// Write Javascript code!
const appDiv = document.getElementById(’app’);
appDiv.innerHTML = ‘<h1>JS Starter</h1>‘;
console.log("Primo");
console.log("Secondo");
console.log("Terzo");
Il metodo log della console visualizza il messaggio sulla console
Per aprire la console premete il tasto sinistro sulla barra in basso
alla sezione del browser
I per chiuderere la console premete il tastino in alto a destra della
sua finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
Visualizzazione dei risultati (console)
Un modo pratico per visualizzare messaggi durante l’esecuzione
è tramite la console
// Import stylesheets
import ’./style.css’;
// Write Javascript code!
const appDiv = document.getElementById(’app’);
appDiv.innerHTML = ‘<h1>JS Starter</h1>‘;
console.log("Primo");
console.log("Secondo");
console.log("Terzo");
Il metodo log della console visualizza il messaggio sulla console
Per aprire la console premete il tasto sinistro sulla barra in basso
alla sezione del browser
I per chiuderere la console premete il tastino in alto a destra della
sua finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
Visualizzazione dei risultati (console)
Un modo pratico per visualizzare messaggi durante l’esecuzione
è tramite la console
// Import stylesheets
import ’./style.css’;
// Write Javascript code!
const appDiv = document.getElementById(’app’);
appDiv.innerHTML = ‘<h1>JS Starter</h1>‘;
console.log("Primo");
console.log("Secondo");
console.log("Terzo");
Il metodo log della console visualizza il messaggio sulla console
Per aprire la console premete il tasto sinistro sulla barra in basso
alla sezione del browser
I per chiuderere la console premete il tastino in alto a destra della
sua finestra
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
Visualizzazione dei risultati (innerhtml)
Il JavaScript può manipolare la visualizzazione sul browser
Per mostrare il risultato di un’elaborazione possiamo inserirlo in
un elemento HTML
Per fare riferimento all’elemento utilizziamo la funzione
getElementById
Per impostarne il contenuto accediamo al campo innerHTML
// Import stylesheets
import ’./style.css’;
document.getElementById("demo").innerHTML = "Primo<br>";
document.getElementById("demo").innerHTML += "Secondo<br>";
document.getElementById("demo").innerHTML += "<b>Terzo</b>";
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
Visualizzazione dei risultati (innerhtml)
Il JavaScript può manipolare la visualizzazione sul browser
Per mostrare il risultato di un’elaborazione possiamo inserirlo in
un elemento HTML
Per fare riferimento all’elemento utilizziamo la funzione
getElementById
Per impostarne il contenuto accediamo al campo innerHTML
// Import stylesheets
import ’./style.css’;
document.getElementById("demo").innerHTML = "Primo<br>";
document.getElementById("demo").innerHTML += "Secondo<br>";
document.getElementById("demo").innerHTML += "<b>Terzo</b>";
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
Visualizzazione dei risultati (innerhtml)
Il JavaScript può manipolare la visualizzazione sul browser
Per mostrare il risultato di un’elaborazione possiamo inserirlo in
un elemento HTML
Per fare riferimento all’elemento utilizziamo la funzione
getElementById
Per impostarne il contenuto accediamo al campo innerHTML
// Import stylesheets
import ’./style.css’;
document.getElementById("demo").innerHTML = "Primo<br>";
document.getElementById("demo").innerHTML += "Secondo<br>";
document.getElementById("demo").innerHTML += "<b>Terzo</b>";
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
Visualizzazione dei risultati (innerhtml)
Il JavaScript può manipolare la visualizzazione sul browser
Per mostrare il risultato di un’elaborazione possiamo inserirlo in
un elemento HTML
Per fare riferimento all’elemento utilizziamo la funzione
getElementById
Per impostarne il contenuto accediamo al campo innerHTML
// Import stylesheets
import ’./style.css’;
document.getElementById("demo").innerHTML = "Primo<br>";
document.getElementById("demo").innerHTML += "Secondo<br>";
document.getElementById("demo").innerHTML += "<b>Terzo</b>";
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
Laboratorio
Familiarizzate con la IDE dell’editor:
I come modificare il contenuto HTML
I come modificare l’identificatore di una div
I l’editor per JavaScript e HTML è diverso!
I esplorate la command palette orizzontale in alto
Create qualcosa
I Se avete un vecchio esercizio (semplice) provate a caricarlo e
vedere se funziona
I Altrimenti rispolverate i ricordi di HTML, JavaScript, CSS e
inventate qualcosa
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 11 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Controllo delle revisioni
Nello sviluppo è importante poter registrare versioni progressive
del codice
Esistono strumenti specifici per questo, ed uno molto popolare è
Git
Tramite Git è possibile
I verificare i cambiamenti tra versioni successive,
I tracciare l’introduzione di bug,
I ritornare a versioni precedenti
I sviluppare varianti del codice in modo indipendente
La storia del codice è contenuta in un repository locale
I E’ possibile registrare una nuova versione o analizzare differenze
Il repository locale può essere sincronizzato con uno remoto
I ad esempio condiviso tra più sviluppatori, o come backup
Esistono servizi Web specifici per questo
I ad esempio github, o bitbucket
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
Git e Github (grafica)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 13 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Gestire un repository Git con StackBlitz
StackBlitz integra alcuni semplici strumenti per gestire un
repo(sitory) Git
Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto
"Connect repository"
I l’icona accanto è il logo di Github
I per usare la funzionalità è necessario avere un account Github
(gratuito)
Premendo il tasto compare un dialog che consente di creare un
nuovo repo:
I una riga per definire un nome per repo (e l’opzione se renderlo
pubblico)
I un tasto per creare il repo ed eseguire il push (caricamento) del
progetto nel repo
Troverete il progetto nella vostra pagina GitHub
Alternativamente è possibile importare in StackBlitz un repo git
esistente
I Inserire la URL completa del repo
I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Laboratorio
Create un account gratuito su github.com
Tornate su StackBlitz e create un repository per uno degli esercizi
precedenti
Osservate i tasti descritti nella slide precedente
Modificando l’esercizio il tasto Commit si abilita automaticamente
I premendolo si sincronizza il repo locale con il contenuto della IDE
I e si registra una nuova revisione
Se volete modificare il progetto ma mantenere disponibile una
versione precedente
I sotto al nome del repository accedete ai branch del repo (ora solo il
master)
I premete e selezionate il triagolino
I ora potete creare un nuovo branch, o selezionare quale utilizzare
Vicino al nome del repository trovate due piccoli tasti: pull e
download
I premendo pull il repository git remoto si sincronizza con quello
locale (avanzamento)
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Deploy di un progetto software
L’operazione di deploy è complessa, e può rivelarsi fatale per un
progetto sviluppato male
I ad esempio utilizzando in modo disordinato e non documentato
librerie e strumenti specifici
I ciò che invece normalmente fa il programmatore bricoleur che
sviluppa senza precauzioni sulla propria macchina di lavoro
Per portare a termine il deploy è necessario preparare una nuova
macchina esposta al pubblico e mandare in esecuzione il
programma sviluppato, in modo affidabile
I cioè senza sorprese.
In molti casi la macchina su cui si fa il deploy non è configurabile a
piacere dallo sviluppatore
I ma condizionata dalle piattaforme standard offerte del fornitore del
servizio di hosting
Quindi lo sviluppo deve già seguire linee guida precise, altrimenti
va adattato per consentire il deploy
I cioè, il disastro
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
Il PaaS Firebase
Firebase è un servizio di hosting gestito da Google, specifico per
progetti Angular
I Quindi è la scelta giusta per noi
Firebase è una piattaforma che offre tutte le funzionalità
necessarie ad un servizio web professionale
I Autenticazione, monitoraggio, memoria e DB collegati, ecc.
Offre un piano gratuito che viene incontro a chi vuole imparare ad
usarlo
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
Il PaaS Firebase
Firebase è un servizio di hosting gestito da Google, specifico per
progetti Angular
I Quindi è la scelta giusta per noi
Firebase è una piattaforma che offre tutte le funzionalità
necessarie ad un servizio web professionale
I Autenticazione, monitoraggio, memoria e DB collegati, ecc.
Offre un piano gratuito che viene incontro a chi vuole imparare ad
usarlo
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
Il PaaS Firebase
Firebase è un servizio di hosting gestito da Google, specifico per
progetti Angular
I Quindi è la scelta giusta per noi
Firebase è una piattaforma che offre tutte le funzionalità
necessarie ad un servizio web professionale
I Autenticazione, monitoraggio, memoria e DB collegati, ecc.
Offre un piano gratuito che viene incontro a chi vuole imparare ad
usarlo
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
Il PaaS Firebase
Firebase è un servizio di hosting gestito da Google, specifico per
progetti Angular
I Quindi è la scelta giusta per noi
Firebase è una piattaforma che offre tutte le funzionalità
necessarie ad un servizio web professionale
I Autenticazione, monitoraggio, memoria e DB collegati, ecc.
Offre un piano gratuito che viene incontro a chi vuole imparare ad
usarlo
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
Il PaaS Firebase
Firebase è un servizio di hosting gestito da Google, specifico per
progetti Angular
I Quindi è la scelta giusta per noi
Firebase è una piattaforma che offre tutte le funzionalità
necessarie ad un servizio web professionale
I Autenticazione, monitoraggio, memoria e DB collegati, ecc.
Offre un piano gratuito che viene incontro a chi vuole imparare ad
usarlo
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
StackBlitz e deploy su Firebase
StackBlitz è particolarmente orientato a progetti Angular
I Avrete notato che tra le varie icone c’è anche Angular
I non Angular JS
StackBlitz offre la possibilità di fare deploy su Firebase in modo
molto semplice
La terza icona nel frame di sinistra serve a questo
Premendola vengono visualizzati i progetti disponibili
I selezionandone uno viene presentato un bottone per effettuare il
deploy
I al termine del deploy viene presentato un tasto per aprire la URL
del vostro servizio nel browser
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
Laboratorio
Registratevi su Firebase utilizzando le vostre credenziali di ateneo
(che sono credenziali Google)
I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando
poi il nome del progetto
I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e
comunque non ci serve
I La creazione del progetto richiede qualche decina di secondi
Ora tornate su StackBlitz e premete l’icona di Firebase
Selezionate il vostro nuovo progetto Firebase (se necessario
ricaricate) e poi premete Deploy
Potete vedere il vostro esercizio alla URL indicate, sul browser del
PC ma anche sul vostro smartphone!
Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19

More Related Content

Similar to 0 basic

Similar to 0 basic (20)

Javascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesignerJavascript - 1 | WebMaster & WebDesigner
Javascript - 1 | WebMaster & WebDesigner
 
Webdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 OkWebdays 2004 Blogfordummies2 Ok
Webdays 2004 Blogfordummies2 Ok
 
Html5
Html5Html5
Html5
 
Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19Introduzione al web (2/2) - 18/19
Introduzione al web (2/2) - 18/19
 
Linguaggi di programmazione
Linguaggi di programmazioneLinguaggi di programmazione
Linguaggi di programmazione
 
Evoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo MicrosoftEvoluzione degli strumenti di sviluppo Microsoft
Evoluzione degli strumenti di sviluppo Microsoft
 
Microsoft Fast - Overview
Microsoft Fast - OverviewMicrosoft Fast - Overview
Microsoft Fast - Overview
 
Il CMS Alfresco
Il CMS AlfrescoIl CMS Alfresco
Il CMS Alfresco
 
2-Intro-Java.pdf
2-Intro-Java.pdf2-Intro-Java.pdf
2-Intro-Java.pdf
 
Grasso Frameworks Ajax
Grasso Frameworks AjaxGrasso Frameworks Ajax
Grasso Frameworks Ajax
 
7. Applicazioni web e CMS
7. Applicazioni web e CMS7. Applicazioni web e CMS
7. Applicazioni web e CMS
 
Ddive Xpage852
Ddive Xpage852Ddive Xpage852
Ddive Xpage852
 
Il browser
Il browserIl browser
Il browser
 
Introduzione CMS Alfresco
Introduzione CMS AlfrescoIntroduzione CMS Alfresco
Introduzione CMS Alfresco
 
Sviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con JavaSviluppare su OpenOffice.org con Java
Sviluppare su OpenOffice.org con Java
 
Installazione del cms alfresco
Installazione del cms alfrescoInstallazione del cms alfresco
Installazione del cms alfresco
 
Rich Internet Application
Rich Internet ApplicationRich Internet Application
Rich Internet Application
 
8 - Il browser
8 - Il browser8 - Il browser
8 - Il browser
 
Standards WakeUp: XHTML, CSS, Accessibilità e Semantica
Standards WakeUp: XHTML, CSS, Accessibilità e SemanticaStandards WakeUp: XHTML, CSS, Accessibilità e Semantica
Standards WakeUp: XHTML, CSS, Accessibilità e Semantica
 
HTML5, il lato client della forza...
HTML5, il lato client della forza... HTML5, il lato client della forza...
HTML5, il lato client della forza...
 

More from Augusto Ciuffoletti

Grid Infrastructure Architecture A Modular Approach from CoreGRID
Grid Infrastructure Architecture A Modular Approach from CoreGRIDGrid Infrastructure Architecture A Modular Approach from CoreGRID
Grid Infrastructure Architecture A Modular Approach from CoreGRID
Augusto Ciuffoletti
 
Scalable concurrency control in a dynamic membership
Scalable concurrency control  in a dynamic membershipScalable concurrency control  in a dynamic membership
Scalable concurrency control in a dynamic membership
Augusto Ciuffoletti
 
Prototype Implementation of a Demand Driven Network Monitoring Architecture
Prototype Implementation of a Demand Driven Network Monitoring ArchitecturePrototype Implementation of a Demand Driven Network Monitoring Architecture
Prototype Implementation of a Demand Driven Network Monitoring Architecture
Augusto Ciuffoletti
 

More from Augusto Ciuffoletti (20)

An open-source testbed for IoT systems
An open-source testbed for IoT systemsAn open-source testbed for IoT systems
An open-source testbed for IoT systems
 
Thingspeak: integrazione
Thingspeak: integrazioneThingspeak: integrazione
Thingspeak: integrazione
 
Thingspeak: fondamenti
Thingspeak: fondamentiThingspeak: fondamenti
Thingspeak: fondamenti
 
Design and implementation of a low-cost modular sensor
Design and implementation of a low-cost modular sensorDesign and implementation of a low-cost modular sensor
Design and implementation of a low-cost modular sensor
 
ZHAW 2016 - OCCI for monitoring
ZHAW 2016 - OCCI for monitoringZHAW 2016 - OCCI for monitoring
ZHAW 2016 - OCCI for monitoring
 
Open Cloud Computing Interface
Open Cloud Computing InterfaceOpen Cloud Computing Interface
Open Cloud Computing Interface
 
Laboratorio Openstack
Laboratorio OpenstackLaboratorio Openstack
Laboratorio Openstack
 
Automated deployment of a microservice based monitoring architecture
Automated deployment of a microservice based monitoring architectureAutomated deployment of a microservice based monitoring architecture
Automated deployment of a microservice based monitoring architecture
 
OCCI Monitoring at OGF42 - Concepts and demo
OCCI Monitoring at OGF42 - Concepts and demoOCCI Monitoring at OGF42 - Concepts and demo
OCCI Monitoring at OGF42 - Concepts and demo
 
Extending the OCCI API with monitoring capabilities
Extending the OCCI API with monitoring capabilitiesExtending the OCCI API with monitoring capabilities
Extending the OCCI API with monitoring capabilities
 
2013 03 occi-monitoring
2013 03 occi-monitoring2013 03 occi-monitoring
2013 03 occi-monitoring
 
Monitoring a virtual network infrastructure - An IaaS perspective
Monitoring a virtual network infrastructure - An IaaS perspectiveMonitoring a virtual network infrastructure - An IaaS perspective
Monitoring a virtual network infrastructure - An IaaS perspective
 
Collision avoidance using a wandering token in the PTP protocol
Collision avoidance using a wandering token in the PTP protocolCollision avoidance using a wandering token in the PTP protocol
Collision avoidance using a wandering token in the PTP protocol
 
TIP: a course about IP convergence technology
TIP: a course about IP convergence technologyTIP: a course about IP convergence technology
TIP: a course about IP convergence technology
 
Design of a secure "Token Passing" protocol
Design of a secure "Token Passing" protocolDesign of a secure "Token Passing" protocol
Design of a secure "Token Passing" protocol
 
The wandering token
The wandering tokenThe wandering token
The wandering token
 
Network Monitoring in the age of the Cloud
Network Monitoring in the age of the CloudNetwork Monitoring in the age of the Cloud
Network Monitoring in the age of the Cloud
 
Grid Infrastructure Architecture A Modular Approach from CoreGRID
Grid Infrastructure Architecture A Modular Approach from CoreGRIDGrid Infrastructure Architecture A Modular Approach from CoreGRID
Grid Infrastructure Architecture A Modular Approach from CoreGRID
 
Scalable concurrency control in a dynamic membership
Scalable concurrency control  in a dynamic membershipScalable concurrency control  in a dynamic membership
Scalable concurrency control in a dynamic membership
 
Prototype Implementation of a Demand Driven Network Monitoring Architecture
Prototype Implementation of a Demand Driven Network Monitoring ArchitecturePrototype Implementation of a Demand Driven Network Monitoring Architecture
Prototype Implementation of a Demand Driven Network Monitoring Architecture
 

Recently uploaded

PLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdfPLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdf
palestiniaurora
 
allotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptxallotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptx
michelacaporale12345
 
presentazione di Storia di michela .pptx
presentazione di Storia di michela .pptxpresentazione di Storia di michela .pptx
presentazione di Storia di michela .pptx
michelacaporale12345
 
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
nicolofusco13
 
presentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptxpresentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptx
michelacaporale12345
 
presentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdfpresentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdf
michelacaporale12345
 

Recently uploaded (20)

PLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdfPLATONEpresentazionecaricatasu teams-pdf.pdf
PLATONEpresentazionecaricatasu teams-pdf.pdf
 
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptxPancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
Pancia Asia-La vita di Steve Jobs-Adriano Olivetti-Bill Gates.pptx
 
IL CHIAMATO ALLA CONVERSIONE, credo che Dio verrà a giudicare vivi e morti
IL CHIAMATO ALLA CONVERSIONE, credo che Dio verrà a giudicare vivi e mortiIL CHIAMATO ALLA CONVERSIONE, credo che Dio verrà a giudicare vivi e morti
IL CHIAMATO ALLA CONVERSIONE, credo che Dio verrà a giudicare vivi e morti
 
allotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptxallotropie del carbonio michela caporale .pptx
allotropie del carbonio michela caporale .pptx
 
presentazione di Storia di michela .pptx
presentazione di Storia di michela .pptxpresentazione di Storia di michela .pptx
presentazione di Storia di michela .pptx
 
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
Questa è una presentazione di Educazione Civica riguardo la libertà di inizia...
 
Gli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda presGli isotopi scienze naturale seconda pres
Gli isotopi scienze naturale seconda pres
 
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
Esame di Stato 2024 - Materiale conferenza online 09 aprile 2024
 
Educazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpointEducazione civica-Asia Pancia powerpoint
Educazione civica-Asia Pancia powerpoint
 
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptxPalestini Aurora-Steve Jobs,Olivetti e Gates.pptx
Palestini Aurora-Steve Jobs,Olivetti e Gates.pptx
 
PalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docxPalestiniAurora-la conoscenzatestoita.docx
PalestiniAurora-la conoscenzatestoita.docx
 
TeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docxTeccarelliLorenzo-i4stilidellapitturaromana.docx
TeccarelliLorenzo-i4stilidellapitturaromana.docx
 
presentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptxpresentazione varietà allotropiche del carbonio.pptx
presentazione varietà allotropiche del carbonio.pptx
 
magia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptxmagia, stregoneria, inquisizione e medicina.pptx
magia, stregoneria, inquisizione e medicina.pptx
 
Storia-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptxStoria-CarloMagno-TeccarelliLorenzo.pptx
Storia-CarloMagno-TeccarelliLorenzo.pptx
 
TeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdfTeccarelliLorenzo-Mitodella.cavernaa.pdf
TeccarelliLorenzo-Mitodella.cavernaa.pdf
 
a scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAPa scuola di biblioVerifica: come utilizzare il test TRAAP
a scuola di biblioVerifica: come utilizzare il test TRAAP
 
presentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdfpresentazione di michela di SteveJobs.pdf
presentazione di michela di SteveJobs.pdf
 
Piccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docxPiccole Personetestoitaliano-AuroraPalestini.docx
Piccole Personetestoitaliano-AuroraPalestini.docx
 
Pancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docxPancia Asia_relazione laboratorio(forza d'attrito).docx
Pancia Asia_relazione laboratorio(forza d'attrito).docx
 

0 basic

  • 1. JavaScript — Sviluppo di Servizi Web — Augusto Ciuffoletti Univ. di Pisa 17 febbraio 2021 Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 1 / 19
  • 2. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 3. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 4. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 5. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 6. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 7. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 8. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 9. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 10. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 11. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 12. JavaScript: l’idea di base Il JavaScript ha la caratteristica peculiare di andare in esecuzione nel browser I quindi non utilizza l’ambiente di esecuzione offerto dal PC ospite I possiamo pensare che utilizzi un ambiente di esecuzione virtuale Questo comporta importanti conseguenze I Non dipende dal sistema operativo ospite I Ha a disposizione primitive di sistema standardizzate (nel browser) I Ha a disposizione una interfaccia grafica standardizzata (dal browser) I Va in esecuzione in un ambiente protetto (accesso al filesystem ospite limitato) Nasce come linguaggio speciale, potente e poco strutturato, e diventa dominante Segue uno standard di riferimento, in modo da essere interoperabile (ECMAScript) Evolve in un linguaggio più strutturato, il TypeScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 2 / 19
  • 13. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 14. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 15. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 16. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 17. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 18. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 19. Una sandbox: giocare con JavaScript in modo semplice Il modo più efficace per fare esercizi di JavaScript (e oltre) è avere a disposizione una sandbox completa: I un editor per scrivere il codice della app I un server web che ospiti la nostra pagina I un browser che accede al codice e visualizza il risultato Esistono strumenti web che mettono a disposizione i tre componenti attraverso il browser Si chiamano Online IDE, ed esistono per ogni genere di linguaggio di programmazione Noi utilizziamo StackBlitz, che è specifico per JavaScript Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 3 / 19
  • 20. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 21. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 22. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 23. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 24. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 25. Usare la sandbox Creiamo un account su https://stackblitz.com Nella pagina di dashboard selezionare il tipo di progetto JavaScript (Blank Project) Quella che compare è la vista del progetto: a sinistra il progetto con i suoi file, al centro l’editor per modificarli, a destra la pagina risultante sul browser La modifica è dinamica (disattivabile): appena modificate un file la pagina web cambia di conseguenza La finestra di sinistra può visualizzare, invece del progetto, una interfaccia di ricerca, una per il deploy, una per le eventuali estensioni, ed una per la configurazione della IDE. I per passare dall’una all’altra usate il selettore a sinistra della finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 4 / 19
  • 26. Stackblitz (grafica) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 5 / 19
  • 27. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 28. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 29. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 30. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 31. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 32. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 33. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 34. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 35. Composizione del progetto JS In questa fase del corso usiamo StackBlitz per fare semplici esercizi in JavaScript Il progetto base è composto da quattro file, e in questa fase non ne aggiungeremo altri: I Il file index.html che contiene solo un <div>, riempito dallo script JavaScript I Il file index.js, che contiene il JavaScript: viene eseguito automaticamente, anche se non esplicitamente indicato nell’index.html F imposta una stringa nel <div> definito nella pagina html F lavoreremo essezialmente su questo I Un file package.json che definisce versione, nome ed altri meta-dettagli della app I Un file style.css che contiene lo stile della pagina A suo tempo vedremo la composizione di un progetto TypeScript, RxJS, e Angular Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 6 / 19
  • 36. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 37. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 38. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 39. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 40. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 41. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 42. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 43. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 44. Hallo world (hallo) Per fare fare pratica di solito scriveremo codice nel file index.js Per esempio, con il codice seguente nel file index.js; // Import stylesheets import ’./style.css’; window.alert("Hallo world"); Il risultato è il solito popup Per caricare gli esercizi senza perdere tempo a ricopiare: I Creare un progetto StackBlitz I Selezionare "Connect repository" poi "import an existing repository" I Impostare il link, che costruite a partire dalla etichetta accanto al titolo della trasparenza I Parte fissa https://github.com/AugustoCiuffoletti/ssw_ seguita dall’etichetta hallo I Evitate il cut-paste dalla trasparenza: il risultato è inaffidabile Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 7 / 19
  • 45. Visualizzazione dei risultati (trealert) Gli alert possone essere inseriti nel codice per arrestare l’esecuzione e visualizzare un messaggio: scomodi, li useremo il minimo // Import stylesheets import "./style.css"; // Write Javascript code! const appDiv = document.getElementById("app"); appDiv.innerHTML = ‘<h1>Prova con gli alert</h1>‘; window.alert("Primo"); window.alert("Secondo"); window.alert("Terzo"); Il comando JS alert visualizza il messaggio ed attende l’Ok per procedere Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 8 / 19
  • 46. Visualizzazione dei risultati (trealert) Gli alert possone essere inseriti nel codice per arrestare l’esecuzione e visualizzare un messaggio: scomodi, li useremo il minimo // Import stylesheets import "./style.css"; // Write Javascript code! const appDiv = document.getElementById("app"); appDiv.innerHTML = ‘<h1>Prova con gli alert</h1>‘; window.alert("Primo"); window.alert("Secondo"); window.alert("Terzo"); Il comando JS alert visualizza il messaggio ed attende l’Ok per procedere Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 8 / 19
  • 47. Visualizzazione dei risultati (console) Un modo pratico per visualizzare messaggi durante l’esecuzione è tramite la console // Import stylesheets import ’./style.css’; // Write Javascript code! const appDiv = document.getElementById(’app’); appDiv.innerHTML = ‘<h1>JS Starter</h1>‘; console.log("Primo"); console.log("Secondo"); console.log("Terzo"); Il metodo log della console visualizza il messaggio sulla console Per aprire la console premete il tasto sinistro sulla barra in basso alla sezione del browser I per chiuderere la console premete il tastino in alto a destra della sua finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
  • 48. Visualizzazione dei risultati (console) Un modo pratico per visualizzare messaggi durante l’esecuzione è tramite la console // Import stylesheets import ’./style.css’; // Write Javascript code! const appDiv = document.getElementById(’app’); appDiv.innerHTML = ‘<h1>JS Starter</h1>‘; console.log("Primo"); console.log("Secondo"); console.log("Terzo"); Il metodo log della console visualizza il messaggio sulla console Per aprire la console premete il tasto sinistro sulla barra in basso alla sezione del browser I per chiuderere la console premete il tastino in alto a destra della sua finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
  • 49. Visualizzazione dei risultati (console) Un modo pratico per visualizzare messaggi durante l’esecuzione è tramite la console // Import stylesheets import ’./style.css’; // Write Javascript code! const appDiv = document.getElementById(’app’); appDiv.innerHTML = ‘<h1>JS Starter</h1>‘; console.log("Primo"); console.log("Secondo"); console.log("Terzo"); Il metodo log della console visualizza il messaggio sulla console Per aprire la console premete il tasto sinistro sulla barra in basso alla sezione del browser I per chiuderere la console premete il tastino in alto a destra della sua finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
  • 50. Visualizzazione dei risultati (console) Un modo pratico per visualizzare messaggi durante l’esecuzione è tramite la console // Import stylesheets import ’./style.css’; // Write Javascript code! const appDiv = document.getElementById(’app’); appDiv.innerHTML = ‘<h1>JS Starter</h1>‘; console.log("Primo"); console.log("Secondo"); console.log("Terzo"); Il metodo log della console visualizza il messaggio sulla console Per aprire la console premete il tasto sinistro sulla barra in basso alla sezione del browser I per chiuderere la console premete il tastino in alto a destra della sua finestra Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 9 / 19
  • 51. Visualizzazione dei risultati (innerhtml) Il JavaScript può manipolare la visualizzazione sul browser Per mostrare il risultato di un’elaborazione possiamo inserirlo in un elemento HTML Per fare riferimento all’elemento utilizziamo la funzione getElementById Per impostarne il contenuto accediamo al campo innerHTML // Import stylesheets import ’./style.css’; document.getElementById("demo").innerHTML = "Primo<br>"; document.getElementById("demo").innerHTML += "Secondo<br>"; document.getElementById("demo").innerHTML += "<b>Terzo</b>"; Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
  • 52. Visualizzazione dei risultati (innerhtml) Il JavaScript può manipolare la visualizzazione sul browser Per mostrare il risultato di un’elaborazione possiamo inserirlo in un elemento HTML Per fare riferimento all’elemento utilizziamo la funzione getElementById Per impostarne il contenuto accediamo al campo innerHTML // Import stylesheets import ’./style.css’; document.getElementById("demo").innerHTML = "Primo<br>"; document.getElementById("demo").innerHTML += "Secondo<br>"; document.getElementById("demo").innerHTML += "<b>Terzo</b>"; Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
  • 53. Visualizzazione dei risultati (innerhtml) Il JavaScript può manipolare la visualizzazione sul browser Per mostrare il risultato di un’elaborazione possiamo inserirlo in un elemento HTML Per fare riferimento all’elemento utilizziamo la funzione getElementById Per impostarne il contenuto accediamo al campo innerHTML // Import stylesheets import ’./style.css’; document.getElementById("demo").innerHTML = "Primo<br>"; document.getElementById("demo").innerHTML += "Secondo<br>"; document.getElementById("demo").innerHTML += "<b>Terzo</b>"; Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
  • 54. Visualizzazione dei risultati (innerhtml) Il JavaScript può manipolare la visualizzazione sul browser Per mostrare il risultato di un’elaborazione possiamo inserirlo in un elemento HTML Per fare riferimento all’elemento utilizziamo la funzione getElementById Per impostarne il contenuto accediamo al campo innerHTML // Import stylesheets import ’./style.css’; document.getElementById("demo").innerHTML = "Primo<br>"; document.getElementById("demo").innerHTML += "Secondo<br>"; document.getElementById("demo").innerHTML += "<b>Terzo</b>"; Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 10 / 19
  • 55. Laboratorio Familiarizzate con la IDE dell’editor: I come modificare il contenuto HTML I come modificare l’identificatore di una div I l’editor per JavaScript e HTML è diverso! I esplorate la command palette orizzontale in alto Create qualcosa I Se avete un vecchio esercizio (semplice) provate a caricarlo e vedere se funziona I Altrimenti rispolverate i ricordi di HTML, JavaScript, CSS e inventate qualcosa Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 11 / 19
  • 56. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 57. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 58. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 59. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 60. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 61. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 62. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 63. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 64. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 65. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 66. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 67. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 68. Controllo delle revisioni Nello sviluppo è importante poter registrare versioni progressive del codice Esistono strumenti specifici per questo, ed uno molto popolare è Git Tramite Git è possibile I verificare i cambiamenti tra versioni successive, I tracciare l’introduzione di bug, I ritornare a versioni precedenti I sviluppare varianti del codice in modo indipendente La storia del codice è contenuta in un repository locale I E’ possibile registrare una nuova versione o analizzare differenze Il repository locale può essere sincronizzato con uno remoto I ad esempio condiviso tra più sviluppatori, o come backup Esistono servizi Web specifici per questo I ad esempio github, o bitbucket Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 12 / 19
  • 69. Git e Github (grafica) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 13 / 19
  • 70. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 71. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 72. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 73. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 74. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 75. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 76. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 77. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 78. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 79. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 80. Gestire un repository Git con StackBlitz StackBlitz integra alcuni semplici strumenti per gestire un repo(sitory) Git Nel frame di sinistra, sopra l’elenco dei file, trovate un tasto "Connect repository" I l’icona accanto è il logo di Github I per usare la funzionalità è necessario avere un account Github (gratuito) Premendo il tasto compare un dialog che consente di creare un nuovo repo: I una riga per definire un nome per repo (e l’opzione se renderlo pubblico) I un tasto per creare il repo ed eseguire il push (caricamento) del progetto nel repo Troverete il progetto nella vostra pagina GitHub Alternativamente è possibile importare in StackBlitz un repo git esistente I Inserire la URL completa del repo I attenzione, sovrascriverà ogni contenuto preesistente in StackBlitz Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 14 / 19
  • 81. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 82. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 83. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 84. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 85. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 86. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 87. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 88. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 89. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 90. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 91. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 92. Laboratorio Create un account gratuito su github.com Tornate su StackBlitz e create un repository per uno degli esercizi precedenti Osservate i tasti descritti nella slide precedente Modificando l’esercizio il tasto Commit si abilita automaticamente I premendolo si sincronizza il repo locale con il contenuto della IDE I e si registra una nuova revisione Se volete modificare il progetto ma mantenere disponibile una versione precedente I sotto al nome del repository accedete ai branch del repo (ora solo il master) I premete e selezionate il triagolino I ora potete creare un nuovo branch, o selezionare quale utilizzare Vicino al nome del repository trovate due piccoli tasti: pull e download I premendo pull il repository git remoto si sincronizza con quello locale (avanzamento) Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 15 / 19
  • 93. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 94. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 95. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 96. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 97. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 98. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 99. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 100. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 101. Deploy di un progetto software L’operazione di deploy è complessa, e può rivelarsi fatale per un progetto sviluppato male I ad esempio utilizzando in modo disordinato e non documentato librerie e strumenti specifici I ciò che invece normalmente fa il programmatore bricoleur che sviluppa senza precauzioni sulla propria macchina di lavoro Per portare a termine il deploy è necessario preparare una nuova macchina esposta al pubblico e mandare in esecuzione il programma sviluppato, in modo affidabile I cioè senza sorprese. In molti casi la macchina su cui si fa il deploy non è configurabile a piacere dallo sviluppatore I ma condizionata dalle piattaforme standard offerte del fornitore del servizio di hosting Quindi lo sviluppo deve già seguire linee guida precise, altrimenti va adattato per consentire il deploy I cioè, il disastro Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 16 / 19
  • 102. Il PaaS Firebase Firebase è un servizio di hosting gestito da Google, specifico per progetti Angular I Quindi è la scelta giusta per noi Firebase è una piattaforma che offre tutte le funzionalità necessarie ad un servizio web professionale I Autenticazione, monitoraggio, memoria e DB collegati, ecc. Offre un piano gratuito che viene incontro a chi vuole imparare ad usarlo Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
  • 103. Il PaaS Firebase Firebase è un servizio di hosting gestito da Google, specifico per progetti Angular I Quindi è la scelta giusta per noi Firebase è una piattaforma che offre tutte le funzionalità necessarie ad un servizio web professionale I Autenticazione, monitoraggio, memoria e DB collegati, ecc. Offre un piano gratuito che viene incontro a chi vuole imparare ad usarlo Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
  • 104. Il PaaS Firebase Firebase è un servizio di hosting gestito da Google, specifico per progetti Angular I Quindi è la scelta giusta per noi Firebase è una piattaforma che offre tutte le funzionalità necessarie ad un servizio web professionale I Autenticazione, monitoraggio, memoria e DB collegati, ecc. Offre un piano gratuito che viene incontro a chi vuole imparare ad usarlo Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
  • 105. Il PaaS Firebase Firebase è un servizio di hosting gestito da Google, specifico per progetti Angular I Quindi è la scelta giusta per noi Firebase è una piattaforma che offre tutte le funzionalità necessarie ad un servizio web professionale I Autenticazione, monitoraggio, memoria e DB collegati, ecc. Offre un piano gratuito che viene incontro a chi vuole imparare ad usarlo Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
  • 106. Il PaaS Firebase Firebase è un servizio di hosting gestito da Google, specifico per progetti Angular I Quindi è la scelta giusta per noi Firebase è una piattaforma che offre tutte le funzionalità necessarie ad un servizio web professionale I Autenticazione, monitoraggio, memoria e DB collegati, ecc. Offre un piano gratuito che viene incontro a chi vuole imparare ad usarlo Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 17 / 19
  • 107. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 108. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 109. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 110. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 111. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 112. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 113. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 114. StackBlitz e deploy su Firebase StackBlitz è particolarmente orientato a progetti Angular I Avrete notato che tra le varie icone c’è anche Angular I non Angular JS StackBlitz offre la possibilità di fare deploy su Firebase in modo molto semplice La terza icona nel frame di sinistra serve a questo Premendola vengono visualizzati i progetti disponibili I selezionandone uno viene presentato un bottone per effettuare il deploy I al termine del deploy viene presentato un tasto per aprire la URL del vostro servizio nel browser Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 18 / 19
  • 115. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 116. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 117. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 118. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 119. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 120. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19
  • 121. Laboratorio Registratevi su Firebase utilizzando le vostre credenziali di ateneo (che sono credenziali Google) I Nella schermata iniziale, Inizio e Aggiungi progetto, specificando poi il nome del progetto I L’abilitazione di Google Analytics è meglio evitarla per semplicità, e comunque non ci serve I La creazione del progetto richiede qualche decina di secondi Ora tornate su StackBlitz e premete l’icona di Firebase Selezionate il vostro nuovo progetto Firebase (se necessario ricaricate) e poi premete Deploy Potete vedere il vostro esercizio alla URL indicate, sul browser del PC ma anche sul vostro smartphone! Augusto Ciuffoletti (Univ. di Pisa) JavaScript 17 febbraio 2021 19 / 19