
buon lunedì mattina oggi andiamo a
fai un po ‘di continuazione la scorsa settimana
video che parlava di dipendenza
iniezione in JavaScript senza utilizzo
classi
Sono mpj e stai guardando divertente divertimento
funzione
[Musica]
Sono tornato a casa e mi sento così bene
se ti stai chiedendo dei miei capelli
questo è il mio palcoscenico da Nordic
jazz ti piace mm-hmm
di cui ho ospitato il co-hosting
la settimana scorsa ed è stato strano questo
settimana perché sto registrando questo
La domenica ed è stato sorprendente
incredibile ma probabilmente anche uno dei
i lavori più duri che abbia mai fatto
fatto
Gesù è stato così intenso che alcuni fan hanno mostrato
su e mi ha dato caramelle serbe II suppongo
non è una buona idea di mangiare roba da
persone a caso su internet, ma è
pacchetto gratuito quindi penso che va bene se io
morirà questa sarà la prova da dove viene
il manga ti ringrazio di nuovo manga I almeno
Sono abbastanza sicuro che non fosse un uomo John the
pensare che le cose fossero piuttosto frenetiche
Baffi nordici oh mio dio questo è molto buono
comunque la scorsa settimana abbiamo esplorato come fare
iniezione di dipendenza senza l’uso
classi in JavaScript e oggi lo farei
piace continuare ad esplorare questo ma con
alcuni esempi più sofisticati e
anche discutere un po ‘ di
l’architettura qui è l’esempio
era all’inizio della scorsa settimana
video per ricordarti molto velocemente
questo era un gestore utente di classe che accetta
connessione al database che inseriamo qui
nel costruttore e poi c’è
un metodo per creare utenti che usa questo
connessione per accedere agli utenti della tabella e
inserisci e lo usi con delle cazzate
proprietà che ho inventato e poi
restituisce l’ID utente esattamente come questo
il codice non è importante l’importante
parte è che dipende da questo
linea di connessione al database che vogliamo
iniettalo in modo da avere il controllo
le nostre dipendenze e possiamo testarle
e poi abbiamo refactoring questo codice troppo
invece di usare una classe usando un insieme di
funzioni annidate e noi stiamo bene così
fa esattamente la stessa cosa avendo
questo crea questa funzione di fabbrica
che crea l’uso della funzione
e usa una chiusura per passare il passante
dipendenza della connessione invece di usare a
invece di usare le proprietà di classe così
questo è quello che abbiamo fatto, ma quello che vorrei
come discutere oggi è se lo chiedo
control-z torna al nostro esempio originale
E se avessimo più di uno
metodo qui diciamo che ne inventiamo uno solo
l’utente principale e noi chiamiamo ha bisogno di un ID
lì e facciamo solo un po ‘
implementazione va bene così ora il
la situazione è cambiata un po ‘
perché ora abbiamo questi entrambe queste
i metodi ora stanno facendo uso di questo
dipendenza, quindi stiamo condividendo il
dipendenza degli iniettori tra questi due
questi due classi questi due metodi e
questo rappresenta quello che stiamo andando
esplorare oggi questa condivisione di
dipendenze tra le varie funzioni
Ti mostrerò come farlo
senza usare senza usare le classi ma
Parlerò anche un po ‘
del perché non vorresti fare
questo tipo di condivisione di ciò che sono
caveat con esso siamo come quando dovrebbe
lo fai e quando non dovresti Oh
aumenta il font quindi è un po ‘
tutto bene torniamo al divertimento
shanell esempio qui bloop bloop well
questa è la stessa di prima
e aggiungiamo un utente di eliminazione
gli equivalenti cancellano l’utente ed era a
connessione e un nome ed è stato
qualcosa del genere oh era un ID
giusto qualcosa del genere questa esatta
l’implementazione esatta non lo è affatto
importante quello che ci interessa è
questa relazione qui va bene così andiamo
pensa a come usiamo queste cose questo
è l’esempio dell’ultimo episodio
questo è il file che eravamo solo
editing e stiamo tirando in make
crea utente perché già esisteva
ora facciamo anche troll nel make
cancella l’utente che avevamo e poi lo faremo
usa make delete user per creare il
lanciata vera funzione di cancellazione
scusa, cancella utente, usa la connessione
va bene, quindi quello che vediamo qui è un
un po ‘di duplicazione che lo farà
disturba un po ‘il tuo occhio perché
programmatori a cui siamo addestrati a guardare
fare clic per cercare la duplicazione e e
rimuoverla
Parlo spesso di come dovresti essere
molto attento a rimuovere la duplicazione
si dovrebbe assolutamente farlo, ma si
dovrebbe farlo in modo difensivo e attendere a
molta duplicazione ai nostri occhi prima
rimuovendolo perché altrimenti lo farai
probabilmente manca identificare il reale
modello e si generalizza
in modo non corretto saremo parlando
questo durante il corso di questo video e
in molti esempi ma per ora facciamo
immagina che in realtà vogliamo rimuovere
questa duplicazione non lo facciamo
che abbiamo altri esempi di questo
diciamo che forse abbiamo avuto hmm mi piacerebbe
Dì che abbiamo avuto un appuntamento, signore e signore
forse proibisci anche a te, signore, adesso
stiamo iniziando a vedere alcuni
la duplicazione qui saremo
rimuovendo questo, ma prima vorrei
attirare la vostra attenzione sul fatto come
questa dipendenza è molto facile da vedere ora
come è molto chiaro come il
il flusso delle dipendenze e agiscono al
momento c’è sicuramente qualche duplicazione ma
è ancora molto facile da vedere e ragionare
a riguardo è molto semplice ma giochiamo
un po ‘più in alto
ordina le funzioni se il tuo ordine è superiore
funziona è un concetto un po ‘pignolo
Ti ho un video su quella lì che
potresti voler controllare
BAM quindi questo è esattamente lo stesso così
vedi qui che questa cosa qui noi
l’ho sostituito usando una mappa
qui in pratica abbiamo preso tutto
questi qui li mettono in questo array che
si chiama fabbriche e quindi mappiamo cosa
mappa sopra le fabbriche qui e per
ogni fabbrica che chiamiamo quella fabbrica dove
l’oggetto di connessione e che darà
noi un array e poi usiamo
destrutturazione qui per estrarre quello in
variabili così ora possiamo solo chiamare come
crea utente e Joe Smith qui o elimina
utente uno due tre se questa sintassi qui
è nuovo per te questo è chiamato
destrutturando è una nuova funzionalità in
JavaScript puoi controllare il mio video su
distruggendo qui questo è abbastanza bello
ma stiamo facendo troppa previsione
del futuro qui lo stiamo assumendo
tutte le funzioni avranno lo stesso il
stesso insieme di dipendenze che non lo è
vero diciamo che vietare anche l’utente
richiesto un servizio di posta elettronica sì sì
potrebbe iniettare tutte le dipendenze
in tutte le funzioni
questo diventa un po ‘strano non lo è
completamente irragionevole oh immagino che
potremmo semplicemente iniettare tutte le dipendenze come
come un oggetto in tutto simile iniettare tutto
tutte le dipendenze in tutte le fabbriche ma
A me sembra che siamo un tipo di vogliamo
sembra un po ‘più di controllo
proviamo in un altro modo, okay, quindi lo sappiamo
che questo vuole anche un servizio di posta elettronica
Non scriverò il servizio di posta elettronica
puoi immaginare che sia lo stesso
cosa come questa connessione, ma al posto di
forse un produttore di DB unicron
fornitore di servizi di posta elettronica e noi ne facciamo un po ‘
istanziazione qui e poi passarla dentro
per vietare l’utente M okay come procedere
va bene così invece di queste immagini
che avevamo una funzione di utilità utente make
e tu hai chiamato che l’ utente ti utilizza
so a cosa sto andando a commentare questo
lascia fare per il confronto e stiamo andando
passare nella connessione delle dipendenze
nel servizio di posta e che sta per
dacci un oggetto che saremo
struttura
torniamo in uso di utils e avere
uno sguardo wow, vedo che in realtà ho fatto un
errore qui un errore confuso esso
dovrebbe essere fare cancellare utente qui perché
questa è una fabbrica che crea il
cancella utente cancella utente è questa funzione
qui e tutta questa cosa qui
fai cancellare l’utente o questo puoi farlo
con noi penso di creare la liddie the
elimina la funzione usa cancella la funzione utente
in ogni caso, rifattorizziamo questo un po ‘siamo
invece vogliamo esportare il sale e io
coloni Voglio rendere l’utente brividi
oh, non possiamo esportare una costante che dobbiamo
fai questo prima di usare i tuoi strumenti e
vedi i programmi di utilità e questo prende un oggetto
con dipendenze e quelle dipendenze
sono il collegamento e il servizio di posta penso
è stato chiamato e questo tornerà
un oggetto più ci andiamo e questi sono
non sono più le nostre fabbriche sono queste
sono le funzioni effettive perché loro
tutti ora hanno accesso alla connessione
oggetto qui farò la stessa cosa
con delete user non lo faccio e due punti
invece li elimina ed esporta il file
colpa rendere l’utente solo così esportando
che Oh indentazione dovrebbe essere giusto così
ora stiamo facendo questo come invece di
avere una fabbrica oops
per ogni funzione che ora abbiamo
questo tipo di like
fabbrica di rapping per tutti loro a
nello stesso tempo in modo che condividano il
portata lo scopo di chiusura qui in modo che
entrambe queste funzioni hanno accesso a
l’oggetto di connessione così possiamo farlo
anche creare la funzione utente divieto I
Immagino che ci vuole un ID e poi c’è un
gli utenti della tabella dot di connessione chiamiamolo
aggiorna qualcosa aggrappato
e scommetto che prende un delta, quindi facciamolo
dimmi che conosco la sintassi di MongoDB qui
qualcosa di brutto vero non lo so
inventandolo mentre vado e quando il
l’aggiornamento è fatto dovrebbe chiamare la posta
servizio non abbiamo ancora l’email qui
che avremmo dovuto capirlo esso
non è così che non è davvero rilevante
per l’esempio diciamo Joe, sì
vieni e ti ho bandito, amico, beccato
operatore dall’inferno
Va bene così vedi qui ora che questo
ha accesso al servizio di posta questo ha
l’accesso a questi ha accesso al
connessione e se torniamo ricordate
come è stato usato passiamo semplicemente nel
dipendenze qui come un oggetto
letterale e può accedervi e poi
crea tutti questi in uno solo
piombare per noi
notare che questo modello è molto simile
ad una classe dove con alcuni costruttori
lascia che mi lasci andare a lezione
sorta così qui avremmo solo facciamolo
dire
tu dai il nostro servizio di posta elettronica ora lo faremmo
vai a questo servizio postale di posta elettronica
servizio di posta naturalmente qualcosa del genere
e poi faremmo lo stesso
implementazione qui e ma invece di
usando la chiusura della funzione
come ha fatto qui , vedresti questi
proprietà sull’istanza
invece, ma essenzialmente i due modelli
sono molto simili è solo questo
invece utilizza solo funzioni e chiusure
della classe costruisce un problema con
questo schema è che abbiamo finito di condividere
così il servizio di posta è molto bello in
questo caso quando la connessione è utilizzata da tutti
utente utilizza qui, ma è solo il servizio di posta
usato da pochi quindi questo significa che questo
il servizio di posta elettronica qui esposto
e passato in tutto di entrambi
crea utente ed elimina utente anche se
non hanno business sapendolo
questo non è esattamente un peccato capitale ma
può essere problematico parzialmente perché
le dipendenze ora sono meno di meno
ovvio per esempio prima che potessimo guardare
in questo caso qui se torniamo a
l’app qui possiamo vedere esattamente cosa
dipendenze ogni cosa ha ma qui
questo ora è diventato leggermente più
oscurato da noi dipendenze sono
iniziando a diventare questo questo blob di
le cose anche se guardi nel
classe l’intera catena di dipendenze è a
un po ‘quando vedi qualcosa del genere
questo con un gruppo qui fa tipo
una persona che inizia a lavorare in
questa questa o questa classe, qualunque cosa chiamiamo
modulo
li fa pensare che sia giusto usare il
servizio di posta elettronica che potrebbe davvero non
essere in questo modo è questo è solo il suo
la propria cosa qui piace solo perché
qualcosa è in questo file utils no
rendere significa che è ragionevole iniziare
accesso all’accesso al servizio di posta elettronica così
questo gruppo qui sta iniziando
diventare un po ‘problematico parlando
del gruppo diventa un programmatico
diventa anche problematico in un altro
il modo in cui l’utente utilizza come fosse
solo qualcosa che abbiamo iniziato a fare
perché quando abbiamo creato un utente che abbiamo creato
quello in qualche file o qualche classe e noi
ho appena capito che quel file o quello
il classico aveva bisogno di un nome e poi divenne
uso di utils e mi sono sentito bene
è il posto dove mettiamo la crude
operazioni per gli utenti ma una volta noi
inizia effettivamente a fare cose che realizziamo
che hey abbiamo davvero bisogno di funzioni
fai un bel po ‘di cose in questo modo
mailing mailing users o forse se noi
stiamo eliminando gli utenti forse allora abbiamo bisogno
fare qualcosa con le informazioni di pagamento
o informazioni di fatturazione o qualunque cosa siamo
non sono abbastanza sicuro di cosa questo cosa cosa questo
questo gruppo di cose è perché abbiamo
creato il gruppo prematuramente prima di noi
in realtà sappiamo dove stavamo andando
sarebbe stato meglio avere solo
mantenuto tutte queste queste funzioni come
isolato e lasciarli vivere da soli
vive e lascia che uno schema emerga prima
iniziando a raggrupparli perché quando tu
inizia a raggruppare le cose diventa più difficile
a un districarli e lo rende anche
comunicare qualcosa ad altri
programmatori che oh questa è una creatività
gruppo ma in realtà non è vero
sta appena iniziando a ottenere il gruppo da cosa
dipendenze che hanno che non è
davvero un modo buono e sensato di
cosa raggruppa
ad essere onesti come vuoi raggruppare
le cose sono come ce ne sono molte altre
modi molto migliori modi coesivi per raggruppare
le cose quindi cosa dipende da cosa
dipende da ma diventa la conseguenza
se questo è ciò che facciamo rottura
cose in moduli basati su basato su
il loro set di dipendenza lo voglio davvero
guidare questa casa come quando me ne vado
torna all’esempio di classe qui quando quando
abbiamo iniziato a creare qui per creare utenti
e abbiamo dovuto creare una classe let
immagina di essere in una lingua come
Java dove tutto è richiesto di essere
una classe quindi a quando crei un
funzione devi anche creare a
wrapping class e questo crea un
problema interessante perché sappiamo cosa
vogliamo fare sappiamo che vogliamo
inserire un utente nel database e noi
cinque-cinque trova il lato che crea l’utente
è un nome ragionevole per farlo comunque
java ci costringerebbe anche a nominare questo
cosa
questa classe è gruppo questo gruppo di uno
e c’è una cosa sinistra e sinistra
su questo ed è quel portale che è
distraendo perché dobbiamo nominarne uno
altra cosa e denominazione è difficile e
richiede tempo
c’è una vecchia battuta in
programmazione di computer dicendo che era così
ora ci sono solo due problemi difficili in
Concorrenza e denominazione informatica
cose come molte cose ci mettono molto tempo
e qui sei costretto a farlo anche
anche se non è veramente necessario, solo noi
voluto creare una funzione e anche
noi chiamiamo il motivo per cui nominiamo
è è così difficile è che esso richiede di
prevedere il futuro che richiede
pensa a cosa verrà dopo
perché non hai davvero nessuna informazione
hai solo un pezzo di dati o solo
forse alcuni è anche troppo
per voi per prendere questa decisione questo è
non è sensato farlo
presto dovresti aspettare di più
duplicazione e istanze di qualcosa
sorgere prima di generalizzare o iniziare
raggruppare e organizzare al fine di
raggruppa e generalizza o qualunque cosa tu
bisogno di vedere un modello che devi sapere
qual è lo schema generale e se tu
se non si lascia che la duplicazione salga per prima
stai per inventare troppo del
modello nella tua testa e stai andando
per prevedere il futuro in modo errato o no
andando a ma in probabilmente si sta andando a
sii sbagliato e poiché questo è qualcosa
che facciamo molto dovremmo dovremmo
si basa sulla probabilità che questo sia effettivamente un
ottimo esempio di uno dei motivi principali
perché non mi piace orientato agli oggetti
programmazione mi sembra che incentivi
per predire il futuro in precedenza
punto che tu sei in grado di farlo bene
questo ciò che facciamo qui è come farlo
si utilizzano strumenti in un vero e proprio laboratorio di questo non è
cosa farei nel momento in cui sono
programmazione immagino il motivo per cui
siamo finiti con voi tre code era
che ho voluto creare qualcosa che
ha avuto una buona mappatura con il
esempio di classe iniziale in una vera app
farebbe davvero qualcosa di simile
qualcosa II non conosco altri servizi
o qualcosa e poi vorrei solo
fare qualcosa del genere e poi lo farei
importali da lì oh no scusa come
sarebbe fare creare utente e fare
cancella utente e fai aggiornare utente e
fare l’ utente van e poi vorrei solo averlo
questo mi dispiace per questo enorme file lasciami tornare indietro
qui dove eravamo prima
LLL impara così e il file lo farebbe
assomiglia a questo e vorrei semplicemente scaricare
merda in questa altra categoria fino a me
iniziato a capire schemi molto chiari
su un’organizzazione e poi e solo
allora inizierei a creare qualcosa
come sarebbe come oh non lo so
servizi di account o qualcosa in cui io
inizia a mettere cose come il flusso di utenti
cose che non conosco è un punto
Non lo so , non sai come
l’applicazione sarà strutturata o cosa
senso
quale struttura ha senso per un
applicazione fino a quando non sei un po ‘
tempo in modo che io sia un grande fan di avere
programmare la tua architettura
in modo difensivo in modo da poter lasciare
la struttura emerge mentre i modelli emergono
e diventa chiaro per te che ci ho provato
molte volte per fare architettura in anticipo in
un’applicazione e ha letteralmente
mai lavorato non funziona mai perché
gli umani non sono particolarmente bravi in
predire il futuro sono i nostri cervelli
collegato a come sono progettati per pianificare
movimenti come te a cui siamo destinati
come va bene se cammino dietro quella roccia
allora forse c’è un leone di cui ho bisogno
guarda prima che la linea sia il nostro cervello
fondamentalmente per pianificare movimenti e
predire l’ architettura di a
applicazione software software che è
è troppo complicato per il nostro
i cervelli quindi lasciano sorgere la duplicazione
quantità elevata se possibile invece di
cercando di prevedere quale sarà quel modello
essere e questo è ciò che voglio parlare
oggi volevo mostrarti come puoi
condividere la dipendenza
tra le funzioni quando si sta facendo
iniezione di dipendenza senza
classi ma volevo anche parlare di
il problema con la condivisione delle dipendenze in
generale e come dovresti provare ad aspettare
perché i modelli emergano e siano chiari
invece di cercare di predire il futuro
in anticipo hai appena visto un episodio
di fun fun function I release di questi
ogni lunedì mattina Oh 800 GMT puoi
guarda un altro episodio qui se tu
avere domande pensieri intorno a questo
episodio puoi dare un’occhiata a questo argomento
il forum Fun Fun a cui è dedicato
questo episodio sono mpj fino al prossimo lunedì
La mattina dice curioso
fai un po ‘di continuazione la scorsa settimana
video che parlava di dipendenza
iniezione in JavaScript senza utilizzo
classi
Sono mpj e stai guardando divertente divertimento
funzione
[Musica]
Sono tornato a casa e mi sento così bene
se ti stai chiedendo dei miei capelli
questo è il mio palcoscenico da Nordic
jazz ti piace mm-hmm
di cui ho ospitato il co-hosting
la settimana scorsa ed è stato strano questo
settimana perché sto registrando questo
La domenica ed è stato sorprendente
incredibile ma probabilmente anche uno dei
i lavori più duri che abbia mai fatto
fatto
Gesù è stato così intenso che alcuni fan hanno mostrato
su e mi ha dato caramelle serbe II suppongo
non è una buona idea di mangiare roba da
persone a caso su internet, ma è
pacchetto gratuito quindi penso che va bene se io
morirà questa sarà la prova da dove viene
il manga ti ringrazio di nuovo manga I almeno
Sono abbastanza sicuro che non fosse un uomo John the
pensare che le cose fossero piuttosto frenetiche
Baffi nordici oh mio dio questo è molto buono
comunque la scorsa settimana abbiamo esplorato come fare
iniezione di dipendenza senza l’uso
classi in JavaScript e oggi lo farei
piace continuare ad esplorare questo ma con
alcuni esempi più sofisticati e
anche discutere un po ‘ di
l’architettura qui è l’esempio
era all’inizio della scorsa settimana
video per ricordarti molto velocemente
questo era un gestore utente di classe che accetta
connessione al database che inseriamo qui
nel costruttore e poi c’è
un metodo per creare utenti che usa questo
connessione per accedere agli utenti della tabella e
inserisci e lo usi con delle cazzate
proprietà che ho inventato e poi
restituisce l’ID utente esattamente come questo
il codice non è importante l’importante
parte è che dipende da questo
linea di connessione al database che vogliamo
iniettalo in modo da avere il controllo
le nostre dipendenze e possiamo testarle
e poi abbiamo refactoring questo codice troppo
invece di usare una classe usando un insieme di
funzioni annidate e noi stiamo bene così
fa esattamente la stessa cosa avendo
questo crea questa funzione di fabbrica
che crea l’uso della funzione
e usa una chiusura per passare il passante
dipendenza della connessione invece di usare a
invece di usare le proprietà di classe così
questo è quello che abbiamo fatto, ma quello che vorrei
come discutere oggi è se lo chiedo
control-z torna al nostro esempio originale
E se avessimo più di uno
metodo qui diciamo che ne inventiamo uno solo
l’utente principale e noi chiamiamo ha bisogno di un ID
lì e facciamo solo un po ‘
implementazione va bene così ora il
la situazione è cambiata un po ‘
perché ora abbiamo questi entrambe queste
i metodi ora stanno facendo uso di questo
dipendenza, quindi stiamo condividendo il
dipendenza degli iniettori tra questi due
questi due classi questi due metodi e
questo rappresenta quello che stiamo andando
esplorare oggi questa condivisione di
dipendenze tra le varie funzioni
Ti mostrerò come farlo
senza usare senza usare le classi ma
Parlerò anche un po ‘
del perché non vorresti fare
questo tipo di condivisione di ciò che sono
caveat con esso siamo come quando dovrebbe
lo fai e quando non dovresti Oh
aumenta il font quindi è un po ‘
tutto bene torniamo al divertimento
shanell esempio qui bloop bloop well
questa è la stessa di prima
e aggiungiamo un utente di eliminazione
gli equivalenti cancellano l’utente ed era a
connessione e un nome ed è stato
qualcosa del genere oh era un ID
giusto qualcosa del genere questa esatta
l’implementazione esatta non lo è affatto
importante quello che ci interessa è
questa relazione qui va bene così andiamo
pensa a come usiamo queste cose questo
è l’esempio dell’ultimo episodio
questo è il file che eravamo solo
editing e stiamo tirando in make
crea utente perché già esisteva
ora facciamo anche troll nel make
cancella l’utente che avevamo e poi lo faremo
usa make delete user per creare il
lanciata vera funzione di cancellazione
scusa, cancella utente, usa la connessione
va bene, quindi quello che vediamo qui è un
un po ‘di duplicazione che lo farà
disturba un po ‘il tuo occhio perché
programmatori a cui siamo addestrati a guardare
fare clic per cercare la duplicazione e e
rimuoverla
Parlo spesso di come dovresti essere
molto attento a rimuovere la duplicazione
si dovrebbe assolutamente farlo, ma si
dovrebbe farlo in modo difensivo e attendere a
molta duplicazione ai nostri occhi prima
rimuovendolo perché altrimenti lo farai
probabilmente manca identificare il reale
modello e si generalizza
in modo non corretto saremo parlando
questo durante il corso di questo video e
in molti esempi ma per ora facciamo
immagina che in realtà vogliamo rimuovere
questa duplicazione non lo facciamo
che abbiamo altri esempi di questo
diciamo che forse abbiamo avuto hmm mi piacerebbe
Dì che abbiamo avuto un appuntamento, signore e signore
forse proibisci anche a te, signore, adesso
stiamo iniziando a vedere alcuni
la duplicazione qui saremo
rimuovendo questo, ma prima vorrei
attirare la vostra attenzione sul fatto come
questa dipendenza è molto facile da vedere ora
come è molto chiaro come il
il flusso delle dipendenze e agiscono al
momento c’è sicuramente qualche duplicazione ma
è ancora molto facile da vedere e ragionare
a riguardo è molto semplice ma giochiamo
un po ‘più in alto
ordina le funzioni se il tuo ordine è superiore
funziona è un concetto un po ‘pignolo
Ti ho un video su quella lì che
potresti voler controllare
BAM quindi questo è esattamente lo stesso così
vedi qui che questa cosa qui noi
l’ho sostituito usando una mappa
qui in pratica abbiamo preso tutto
questi qui li mettono in questo array che
si chiama fabbriche e quindi mappiamo cosa
mappa sopra le fabbriche qui e per
ogni fabbrica che chiamiamo quella fabbrica dove
l’oggetto di connessione e che darà
noi un array e poi usiamo
destrutturazione qui per estrarre quello in
variabili così ora possiamo solo chiamare come
crea utente e Joe Smith qui o elimina
utente uno due tre se questa sintassi qui
è nuovo per te questo è chiamato
destrutturando è una nuova funzionalità in
JavaScript puoi controllare il mio video su
distruggendo qui questo è abbastanza bello
ma stiamo facendo troppa previsione
del futuro qui lo stiamo assumendo
tutte le funzioni avranno lo stesso il
stesso insieme di dipendenze che non lo è
vero diciamo che vietare anche l’utente
richiesto un servizio di posta elettronica sì sì
potrebbe iniettare tutte le dipendenze
in tutte le funzioni
questo diventa un po ‘strano non lo è
completamente irragionevole oh immagino che
potremmo semplicemente iniettare tutte le dipendenze come
come un oggetto in tutto simile iniettare tutto
tutte le dipendenze in tutte le fabbriche ma
A me sembra che siamo un tipo di vogliamo
sembra un po ‘più di controllo
proviamo in un altro modo, okay, quindi lo sappiamo
che questo vuole anche un servizio di posta elettronica
Non scriverò il servizio di posta elettronica
puoi immaginare che sia lo stesso
cosa come questa connessione, ma al posto di
forse un produttore di DB unicron
fornitore di servizi di posta elettronica e noi ne facciamo un po ‘
istanziazione qui e poi passarla dentro
per vietare l’utente M okay come procedere
va bene così invece di queste immagini
che avevamo una funzione di utilità utente make
e tu hai chiamato che l’ utente ti utilizza
so a cosa sto andando a commentare questo
lascia fare per il confronto e stiamo andando
passare nella connessione delle dipendenze
nel servizio di posta e che sta per
dacci un oggetto che saremo
struttura
torniamo in uso di utils e avere
uno sguardo wow, vedo che in realtà ho fatto un
errore qui un errore confuso esso
dovrebbe essere fare cancellare utente qui perché
questa è una fabbrica che crea il
cancella utente cancella utente è questa funzione
qui e tutta questa cosa qui
fai cancellare l’utente o questo puoi farlo
con noi penso di creare la liddie the
elimina la funzione usa cancella la funzione utente
in ogni caso, rifattorizziamo questo un po ‘siamo
invece vogliamo esportare il sale e io
coloni Voglio rendere l’utente brividi
oh, non possiamo esportare una costante che dobbiamo
fai questo prima di usare i tuoi strumenti e
vedi i programmi di utilità e questo prende un oggetto
con dipendenze e quelle dipendenze
sono il collegamento e il servizio di posta penso
è stato chiamato e questo tornerà
un oggetto più ci andiamo e questi sono
non sono più le nostre fabbriche sono queste
sono le funzioni effettive perché loro
tutti ora hanno accesso alla connessione
oggetto qui farò la stessa cosa
con delete user non lo faccio e due punti
invece li elimina ed esporta il file
colpa rendere l’utente solo così esportando
che Oh indentazione dovrebbe essere giusto così
ora stiamo facendo questo come invece di
avere una fabbrica oops
per ogni funzione che ora abbiamo
questo tipo di like
fabbrica di rapping per tutti loro a
nello stesso tempo in modo che condividano il
portata lo scopo di chiusura qui in modo che
entrambe queste funzioni hanno accesso a
l’oggetto di connessione così possiamo farlo
anche creare la funzione utente divieto I
Immagino che ci vuole un ID e poi c’è un
gli utenti della tabella dot di connessione chiamiamolo
aggiorna qualcosa aggrappato
e scommetto che prende un delta, quindi facciamolo
dimmi che conosco la sintassi di MongoDB qui
qualcosa di brutto vero non lo so
inventandolo mentre vado e quando il
l’aggiornamento è fatto dovrebbe chiamare la posta
servizio non abbiamo ancora l’email qui
che avremmo dovuto capirlo esso
non è così che non è davvero rilevante
per l’esempio diciamo Joe, sì
vieni e ti ho bandito, amico, beccato
operatore dall’inferno
Va bene così vedi qui ora che questo
ha accesso al servizio di posta questo ha
l’accesso a questi ha accesso al
connessione e se torniamo ricordate
come è stato usato passiamo semplicemente nel
dipendenze qui come un oggetto
letterale e può accedervi e poi
crea tutti questi in uno solo
piombare per noi
notare che questo modello è molto simile
ad una classe dove con alcuni costruttori
lascia che mi lasci andare a lezione
sorta così qui avremmo solo facciamolo
dire
tu dai il nostro servizio di posta elettronica ora lo faremmo
vai a questo servizio postale di posta elettronica
servizio di posta naturalmente qualcosa del genere
e poi faremmo lo stesso
implementazione qui e ma invece di
usando la chiusura della funzione
come ha fatto qui , vedresti questi
proprietà sull’istanza
invece, ma essenzialmente i due modelli
sono molto simili è solo questo
invece utilizza solo funzioni e chiusure
della classe costruisce un problema con
questo schema è che abbiamo finito di condividere
così il servizio di posta è molto bello in
questo caso quando la connessione è utilizzata da tutti
utente utilizza qui, ma è solo il servizio di posta
usato da pochi quindi questo significa che questo
il servizio di posta elettronica qui esposto
e passato in tutto di entrambi
crea utente ed elimina utente anche se
non hanno business sapendolo
questo non è esattamente un peccato capitale ma
può essere problematico parzialmente perché
le dipendenze ora sono meno di meno
ovvio per esempio prima che potessimo guardare
in questo caso qui se torniamo a
l’app qui possiamo vedere esattamente cosa
dipendenze ogni cosa ha ma qui
questo ora è diventato leggermente più
oscurato da noi dipendenze sono
iniziando a diventare questo questo blob di
le cose anche se guardi nel
classe l’intera catena di dipendenze è a
un po ‘quando vedi qualcosa del genere
questo con un gruppo qui fa tipo
una persona che inizia a lavorare in
questa questa o questa classe, qualunque cosa chiamiamo
modulo
li fa pensare che sia giusto usare il
servizio di posta elettronica che potrebbe davvero non
essere in questo modo è questo è solo il suo
la propria cosa qui piace solo perché
qualcosa è in questo file utils no
rendere significa che è ragionevole iniziare
accesso all’accesso al servizio di posta elettronica così
questo gruppo qui sta iniziando
diventare un po ‘problematico parlando
del gruppo diventa un programmatico
diventa anche problematico in un altro
il modo in cui l’utente utilizza come fosse
solo qualcosa che abbiamo iniziato a fare
perché quando abbiamo creato un utente che abbiamo creato
quello in qualche file o qualche classe e noi
ho appena capito che quel file o quello
il classico aveva bisogno di un nome e poi divenne
uso di utils e mi sono sentito bene
è il posto dove mettiamo la crude
operazioni per gli utenti ma una volta noi
inizia effettivamente a fare cose che realizziamo
che hey abbiamo davvero bisogno di funzioni
fai un bel po ‘di cose in questo modo
mailing mailing users o forse se noi
stiamo eliminando gli utenti forse allora abbiamo bisogno
fare qualcosa con le informazioni di pagamento
o informazioni di fatturazione o qualunque cosa siamo
non sono abbastanza sicuro di cosa questo cosa cosa questo
questo gruppo di cose è perché abbiamo
creato il gruppo prematuramente prima di noi
in realtà sappiamo dove stavamo andando
sarebbe stato meglio avere solo
mantenuto tutte queste queste funzioni come
isolato e lasciarli vivere da soli
vive e lascia che uno schema emerga prima
iniziando a raggrupparli perché quando tu
inizia a raggruppare le cose diventa più difficile
a un districarli e lo rende anche
comunicare qualcosa ad altri
programmatori che oh questa è una creatività
gruppo ma in realtà non è vero
sta appena iniziando a ottenere il gruppo da cosa
dipendenze che hanno che non è
davvero un modo buono e sensato di
cosa raggruppa
ad essere onesti come vuoi raggruppare
le cose sono come ce ne sono molte altre
modi molto migliori modi coesivi per raggruppare
le cose quindi cosa dipende da cosa
dipende da ma diventa la conseguenza
se questo è ciò che facciamo rottura
cose in moduli basati su basato su
il loro set di dipendenza lo voglio davvero
guidare questa casa come quando me ne vado
torna all’esempio di classe qui quando quando
abbiamo iniziato a creare qui per creare utenti
e abbiamo dovuto creare una classe let
immagina di essere in una lingua come
Java dove tutto è richiesto di essere
una classe quindi a quando crei un
funzione devi anche creare a
wrapping class e questo crea un
problema interessante perché sappiamo cosa
vogliamo fare sappiamo che vogliamo
inserire un utente nel database e noi
cinque-cinque trova il lato che crea l’utente
è un nome ragionevole per farlo comunque
java ci costringerebbe anche a nominare questo
cosa
questa classe è gruppo questo gruppo di uno
e c’è una cosa sinistra e sinistra
su questo ed è quel portale che è
distraendo perché dobbiamo nominarne uno
altra cosa e denominazione è difficile e
richiede tempo
c’è una vecchia battuta in
programmazione di computer dicendo che era così
ora ci sono solo due problemi difficili in
Concorrenza e denominazione informatica
cose come molte cose ci mettono molto tempo
e qui sei costretto a farlo anche
anche se non è veramente necessario, solo noi
voluto creare una funzione e anche
noi chiamiamo il motivo per cui nominiamo
è è così difficile è che esso richiede di
prevedere il futuro che richiede
pensa a cosa verrà dopo
perché non hai davvero nessuna informazione
hai solo un pezzo di dati o solo
forse alcuni è anche troppo
per voi per prendere questa decisione questo è
non è sensato farlo
presto dovresti aspettare di più
duplicazione e istanze di qualcosa
sorgere prima di generalizzare o iniziare
raggruppare e organizzare al fine di
raggruppa e generalizza o qualunque cosa tu
bisogno di vedere un modello che devi sapere
qual è lo schema generale e se tu
se non si lascia che la duplicazione salga per prima
stai per inventare troppo del
modello nella tua testa e stai andando
per prevedere il futuro in modo errato o no
andando a ma in probabilmente si sta andando a
sii sbagliato e poiché questo è qualcosa
che facciamo molto dovremmo dovremmo
si basa sulla probabilità che questo sia effettivamente un
ottimo esempio di uno dei motivi principali
perché non mi piace orientato agli oggetti
programmazione mi sembra che incentivi
per predire il futuro in precedenza
punto che tu sei in grado di farlo bene
questo ciò che facciamo qui è come farlo
si utilizzano strumenti in un vero e proprio laboratorio di questo non è
cosa farei nel momento in cui sono
programmazione immagino il motivo per cui
siamo finiti con voi tre code era
che ho voluto creare qualcosa che
ha avuto una buona mappatura con il
esempio di classe iniziale in una vera app
farebbe davvero qualcosa di simile
qualcosa II non conosco altri servizi
o qualcosa e poi vorrei solo
fare qualcosa del genere e poi lo farei
importali da lì oh no scusa come
sarebbe fare creare utente e fare
cancella utente e fai aggiornare utente e
fare l’ utente van e poi vorrei solo averlo
questo mi dispiace per questo enorme file lasciami tornare indietro
qui dove eravamo prima
LLL impara così e il file lo farebbe
assomiglia a questo e vorrei semplicemente scaricare
merda in questa altra categoria fino a me
iniziato a capire schemi molto chiari
su un’organizzazione e poi e solo
allora inizierei a creare qualcosa
come sarebbe come oh non lo so
servizi di account o qualcosa in cui io
inizia a mettere cose come il flusso di utenti
cose che non conosco è un punto
Non lo so , non sai come
l’applicazione sarà strutturata o cosa
senso
quale struttura ha senso per un
applicazione fino a quando non sei un po ‘
tempo in modo che io sia un grande fan di avere
programmare la tua architettura
in modo difensivo in modo da poter lasciare
la struttura emerge mentre i modelli emergono
e diventa chiaro per te che ci ho provato
molte volte per fare architettura in anticipo in
un’applicazione e ha letteralmente
mai lavorato non funziona mai perché
gli umani non sono particolarmente bravi in
predire il futuro sono i nostri cervelli
collegato a come sono progettati per pianificare
movimenti come te a cui siamo destinati
come va bene se cammino dietro quella roccia
allora forse c’è un leone di cui ho bisogno
guarda prima che la linea sia il nostro cervello
fondamentalmente per pianificare movimenti e
predire l’ architettura di a
applicazione software software che è
è troppo complicato per il nostro
i cervelli quindi lasciano sorgere la duplicazione
quantità elevata se possibile invece di
cercando di prevedere quale sarà quel modello
essere e questo è ciò che voglio parlare
oggi volevo mostrarti come puoi
condividere la dipendenza
tra le funzioni quando si sta facendo
iniezione di dipendenza senza
classi ma volevo anche parlare di
il problema con la condivisione delle dipendenze in
generale e come dovresti provare ad aspettare
perché i modelli emergano e siano chiari
invece di cercare di predire il futuro
in anticipo hai appena visto un episodio
di fun fun function I release di questi
ogni lunedì mattina Oh 800 GMT puoi
guarda un altro episodio qui se tu
avere domande pensieri intorno a questo
episodio puoi dare un’occhiata a questo argomento
il forum Fun Fun a cui è dedicato
questo episodio sono mpj fino al prossimo lunedì
La mattina dice curioso
Please follow and like us: