‫Istruttore: Quindi, dopo tutto
‫questo tempo e tutto questo lavoro per costruire questo enorme progetto
‫completo, è finalmente arrivato il momento di distribuirlo
‫davvero su un server web e condividerlo davvero con il mondo.
‫Quindi, in questo video,
‫imparerai come distribuire un progetto su Heroku.
‫E la prima cosa che dobbiamo
‫fare è installare Heroku sul nostro computer.
‫Quindi, cerchiamo solo Heroku NodeJS.
‫E quindi, qui, abbiamo fondamentalmente una
‫guida introduttiva per NodeJS con Heroku perché puoi
‫ospitare tutti i tipi di app su
‫Heroku come le applicazioni PHP o Ruby on Rails.
‫Quindi, non funziona solo per NodeJS.
‫E daremo un'occhiata più da vicino a Heroku tra
‫un secondo, ma per ora, iniziamo semplicemente installando
‫questo programma qui.
‫Quindi, sono nella parte di installazione di questa guida qui.
‫E quindi, ora, vai avanti e installa il
‫programma di installazione per la tua piattaforma, che
‫sia macOS, Windows o Linux.
‫O, in questo caso qui, immagino che funzioni solo per Ubuntu.
‫No, in realtà qui dice che è
‫disponibile anche per altri Linux.
‫Ad ogni modo, vai avanti e installa la
‫versione che ti serve
‫per il tuo computer e poi, nel frattempo, mentre
‫si installa, vai avanti e crea un nuovo account.
‫Quindi, fai clic qui su Iscriviti
‫e quindi apri il tuo account Heroku gratuito.
‫Quindi, ancora un altro account che devi creare.
‫Quindi, ci sono davvero molti account
‫diversi che devi creare per completare questo progetto, ma
‫immagino che sia proprio così che funziona lo sviluppo web moderno.
‫Ad ogni modo, dopo aver creato
‫il tuo account, diamo una rapida occhiata qui al
‫sito web di Heroku solo per avere una panoramica di cosa tratta questa piattaforma.
‫Quindi, Heroku è questa
‫piattaforma che rende davvero, davvero facile e senza
‫problemi distribuire le tue applicazioni web.
‫E, di nuovo, possono usare qualsiasi linguaggio tu
‫possa immaginare.
‫Come vedi, NodeJS, Ruby on Rails,
‫questo immagino sia Go, o in realtà
‫è Java, o PHP, Python, questo è Go, giusto?
‫E così, tutti i tipi di app funzionano davvero su Heroku.
‫Quindi, vediamo cosa dicono qui.
‫E questo è principalmente solo un discorso di marketing, immagino.
‫Quindi, niente di troppo interessante qui.
‫Ma, ovviamente, puoi dare un'occhiata qui a
‫tutti questi diversi manuali.
‫E, in realtà, è gratuito iniziare con Heroku
‫su un'applicazione davvero semplice.
‫Ma, ovviamente, una volta che inizi a salire di
‫livello, dovrai iniziare a pagare.
‫Ma, qui, la versione gratuita,
‫come puoi vedere, include tutte le funzionalità principali della piattaforma.
‫Puoi anche aggiungere domini personalizzati.
‫Ma l'unico problema è
‫che l'applicazione fondamentalmente dormirà, quindi, in pratica,
‫dopo 30 minuti
‫senza che nessuno acceda all'applicazione.
‫Ma, comunque, puoi dare
‫un'occhiata a tutto questo da solo.
‫Quindi, torniamo ora al nostro progetto qui.
‫E, per iniziare con il processo
‫di distribuzione, iniziamo accedendo a Heroku dalla nostra riga di comando.
‫E funzionerà grazie all'installazione che abbiamo appena
‫fatto.
‫Va bene, diamogli un po' più di spazio qui.
‫Puliscilo e ora scrivi il login heroku.
‫Quindi, se la tua installazione di Heroku ha avuto
‫successo, dopo aver digitato heroku login, dovresti vedere questo messaggio qui, premi
‫un tasto qualsiasi per aprire il browser.
‫Quindi, premi semplicemente un tasto qualsiasi, come
‫dice, tranne Q perché uscirà dall'app.
‫E così, questo ti aprirà una finestra in
‫cui puoi accedere.
‫E, dopodiché, proprio come per
‫magia, accederai a Heroku nella tua riga di comando.
‫Quindi, probabilmente dovrebbe volerci un po' e,
‫a volte, non funziona nemmeno al primo tentativo.
‫Quindi, in realtà mi è successo prima.
‫E quindi, premi semplicemente il controllo C.
‫E quindi, su un Mac, questo è davvero il controllo C, non il comando C.
‫E. Proviamo di nuovo.
‫Premi un tasto qualsiasi, torna al browser, accedi di nuovo.
‫Torna indietro di nuovo, e allora questo è fatto.
‫Quindi, vedi, ora ho effettuato l'accesso con il mio indirizzo email.
‫Quindi, ancora una volta, questa non era
‫la prima volta che non funzionava per me la prima volta.
‫E quindi, se
‫ti è successo, fallo esattamente come l'ho fatto io qui.
‫Ad ogni modo, ora, con questo,
‫abbiamo effettuato l'accesso a Heroku qui nella nostra
‫console e quindi dovremmo essere in grado di creare un nuovo progetto.
‫Ora, prima di farlo, dobbiamo effettivamente cambiare
‫qualcosa nel nostro pacchetto NPM. json file.
‫Quindi, questo.
‫E questo perché Heroku utilizza
‫effettivamente il nostro comando di avvio qui per avviare la nostra applicazione.
‫Ora, in produzione, non vogliamo usare nodemon qui.
‫Vogliamo semplicemente eseguire la
‫nostra applicazione utilizzando il comando node e non nodemon
‫perché in realtà è solo per lo sviluppo.
‫E quindi, cambiamolo e duplicherò questa linea e
‫poi la chiameremo dev.
‫E poi, quello iniziale sarà solo nodo.
‫Quindi, di nuovo, nel tuo pacchetto. json, dovresti sempre
‫avere questo script di avvio come questo.
‫Quindi, il comando node e quindi il tuo punto di ingresso.
‫Ora, è anche importante per
‫Heroku che tu specifichi questi motori qui.
‫E così, lo abbiamo fatto prima,
‫credo, perché alcuni pacchetti,
‫o in realtà perché ESLint lo richiedeva per funzionare correttamente.
‫Ma, se non l'avessimo impostato
‫allora, beh, allora avremmo bisogno di impostarlo davvero a questo punto.
‫Ora, dal momento che
‫abbiamo cambiato questo file, ora, dobbiamo salvare queste modifiche nel
‫nostro repository, quindi aggiungiamo git add package. json qui.
‫E poi, git commit.
‫E poi, con un utile messaggio di commit.
‫Ora, un'altra cosa che è davvero importante
‫quando distribuisci un'applicazione su Heroku è che ascolti il port
‫durante il processo. avv. PORTA.
‫Quindi, proprio qui nel server, in realtà lo facciamo qui.
‫Quindi, specifichiamo la variabile port come process. avv. PORTA.
‫E quindi, di nuovo, su Heroku, è assolutamente obbligatorio
‫perché altrimenti non funzionerà affatto.
‫Quindi, se qui, ad esempio,
‫abbiamo appena specificato una porta casuale, come 3000
‫qui, allora non
‫funzionerebbe davvero e questo
‫perché dietro le quinte, Heroku assegnerà effettivamente una porta
‫casuale a questa variabile d'ambiente.
‫Ma un po' di più su questo in
‫un secondo perché ora siamo
‫davvero pronti per l'implementazione vera e propria.
‫E, per farlo, creiamo un nuovissimo progetto Heroku nella
‫nostra cartella del progetto.
‫Quindi, assicurati di essere davvero nella tua cartella principale
‫e poi, una volta
‫che sei sicuro di essere lì e hai effettuato
‫l'accesso a Heroku, cosa che abbiamo fatto prima, puoi quindi scrivere heroku create.
‫E questo creerà quindi una nuova app fondamentalmente con
‫un nome completamente casuale.
‫Quindi, nel mio caso, sono radiant-springs e poi
‫questo numero, ma la tua
‫applicazione, ovviamente, avrà un nome completamente diverso.
‫Ora, ciò che ha
‫fatto è stato creare effettivamente un nuovo ramo
‫remoto nel nostro repository Git.
‫E questo ramo si chiama heroku.
‫Quindi, ricorda come prima, in una delle lezioni precedenti, abbiamo
‫aggiunto un ramo remoto che puntava a GitHub e
‫quel ramo era chiamato origine.
‫E così, abbiamo inviato il nostro codice a quel
‫ramo remoto usando git push origin master, quindi in questo modo.
‫Ricordati che?
‫E così, ora, come
‫ho detto, abbiamo un nuovo ramo remoto qui, che si chiama heroku.
‫E quindi, davvero, il processo di distribuzione della nostra applicazione
‫è semplice come inviare il nostro codice a quel ramo remoto.
‫Quindi, git push heroku master.
‫E, ha davvero bisogno di essere il ramo principale.
‫È l'unico ramo per cui funziona questa distribuzione.
‫Ma, nel nostro caso,
‫come vedi qui, siamo effettivamente nel
‫nostro ramo principale e puoi anche vederlo qui nell'angolo di VS Code.
‫E quindi, non c'è problema.
‫Quindi, eseguiamo ora questo
‫comando, che dovrebbe richiedere un paio
‫di tempo perché, ovviamente, caricherà tutti i tuoi
‫file che sono nel repository fino a Heroku.
‫E ora, vedete tutto questo processo in corso e quindi ciò che
‫sta facendo
‫è che in realtà sta installando tutte le nostre dipendenze
‫qui nella nostra nuova applicazione.
‫Quindi, nella nostra applicazione che è ora su Heroku.
‫Quindi, aspettiamo che tutto questo sia
‫finito e ci vediamo quando questo processo è finito.
‫E così, questo è fatto.
‫Quindi, spero che tu abbia ricevuto il messaggio, Verifica distribuzione in corso... fatto.
‫Quindi, vedete, l'avvio e quindi significa davvero che la nostra
‫applicazione è ora distribuita su Heroku
‫su questo URL.
‫Quindi, vedi che la build ha successo.
‫E, davvero, tutti questi messaggi di cui
‫ho già parlato prima.
‫E così, ora, per aprire la nostra
‫applicazione, tutto ciò che dobbiamo scrivere è heroku open.
‫Ora, non ci aspettiamo che funzioni ancora
‫perché tutte le nostre variabili d'ambiente
‫non sono
‫in realtà definite perché abbiamo escluso questo file di configurazione qui
‫dal nostro repository Git.
‫Ma, comunque, solo per il
‫gusto di farlo, proviamo ad aprire la nostra applicazione.
‫E così, in effetti, questo apre il nostro URL, in questo
‫caso, a radiant-springs-85848. herokuapp. com.
‫Quindi, fondamentalmente, è il sottodominio di Heroku.
‫E così, ancora una volta,
‫come previsto, abbiamo effettivamente riscontrato un errore qui.
‫E, ancora una volta, questo perché le nostre variabili d'ambiente,
‫a questo punto, non sono ancora definite.
‫Ora, possiamo anche dare un'occhiata a questi
‫errori nei log di Heroku.
‫Quindi, lascia che te lo mostri anche io.
‫Quindi, heroku registra --tail.
‫Quindi, qui, vedi lo stato cambiato da memorizzazione a crash,
‫quindi vediamo cosa abbiamo qui.
‫In realtà, vedi il messaggio di errore
‫che abbiamo creato noi stessi qui.
‫Quindi, ECCEZIONE NON CATTURATA con questa emoji
‫e poi Spegnimento...
‫E, come vedi
‫qui, non è possibile leggere la proprietà 'sostituire' di undefined.
‫E così, di nuovo, è perché le variabili d'ambiente
‫non sono definite a questo punto.
‫Quindi, usciamo di nuovo da questi registri qui, con il controllo C.
‫E quindi, ora, definiamo
‫effettivamente queste variabili d'ambiente per
‫far funzionare la nostra applicazione.
‫E il modo
‫in cui lo facciamo è specificare ogni variabile
‫d'ambiente usando uno speciale comando Heroku.
‫Quindi, Heroku e altre piattaforme di hosting, non usano
‫un file . env come abbiamo fatto qui
‫in fase di sviluppo per tutte le nostre variabili di configurazione.
‫Quindi, ancora una volta, qui in fase di sviluppo, usiamo questa configurazione. env per mettere le
‫nostre variabili d'ambiente.
‫Ma, qui in Heroku, li definiremo in
‫un modo diverso.
‫Ma, poi, nel nostro codice, tutto
‫ciò che abbiamo funziona esattamente allo stesso modo.
‫Quindi, iniziamo con la variabile
‫NODE_ENV che dobbiamo impostare su produzione.
‫E così, lo facciamo dicendo heroku config:set e
‫poi il nome della variabile, NODE_ENV=production.
‫E, in realtà, questa variabile NODE_ENV è
‫effettivamente impostata per impostazione predefinita su produzione da Heroku.
‫Ma, comunque, assicuriamoci al 100% che
‫rimanga davvero così,
‫anche se Heroku cambia qualcosa.
‫Quindi, davvero, per sicurezza, continuiamo a farlo
‫perché, come sappiamo, molto del nostro codice dipende effettivamente
‫da questa variabile e può anche
‫far funzionare le applicazioni Node fino a tre volte più velocemente.
‫Penso che ne abbiamo parlato prima.
‫Quindi, l'importanza di impostare NODE_ENV in produzione.
‫Ma, comunque, è una buona cosa farlo davvero.
‫Quindi, premi semplicemente Invio e
‫imposterà questa variabile di ambiente e
‫riavvierà l'applicazione.
‫E quindi, ora, tutto ciò che
‫dobbiamo fare è fondamentalmente
‫farlo per tutte le variabili d'ambiente rilevanti.
‫Quindi, abbiamo fatto NODE_ENV, ora, la porta, non la imposteremo
‫perché, come ho detto
‫prima, Heroku in realtà, dietro
‫le quinte, assegnerà una porta casuale alla nostra applicazione.
‫E quindi, il prossimo passo, aggiungiamo il database.
‫E, in realtà, copiamo tutto questo.
‫E poi, incollalo qui.
‫E questo non ha funzionato davvero,
‫quindi proviamoci con alcune virgolette qui forse.
‫Sì, sembra molto meglio.
‫Successivamente, la password del database.
‫Chiariamolo qui.
‫Avanti, il segreto.
‫Quindi, proprio così.
‫E quindi, è un po' noioso farlo per tutti loro, ma,
‫beh, dobbiamo farlo solo una volta,
‫quindi non è davvero un grosso problema.
‫Ora, abbiamo anche bisogno di questo qui
‫perché tutto questo qui è solo per mailtrap
‫e in realtà non ne abbiamo bisogno in produzione
‫perché ricorda che quando siamo in produzione, tutte
‫le nostre e-mail vengono effettivamente inviate utilizzando SENDGRID e
‫non più utilizzando mailtrap.
‫E così, nella nostra applicazione Heroku,
‫non abbiamo bisogno di questi per le variabili.
‫Ma abbiamo bisogno dell'e-mail da.
‫Quindi, questo è il nostro prossimo.
‫Quindi, abbiamo bisogno di SENDGRID_USERNAME
‫e della password.
‫E infine, la nostra chiave a strisce segreta.
‫E, con questo, penso
‫che tutte le nostre variabili rilevanti siano impostate qui.
‫E quindi, proviamo di nuovo, heroku aperto.
‫E sembra perfetto, bellissimo.
‫Quindi, davvero, la nostra applicazione è ora distribuita
‫su sorgenti radianti o qualunque cosa tu abbia nel tuo caso
‫e tutto sembra funzionare magnificamente.
‫Quindi, tutte le nostre immagini sono qui.
‫Diamo un'occhiata anche qui a una singola pagina.
‫E, in effetti, tutto ciò funziona magnificamente.
‫Quindi, appare anche la nostra mappa.
‫E, sì, sembra funzionare bene.
‫E il fatto che tutto questo funzioni così perfettamente mostra anche
‫la bellezza
‫di avere un database ospitato tutto il tempo
‫anche durante lo sviluppo perché
‫non importa se siamo in fase
‫di sviluppo o produzione, il nostro database continua a funzionare.
‫Quindi, se avessimo utilizzato un
‫database locale, ora dovremmo esportare tutti i
‫dati da quel database locale, quindi creare un database ospitato
‫e caricare tutti i dati su quel database ospitato.
‫E questo, ovviamente, creerebbe un passaggio in più e un
‫po' di lavoro in più.
‫E, di nuovo, con questo, funziona.
‫Quindi, questa è una bella esperienza per gli sviluppatori proprio lì.
‫Quindi, vediamo se possiamo anche accedere qui, cosa
‫che, ovviamente, dovrebbe essere possibile con
‫laura@esempio 2, 3, 4.
‫E, sembra così.
‫Così bello.
‫Vediamo se tutti i nostri tour prenotati sono ancora
‫qui, ma perché non dovrebbero?
‫E, in effetti, beh, in realtà è solo uno,
‫ma, in effetti, è qui.
‫Quindi, fantastico, è assolutamente fantastico.
‫E ora, diamo solo una
‫rapida occhiata alla nostra dashboard di Heroku.
‫Quindi, qui, apriamo Heroku.
‫Chiudi questi due.
‫E quindi, poiché abbiamo effettuato
‫l'accesso in precedenza qui, questo dovrebbe portarci automaticamente alla
‫dashboard e quella dashboard ti mostrerà, per impostazione
‫predefinita, tutte le applicazioni che hai attualmente distribuito.
‫E così, quella che abbiamo appena messo in
‫campo è questa sorgente radiante qui.
‫Quindi, apriamolo.
‫Quindi, qui, sul
‫lato destro, puoi vedere tutta l'attività.
‫Ad esempio, impostando tutte queste variabili di configurazione
‫che abbiamo appena fatto.
‫Hai le tue risorse e molte di queste sono interessanti solo se hai
‫un banco prova a pagamento.
‫E un dyno è in realtà solo il
‫termine che Heroku usa fondamentalmente per un contenitore in cui
‫viene eseguita la tua applicazione.
‫Quindi, abbiamo alcune metriche in cui possiamo
‫vedere chi sta accedendo all'app, ma, ancora una volta, funziona
‫solo se hai un
‫hobby o un banco prova professionista.
‫Ma ciò che conta davvero qui sono
‫le impostazioni e quindi
‫qui volevo mostrarti che possiamo rivelare le variabili di configurazione.
‫E così, invece di modificarli o
‫aggiungerli nella riga di comando, potremmo farlo anche qui.
‫Quindi, questi sono tutti quelli che abbiamo appena aggiunto nella
‫riga di comando.
‫Poi, un'altra cosa molto importante è quassù in More, possiamo effettivamente
‫vedere i nostri log.
‫Quindi, aspettiamo qui.
‫E così, Heroku ti dà tutti questi log davvero per
‫tutto ciò che accade nella tua applicazione.
‫Quindi, quando abbiamo aperto l'app nel browser,
‫ha richiesto tutti questi file, come puoi
‫vedere qui, ad esempio.
‫Quindi, davvero, tutto quello che
‫sta succedendo sarà proprio qui in questi registri.
‫E così, se la tua app si blocca o se succede qualcosa e praticamente tutto
‫ciò per cui abbiamo usato una console. log finirà per
‫essere mostrato qui in questi log.
‫E così, questi erano i log di Heroku di
‫cui ho parlato in una delle lezioni precedenti.
‫Ora, una cosa che possiamo
‫fare è cambiare effettivamente il nome della nostra applicazione.
‫Quindi, invece di chiamarlo con questo nome casuale,
‫possiamo dargli un nome più significativo.
‫Ora, potremmo farlo qui,
‫ma ciò rovinerebbe la nostra applicazione nel terminale sul
‫nostro computer locale.
‫E quindi, invece, quello che facciamo è
‫cambiare il nome direttamente qui.
‫Quindi, diciamo, heroku apps:rename, in questo modo, e poi
‫il nuovo nome per l'applicazione.
‫E lo chiamerò
‫natours, ma tu, ovviamente, non
‫sarai in grado di chiamarlo anche natours perché
‫quel sottodominio sarà già preso.
‫Quindi, puoi chiamarlo natours con il tuo nome o
‫con il tuo nome utente o con qualsiasi altra parola
‫che desideri.
‫Quindi, andrò avanti e ora lo chiamerò davvero natours.
‫Oh, ma vedo che qualcuno mi ha già preso quel nome,
‫quindi è un peccato.
‫Ma probabilmente è perché ho già usato il nome natours
‫in un progetto in un altro corso.
‫E così, qualcuno deve averlo preso.
‫Quindi, chiamiamolo natoursapp e, ovviamente, devo poi
‫scrivere tutto il resto.
‫Quindi, app heroku: rinomina e
‫poi natoursapp.
‫Quindi, si spera, nessuno ha preso questo.
‫E sembra che stia facendo
‫qualcosa, ma qualcuno ha già preso anche quello.
‫Beh, è davvero strano.
‫Quindi, immagino di avere molti studenti
‫là fuori che pubblicano le loro app su Heroku,
‫quindi seguirò semplicemente l'esempio che ho dato prima e aggiungerò
‫il mio nome qui.
‫Quindi, terzo tentativo con natours-jonas.
‫Quindi, sì, speriamo che la terza volta funzioni.
‫Quindi, aspettiamo qui.
‫E questo è tutto.
‫Quindi, proviamo heroku aperto.
‫Va bene, e ci siamo.
‫E ora, a questo
‫punto, la vecchia versione non funzionerà più.
‫Quindi, questo è andato, chiudiamolo.
‫Torniamo al Personale qui.
‫E quindi, sì, ci siamo.
‫Questo è natours-jonas.
‫Ottimo, quindi il nostro sito Web è ora ufficialmente in produzione.
‫Ora, un'altra cosa che voglio fare
‫qui è aggiornare effettivamente la variabile d'ambiente Postman
‫per la produzione, ricordi?
‫Quindi, andiamo avanti e copiamo questo qui.
‫E, inoltre, non come effettivamente
‫siamo automaticamente su https qui su Heroku.
‫Quindi, Heroku fa tutta la gestione dei certificati SSL
‫per noi dietro le quinte in modo che la nostra pagina sia
‫sempre sicura, sempre con https.
‫Quindi, questa è un'altra caratteristica davvero interessante di Heroku.
‫Quindi, ora, qui in
‫Postman, andiamo avanti e cambiamo questa produzione e l'URL.
‫Ovviamente questo era solo un segnaposto.
‫E, invece, quello che vogliamo ora è il nostro vero URL di produzione.
‫E non sono sicuro che sia corretto in
‫questo modo, ma aggiornalo e confrontalo con quello di sviluppo.
‫Ma, in effetti, lo è.
‫Quindi, deve finire con questa barra.
‫E così, anche quello che abbiamo appena fatto.
‫Quindi, aggiorniamo, chiudiamo e ora,
‫tutto ciò che dobbiamo fare qui è passare
‫dallo sviluppo a questo ambiente di produzione.
‫E così, ora, se, per esempio, provo a ottenere Ottieni tutti i
‫tour, che in realtà è quello che
‫avevamo aperto, allora vediamo se funziona.
‫Spegniamo tutto questo.
‫E, in effetti, lo fa, benissimo.
‫Vediamo se possiamo
‫effettivamente vedere l'URL completo da qualche parte qui.
‫Beh, in realtà non si vede.
‫Ma, comunque, non ha
‫molta importanza perché sappiamo ancora che ha funzionato davvero.
‫Quindi, ora abbiamo davvero ottenuto questi
‫dati qui dalla nostra API di produzione e possiamo facilmente dimostrarlo
‫perché la versione di sviluppo attualmente non
‫è nemmeno in esecuzione.
‫Quindi, se inviamo questo, otteniamo questo errore.
‫Quindi, ancora una volta, davvero, congratulazioni
‫per aver quasi terminato il progetto a questo punto.
‫È già sul server live
‫e puoi, a questo punto, condividere il
‫tuo progetto con il mondo e mostrare a tutti cosa
‫hai realizzato dopo tutto questo lavoro per costruire questo progetto.
‫Solo un'altra piccola cosa che volevo fare
‫qui, come ho detto nell'ultima lezione, è testare quella compressione.
‫Quindi, cerchiamo solo la compressione gzip di prova qui.
‫E poi, questo dovrebbe essere il primo risultato qui,
‫Gift of Speed.
‫Quindi, se inseriamo qui il nostro URL e poi controlliamo, vediamo.
‫E vediamo che GZIP è abilitato.
‫E quindi, questo è dovuto a quel pacchetto di
‫compressione che abbiamo usato nell'ultima lezione.
‫Quindi, in origine, la nostra pagina avrebbe 14K,
‫ma poi compressa, è 2K.
‫E, ovviamente, questo non fa una grande differenza
‫in questo caso, ma per una pagina molto più grande, ovviamente,
‫può davvero fare la differenza per i tuoi utenti.
‫Perfetto, ora, nei prossimi due video, ci sono solo
‫un paio di piccole
‫cose che dobbiamo ancora sistemare qui.
‫E così, lo
‫faremo comunque nelle prossime due o tre lezioni.
‫E così, dopo
‫questo, il progetto è davvero finito al 100%.