[MUSIC]
Prima di iniziare ad esaminare Angular in modo più dettagliato, poniamoci
la domanda fondamentale, perché abbiamo bisogno di questi framework JavaScript?
Cosa sono esattamente e cosa ci aiutano a
realizzare che non possiamo fare usando JavaScript standard?
Esaminiamo alcune di queste domande in dettaglio in questa lezione.
Innanzitutto, perché framework JavaScript?
Ovviamente, dalla tua precedente esperienza con JavaScript e
forse anche dall'esperienza con framework basati sull'interfaccia utente web come Bootstrap e
l'uso di jQuery, hai più o meno capito che puoi
ottenere la maggior parte delle cose che vuoi fare su un sito web realizzato,
usando tutti questi strumenti e tecniche che hai già a portata di mano.
Infatti, molti siti web di successo possono essere implementati utilizzando
queste semplici tecniche e strumenti.
Ma man mano che la complessità dell'applicazione cresce,
la quantità di manipolazione DOM che deve essere eseguita e la quantità di
aggiornamenti dei dati che devono essere gestiti manualmente diventa significativamente complicata.
Gli approcci semplici come l'utilizzo della libreria jQuery potrebbero
non soddisfare sufficientemente le esigenze che hai a portata di mano.
Questo è dove la disponibilità di framework ben strutturati
come Angular che si basano su standard,
paradigmi di ingegneria del software o modelli di ingegneria software come il
controller della vista del modello o il modello di vista del modello o la vista del modello qualsiasi cosa, ci aiuta a
implementare questi web applicazioni in modo efficace e scalabile.
Ora, in questo contesto, stiamo andando a parlare di questo in modo un po 'più dettagliato
mentre andiamo avanti in questo corso.
Parleremo anche di come legiamo il modello a una vista e
l'uso dei controller e dei modelli di visualizzazione per realizzare queste cose.
Sarà discusso in un po 'più in dettaglio mentre esaminiamo Angular in questo corso.
Permettetemi di ricordarvi rapidamente cos'è una libreria software,
una libreria software è una raccolta di implementazioni di
comportamenti che si utilizzano ripetutamente all'interno delle applicazioni.
Quindi questi comportamenti possono essere implementati utilizzando funzioni con
interfacce ben definite
in modo che utilizzarli nell'implementazione dell'applicazione diventa semplice.
Se hai fatto la programmazione in qualsiasi lingua,
vedresti spesso che molte delle funzionalità standard supportate
in questi linguaggi sono implementate tramite librerie che fai uso di.
Ad esempio, le librerie di output di input e forse anche
le librerie GUI supportate da molti linguaggi di programmazione standard.
Questo è dove il concetto di riutilizzo del comportamento è molto,
molto efficace perché siamo in grado di implementarlo una volta in una libreria e
quindi riutilizzare quel comportamento ovunque abbiamo bisogno all'interno della nostra applicazione software.
Questo porta anche modularità al modo in cui la nostra applicazione è implementata.
Un buon esempio di una libreria software utilizzata nel mondo web è jQuery.
Se avessi seguito il precedente corso Bootstrap,
avresti visto alcuni elementi di jQuery in quel corso.
In questo contesto,
permettetemi di differenziare anche una libreria software da un framework software.
Un framework software è un'astrazione
in cui il software fornisce tali funzionalità generiche e
quindi fornisce la possibilità di personalizzare tale funzionalità per
implementare le soluzioni per l'applicazione specifica.
Quindi aumenterai il framework software con il tuo
codice per realizzare qualsiasi cosa tu stia cercando di realizzare.
Quindi questo è un modo diverso di pensare a come si
tenta di risolvere il problema piuttosto che utilizzare una libreria software.
Ora, questo framework software fornisce un ambiente universale e riutilizzabile
con determinate funzionalità che fa parte di una piattaforma software più grande.
Vedremo Angular come esempio di come questo è realizzato in modo più dettagliato.
Ci sono molti altri framework software che vengono utilizzati nel mondo web
tra cui Ember, Backbone, e molti altri.
Ora qui, si potrebbe ovviamente pensare alla domanda.
Come si distingue una libreria da un framework?
Quali sono le caratteristiche salienti di ciascuno e
perché dovresti classificarne una come libreria e un'altra come framework?
Dove si fa la distinzione tra i due?
Ora questo dovrei dire,
c'è una linea sottile che separa una libreria da un framework.
A seconda di come ci si avvicina a questo, è possibile visualizzare
l'uno o l'altro come una libreria o un framework e,
a seconda di chi si chiede, alcune persone possono classificare
un particolare approccio come approccio libreria anziché un approccio framework.
Ancora una volta, non dividiamo i capelli sul tentativo di
classificare esattamente le cose in una libreria o in un framework.
Dal nostro punto di vista, se qualcosa ci aiuta a svolgere il nostro compito,
allora siamo soddisfatti di questo approccio.
Ancora una volta, detto questo, distinguiamo tra una libreria e
un framework in modo un po 'più dettagliato.
Per capire come ti avvicini a
quell'intero modo di scrivere la tua applicazione.
Quando si utilizza una libreria anziché utilizzare un framework.
Quindi, in questo contesto la seguente definizione che ho preso in prestito
dalla documentazione AngularJS sorta di, ritengo
dia una distinzione un po 'più chiara tra una libreria e un framework.
Quindi, questa definizione dice che una libreria è una raccolta di funzioni
che sono utili per scrivere applicazioni web, jQuery è un esempio.
Quindi questo è un insieme di funzioni che sono disponibili per te.
Si fa uso di queste funzioni quando si implementa la
soluzione software al problema.
Quando usi questo approccio, sei tu il programmatore che controlla sempre
come utilizzi le funzioni fornite
dalla libreria per realizzare qualsiasi cosa tu stia cercando di fare.
Un framework d'altra parte è un'implementazione specifica o un'
implementazione particolare di un'applicazione web,
in cui il framework stesso fornisce un'ampia struttura generica per
la tua applicazione e quindi ti viene chiesto di compilare i dettagli.
I dettagli necessari per personalizzare l'applicazione
per risolvere il problema specifico che si sta tentando di risolvere.
Quindi qui, il framework assume il controllo completo su come queste applicazioni vengono eseguite e
quindi chiamerà il codice fornito dall'utente che lo aiuta a svolgere il lavoro.
Il codice specifico dell'app è qualcosa che scriverai
e lo fornirai e che diventerà parte dell'intera applicazione,
insieme al framework, e aiuta a realizzare il tuo compito.
Ancora una volta, questo potrebbe non consentire completamente, chiaramente di
comprendere la distinzione tra un framework e una libreria.
Ancora una volta, come ho detto,
non diffondiamo i capelli cercando di capire tutti questi dettagli.
Quello che dobbiamo capire è Angular è un esempio di un framework e
quando scrivi applicazioni in Angular, il framework prende il controllo e
fondamentalmente fornisci i pezzi mancanti del codice che sono necessari
per personalizzare il framework per implementare la tua specifica applicazione web.
Esaminando la parola framework in un po 'più in dettaglio.
Quando parliamo di un quadro, uno degli aspetti importanti su come
funziona un framework è riassunto da questo termine chiamato come il Principio di Hollywood.
Cosa intendo esattamente con il Principio di Hollywood?
Ora, se sai come funziona un agente di Hollywood, quando un attore o
un'attrice vogliono trovare lavoro a Hollywood,
si avvicinano a un agente e l'agente di solito te lo dirà,
ti richiameremo quando avremo un lavoro per te.
Non chiamarci, ti richiameremo.
Quindi, essenzialmente un quadro riflette lo stesso tipo di principio.
Il framework dice, fornisci tutto ciò che puoi fare e
il framework chiamerà il tuo codice fornito ogni volta che ha bisogno di fare qualcosa.
Questo è il motivo per cui usiamo questo termine Hollywood Principio nel mondo del software.
Questo può anche essere riassunto utilizzando questa altra
espressione chiamata Inversion of Control.
Quando si utilizza una libreria, il programmatore è in controllo e
si dettano come funziona il codice e come viene eseguito il codice.
Quando si utilizza un framework,
si sta essenzialmente cedendo il proprio privilegio al framework e
consente a tale framework di prendere in carico e quindi di dettare come viene eseguita l'applicazione.
Ora, mentre lei può sembrare che questo sia come rinunciare alla sua indipendenza,
certamente non è il caso, se il quadro ha una certa ragione per
assumersi la responsabilità di compiere tutto ciò che deve fare per suo conto.
Quindi questo è un posto dove dovremmo fare una distinzione tra
due approcci alla scrittura di programmi.
Uno chiamato come il modo imperativo di scrivere programmi, e
il secondo chiamato come un modo dichiarativo di scrivere programmi.
Se avete fatto un corso di linguaggi di programmazione,
avrete visto che i linguaggi di programmazione sono di solito utilizzando uno o
l'altro approccio che questo supporto nella scrittura di programmi.
Nella programmazione imperativa,
si sta andando a specificare il di funzioni di programma in un modo passo dopo passo.
Quindi sei completamente e controllo e
poi stai essenzialmente dicendo, questo è il modo in cui devi realizzare il compito e
poi scriverai passo dopo passo modo di realizzare il compito.
Quindi tu come programmatore hai completamente il controllo nello specificare i passaggi esatti
per risolvere il problema.
Nella programmazione dichiarativa d'altra parte,
che viene efficacemente utilizzata da framework come Angular.
Stai essenzialmente dicendo che questo è ciò che voglio ottenere realizzato, ed
è così che ho personalizzato ciò che specificamente voglio ottenere realizzato.
Il modo in cui viene fatto non mi preoccupa.
Ma consegnerò questa responsabilità al quadro.
Quindi, essenzialmente, stai fornendo il tuo codice di fornitura utente al framework e
dicendo, ora questo è quello che voglio che tu faccia, prendi il comando e fai in modo che questo accada.
Quindi in questo modo nella programmazione dichiarativa, stai solo dichiarando qual è la tua
intenzione e lasci che il framework decida come ciò verrà realizzato.
Due diversi modi di pensare a come ti avvicini a risolvere il tuo problema.
Questo è qualcosa che devi avere la testa quando impari
Angular perché se vieni dal mondo della programmazione imperativo,
la tua tendenza generale sarebbe quella di controllare tutto e
dettare passo dopo passo come vuoi realizzare.
Quindi ci vuole un po 'di tempo per avvolgere la testa intorno a questo concetto che
non controlli necessariamente ogni passo.
Invece, dici al quadro quello che vuoi diventare, da realizzare.
E dare la responsabilità al quadro di svolgere
il compito per vostro conto.
Ancora una volta, non preoccupatevi troppo, e non leggere troppo in queste definizioni.
Questi sono da un interesse accademico, questi sono la base per identificare diversi
modelli di comportamenti dal punto di vista di uno sviluppatore di applicazioni web.
Tutto ciò che ti interessa è come ottieni il tuo
lavoro usando Angular come framework dell'applicazione web.
Venendo al mondo dei framework JavaScript,
sentirai molti termini utilizzati con framework JavaScript.
Sentirete spesso le persone parlare di qualcosa chiamato
applicazione singola PPage o un termine alleato chiamato applicazione Internet ricca.
Ancora una volta, esamineremo cosa significa questo in una delle
lezioni successive di questo corso nel contesto di Angular.
Allo stesso modo, sentirai anche persone parlare di Model-View-Controller,
Model-View-ViewModel, Model-View-Qualunque cosa e così via.
Ancora una volta, questo è come ho detto, un paradigma dell'architettura software
che usiamo per sviluppare applicazioni software.
Parleremo un po 'più di dettaglio su questo nel contesto di Angular,
in una delle lezioni successive.
E in questo contesto, sentiresti in Angular, cose come l'associazione dei dati, il
routing, l'associazione dei dati unidirezionale e bidirezionale e così via.
Di nuovo, non essere buttato via da tutti questi termini.
Li capiremo mentre andiamo avanti in questo corso.
Allo stesso modo, si sente spesso parlare di
codice JavaScript scalabile, riutilizzabile, gestibile e così via.
Questi sono concetti meravigliosi o
attributi meravigliosi che vogliamo ottenere con la nostra applicazione.
Vedremo come Angular ci aiuta a farlo in questo particolare corso.
E un altro termine di cui sentirai spesso parlare è
lo sviluppo guidato dai test.
Angular supporta effettivamente lo sviluppo guidato da test, quindi anche prima di sviluppare la
tua applicazione scriverai il test per
assicurarti che il codice che implementi realizzi effettivamente ciò che stai cercando di realizzare.
Esamineremo un po 'di sviluppo guidato da test verso la parte successiva
di questo corso.
Anche se, se si desidera adottare questo approccio di sviluppo basato su test per l'
implementazione di applicazioni, questo è un approccio meraviglioso.
Ma prima di andare a quel punto, è meglio per
noi capire ciò che il quadro stesso ci aiuta a realizzare.
Quindi, in questo corso, mi occuperò brevemente di sviluppo guidato da test.
Ma se stavi implementando una vera applicazione Angular, dovresti adottare
un approccio di sviluppo basato su test per lo sviluppo di applicazioni Angular.
Ci sono molti, molti framework JavaScript che sono disponibili nel mondo reale.
Angolare essendo un inizio.
Angular nella sua precedente incarnazione
come AngularJS è stato uno dei framework JavaScript più popolari.
Guarderemo Angular in modo più dettagliato mentre andiamo avanti.
Allo stesso modo, se guardi il mondo dei framework JavaScript,
sentirai la gente parlare di Ember, Backbone, React.
Sebbene, alcune persone classificano React come una libreria piuttosto che un framework.
Ancora una volta, a seconda di chi chiedi,
alcune persone potrebbero dire che è un framework e alcune persone potrebbero dire che è solo una libreria.
Ancora una volta, non preoccupatevi troppo di ciò che è, ma è disponibile per
noi come approccio per l'implementazione di applicazioni web complesse.
Allo stesso modo, altri quadri più piccoli come Aurelia, Meteor, Polymer,
Google Polymer che è un framework imminente, Knockout, Vue e molti altri.
E ci sono sempre più aggiunti a questo ogni singolo giorno.
Qual è il sapore del framework JavaScript di oggi?
Angolare.
E' appena uscito dalla fase di sviluppo e nel mondo reale.
E le persone si stanno impegnando per sviluppare applicazioni usando Angular.
Ecco perché siamo interessati ad Angular in questo particolare corso.
Ora una volta che imparerai uno di loro,
inizierai a capire l'approccio delicato che questi framework usano.
Forse è in grado di raccogliere altri framework in modo simile utilizzando
i concetti generali che si impara in questo particolare corso.
[ MUSIC]