
buon lunedì mattina oggi andiamo a
fai un po ‘ di codice in cui soffio
in giro
aggiungi alcune funzioni di refactoring di un’app che io
e lo faremo con a
tema e quel tema è la funzione
composizione non stiamo andando solo a fare
composizione della funzione, ma io proverò a
mostrare un sacco di esso
Sono mpj e stai guardando divertente divertimento
funziona quindi cosa faremo
oggi più esattamente bene un paio di
settimane fa
è stato lanciato un divertente forum divertente che è il
premio principale per i patroni del divertimento
funzione divertente che puoi controllare
informazioni più su come diventare un
patreon patrono cliccando lì si
non devi essere un patrono per il tuo divertimento
questo episodio è giusto
completamente opzionale ma questo è il
contesto quindi c’è questo divertente forum divertente
calmo e questo è un forum di discussione così
ha una API davvero fantastica e in
sezione idee progetto ddddd no è dentro
la meta FFF quindi questo è qualcuno che ha avuto il
idea di qualcuno
è lui ha un nome Valis che è un
quattro membri avevano un’idea che potevamo
avere una mappa in cui tutti i membri della
codice del forum se vogliono posizionarsi
su una mappa del mondo e sembra davvero
lo ha costruito e sembra proprio questo
c’è un sacco di gente questo è molto nuovo
questo era come il latte ieri e bene
va bene così ha queste sovrapposizioni questo sono io
come un buon alce che è qualcosa di te
tendono a dire nella città in cui sono e
ecco Theodore in congedo parentale che mangia
polpette al mio tavolo IKEA e qui
sono le persone nel te
cos’è questo anche ciò che è questo
paese che non sono in ordine per questo lavoro
tipo di gettare insieme il mondo
API più felice quindi funziona così
perché è così fatto ma è così divertente
vai al tuo profilo in prima fila per
e ora ho aggiunto un’abitudine
campo in questo corso chiamato hackable
Jason quindi cosa succederà se metti
dati qui così metti Jason qui e questo
i dati saranno resi disponibili a questo
punto finale qui questo è pubblico
endpoint a cui chiunque può accedere e
quindi questo è solo un Jason in the JSON
oggetti legati ai nomi degli utenti quindi mio
nome utente è qui vedi come mappa utente
posizione geografica, didascalia, longitudine, mosse
e questo è come ADA I super-ostile se
sembri qui come le persone hanno immediato
abbiamo provato a fare attacchi di script
dentro di loro quindi se usi questa marca
sicuro di disinfettare i tuoi input e questo è
non significa persone che ho effettivamente detto
persone qui a mettere qui i dati JSON
è rompere per rompere le app di altri
i membri sono altamente incoraggiati ad insegnare
le persone a disinfettare i loro input su a
link a questo fantastico fumetto xkcd che è
a proposito di un po ‘di tavoli da biliardo
Dare un nome a tuo figlio robert drop table
studenti x caso è così buono ma quello
è che in realtà non è ciò che siamo
andando a parlare di oggi questo è come te
vedi qui questo è il forum Automator su
Heroku è un progetto davvero hacky
Ho appena buttato insieme molto velocemente durante
il durante la notte del patreon
lancio perché uno dei premi per
i primi avventori sono quelli che se tu
diventare un patrono durante il 31 di questo
mese che significa fino a quando
Non conosco le date che ho guardato nella mia
calendario fino a giovedì è l’ultimo giorno
ottieni questo lotto speciale che nessuno
altrimenti ti faccio vedere un esempio
diciamo collo di agnello qui ha questo
speciale per sempre membro di Eternity quindi lascia
ti mostro che andrò solo io
alcuni andiamo a presentarti giusto
scegli qualcuno qui guarda le dita
qui quindi notate qui che Feng Shang ha
questo speciale membro per sempre dell’eternità
distintivo e questo è solo gente che
unisciti ad agosto ricevono questo e questo è
cosa si è scoperto che non c’era
funzionalità all’interno di questo corso a
fallo automaticamente così eravamo solo
cliccando e assegnandoli manualmente per
ogni nuovo membro che era semplicemente pazzo
perché così tante persone sono diventate patrocinatori
e mi sono unito al forum Sono morto ma mi piace
era molto più di quanto avessimo previsto così
si è rivelato un enorme mucchio di lavoro così
Sono solo programmatore, abbiamo un codice questo
ed è per questo che io, perché sono finito
Costruire questo forum Automator
e poi come qualcuno ha chiesto se c’era
un punto di integrazione per costruire quello è
questa funzionalità di mappa l’ho appena lanciato
insieme perché ho pensato che sarebbe stato
divertente perché è molto facile per le persone
costruisci costruisci cose nuove sopra così
quello che faremo oggi sei tu
nota qui che questa è un’introduzione
thread quindi questo è un argomento di minaccia che noi
sto inviando persone a questo così nel
Grazie per il patreon che dice
che oh tu dovresti prima cosa tu
dovrebbe fare è andare alla presentazione
presentarti un argomento sul divertimento per
forum e scrivere un po ‘ su
te stesso che è solo un bel po ‘
cosa fare e io questo è fantastico ma cosa
Mi piacerebbe fare
è quello di avere un badge extra qui che dice
introdotto e avere il distintivo del pipistrello collegato
a quello al post di introduzione e io
pensa di poterlo fare perché c’è un
bla bla bla vediamo vediamo come
questo funziona se lo faccio se lo faccio
manualmente
andiamo al divertente forum di divertimento e calma
andiamo nell’amministratore, fai clic su admin
vedi le patch hmm come faccio questo forse io
vai nell’utente e vado ai badge qui
forse oh no, devo cliccare su admin qui
Penso che i distintivi di Eddy vedano cosa puoi fare
la prova dell’API del distintivo evita la ragione oh sì questo
questa è la funzionalità che puoi
puoi assegnare badge e poi puoi anche
assegnare un motivo che è un collegamento a un
post o un argomento, quindi prima creiamo
il badge che vogliamo assegnare
persone che si sono presentate
così introdotto introdotto e distintivo
argento sempre oro suppongo
raggruppa un’altra descrizione più a lungo
descrizione e questo è il distintivo che
ottieni automaticamente quando presenti
te stesso nel thread introduttivo
argomento che conosci come nel discorso
i thread sono chiamati argomenti ma non posso
fammi dire argomento sono così abituato al
vecchio PHP BB e vbulletin world where
erano ma che cosa si sarebbe fatto
chiamata thread ho sempre ricordato questo
meme hey ragazzi cosa sta succedendo
infila questi ehi ragazzi cosa sta succedendo
su questo amico
hey ragazzi cosa sta succedendo che cos’è
anche oh è così yeah, va bene così ora
penso che abbiamo un po ‘di circa
Orion true goose no oh non ce l’ho fatta
eppure ero a lungo nella scheda sbagliata
descrizione Non lo pulisco a lungo
descrizione uh chi ha bisogno a lungo permesso
distintivo da usare come titolo quindi questo noi
non serve che possa essere concesso multiplo
volte non sicuro Bertram public badge page
Sì mostra il post che concede il badge sul badge
che cosa concedere il tuo badge con il post
pagina sì sì vogliamo che quello sia il
tutta l’ idea e vogliamo anche abilitare
il badge non è disabilitato nel
sistema perché questo corso viene fornito con
questa quantità folle di cattivi davvero
come i badge di default e sono timidi
quindi li ho disabilitati tutti fanno
introdotto un punto esclamativo in alcuni
punto che sto per creare un iPhone ma
non è quello che faremo oggi
perché vogliamo anche arrivare alla codifica
proviamo ad assegnare un badge a
questa persona dov’era Frank brillare bene
un piccolo mento blu vado al suo nome utente
Oh
click click Voglio dire e da qualche parte è il
distintivi distintivi introdotti voglio
assegnare un motivo per tale interazione
cerchiamo di trovare il post di interazione da utilizzare
te stesso e va bene, ha fatto Feng Shang
questo come trovare il link al
post è questo sì facciamo clic su questo carico
uno
e ho inserito questo e lo concedo
vediamo cosa che sembra ora questo
oh sì, come gli aggiornamenti è molto
bella caratteristica con questo corso rispetto
agli orrori che è il youtube
sistema di commento che aggiorna le cose
automaticamente quindi se clicco qui arrivo
all’introduzione sì, non il più bello
Pensavo che il flusso sarebbe stato bello
presto, se clicco presentato, vado a
questo e quindi questa è la ragione ma a
meno ma quello che voglio con questo è un
modo ragionevolmente facile per se qualcuno ha
ho scritto una presentazione raccontando un po ‘
un po ‘di te Voglio altri membri
essere in grado di trovare trova quel post
ragionevolmente facile senza fare tutti i tipi
di magia e questa cosa la penso
fa il lavoro ma ancora non voglio
fai questa piccola danza per ogni singolo
utente, quindi lo automatizzeremo
usando il prima motivatore che siamo
usando per tutti i tipi di cose due cose
in realtà, ma questa sarà la terza ora
Ho intenzione di mostrare il codice in un po ‘
ma prima parleremo di a
un po ‘come faremo così se
Salto alle API qui è immediatamente
andando a mostrarti la mia chiave API segreta
che rigenererò dopo questo
video quindi sì, non è qui
stiamo guardando stiamo guardando il web
ganci qui e così questo corso ha questo
cosa in cui puoi configurare i web hook
che pubblicherà per pubblicare i dati su ogni
tempo succede qualcosa sul forum
qualcuno pubblica qualcosa che qualcuno aggiorna
il loro profilo qualunque cosa vada a finire
questo questo web hook qui e io posso
ispezionare alcuni dei carichi utili qui e
forse posso andare in questo, spero
niente di segreto questo è un
post creato cosa ed è un nuovo
post di Christian e roba che ha
scritto oh lo ha supposto al lui
ha inviato un video per essere una parte
del divertimento del forum divertente benvenuto ai video lotti
di cose che accadono
è una scadenza oggi, domenica, dove sono
registrandolo domenica quindi se lo sei
vedendo questo è troppo tardi per essere nel
video scusami per quello, ma questo è
il modo in cui è inserire questo enorme blob JSON per
il gancio Web e questo gancio Web
è così rimasto qui per il moderatore schwarz
lavoro sul web e questo è il lavoro che stiamo facendo
per dare un’occhiata ora quindi questo è il
codice per il web hook se sei abituato
esprimere ciò non sembrerà particolarmente
strano Express è uno sviluppo di app
cosa per fare cose di back-end con
nota che aggiunge molto utile
funzionalità al top di vanilla node it
ha un sacco di parser JSON e presto
codifica e gestisce tutto
cose di sicurezza di origine del dominio che è
disabilitato lì e sì roba del genere
è utile ciò che non è standard
qui dalle normali configurazioni Express è
che vedi questa funzione di avvolgimento qui
quelle orecchie mi fanno sobbalzare un po ‘perché
Sto facendo un’iniezione di dipendenza qui
[Musica]
guarda all’indice vedi rap così questo è chiamato
esprimere un mestiere cantare e tutto ciò che fa è
per permettermi di usare un sincrono
funzioni e invece del normale
richiedere una risposta in modo da poter fare un peso
qui se vuoi controllare una sincronizzazione
funzioni di peso su cui ho fatto un episodio
che l’ ultima settimana o due no no la settimana
prima che in entrambi i casi è possibile fare clic su di esso
ma ricollegalo alla fine se clicco
ci sto andando a passare attraverso questo
funziona in un po ‘ma noto
qui che non funziona ho questo
cosa qui che controlla la validità
della sua richiesta valida ma la cosa è
questo è il valore della richiesta che in realtà è a
funzione che dovrebbe essere passata
la richiesta ma in questo momento sono solo
verificando se è falso quale sarà
mai essere e poi viene instradato in modo tale volontà
mai essere colpito perché la richiesta è valida
esisterà sempre perché è un
funzione quindi dobbiamo farlo ma no
proprio adesso
perché non lo fai così che cosa questo codice
fa è che mi permette di chiudere questo
barra laterale è che accetterà un post
per tagliare il webhook come vedi nel forum
nella sezione webhook vedi che questo è
la destinazione del post che
riceve riceve tutti i dati e questo
controllerà le intestazioni per questo questo
intestazione speciale chiamata X evento discorsivo
quindi se c’è un utente creato sta andando
per estrarre il nome utente e creato a
dal corpo dell’utente del carico utile
estrarrà i dati nel mese
e quindi assegnare lo spatch per
persone che hanno aderito in agosto
allora ho scritto bene questo speciale
ID partita per sempre qui la chiamata
perché ero pigro in quel momento e sì io
non ero pigro, ero efficiente nel tempo
Comunque
Chiamo questa funzione qui un segno distintivo
e prende un oggetto oggetto più tardi
con un nome utente e un ID di lotto e it
passa in questo ID speciale per sempre
e una volta fatto con l’assegnato
badge sta facendo un log della console dicendo a
progetto scientifico per ogni badge fai tu
nome utente e quindi invia lo stato ok
a meno che non ci sia un errore che poi
console.log l’errore e poi esso
farà uno stato di risposta 500 lo fa
più roba qui, ma si sa ciò che siamo
andando a ignorare questo per la brevità
di tempo lo farò probabilmente metterò questo
metti questo su Github in modo che tu possa
posso guardarlo se decido di farlo
il link è nella descrizione dell’episodio
quello che vedremo è guardare
all’interno di un segno distintivo qui quindi apriamo
quello su e vediamo un distintivo di segno Wow
Ti sto usando se dovessi cantare Visual
Codice di studio se ti stai chiedendo cosa
l’editor che sto usando non lo faccio particolarmente
lo consiglio o non lo consiglio è
solo un editor che uso mi piace che sia
non c’è niente che devi installare
funziona abbastanza bene fuori dalla scatola
e questo è il distintivo assegnato
funzione potrebbe sembrare un po ‘
funky se non sei abituato a inversione di
controllo perché sto facendo un po ‘di
iniezione di dipendenza qui se inversione
di controllo è un nuovo concetto per te e
specialmente se non l’hai fatto
JavaScript o forse non del tutto è possibile
controlla il mio episodio su inversione di
controllo facendo clic qui è anche in
la descrizione dell’episodio ma solo a
brevemente darti dove vuoi
quello che sto facendo qui è che questo fa un
segno distintivo qui non è il reale
funzione badge crea l’assegnata
funzione badge dopo che l’hai passata
dipendenze così come vedi qui in questo
questa funzione dipende da questi
due funzioni quindi ha bisogno di postare come
ACE su due e ha bisogno del discorso
Le API sono al fine di funzionare
ha anche bisogno di errore a meno bene, ma che
è quello che non ha alcun lato
effetti o stato o configurazione
opzioni quindi lo stiamo solo richiedendo
non ha bisogno di essere iniettato mentre questi
due devono essere iniettati che sto per mostrare
come funziona
appendere su dg2 Jean Jean Jean quindi se tu
Guardiamo cerchiamo di trovare il badge assegnato in modo
questo è dove creiamo l’assegnato
funzione di badge quindi questo è in realtà il
funzione batch assegnata, questo non è il
fabbrica o qualsiasi altra cosa si voglia chiamare
come questo è questo fare un segno distintivo è
quello che chiamiamo whoops file sbagliato è cosa
chiamiamo qui così vedete qui che noi
richiede un segno distintivo che sarà il
funzione di fabbrica e quindi passiamo nel
due dipendenze in quella funzione così
e questi sono definiti altrove così questo
è loro passato qui comunque
quello che sta succedendo qui è che noi facciamo un
corpo questo è quello che si suppone di
postare al discorso discorsi API in
per assegnare un badge c’è un utente
nome e ID partita e diamo un’occhiata
alla documentazione cosa farò questo
in realtà attracca il
punteggi API e distintivi circolari qui assegnati
un utente di scapolo, oh, penso che sia così
è un sistema di documentazione che loro
non so esattamente di cosa si tratta
è funky no Cece , sei come se lo carica
tutto ciò e penso che questi siano
grigio perché non ha caricato il
documentazione ancora nessuno sa cosa
questo è il sistema di documentazione
apri le specifiche API in attesa lì
finalmente assegnare circa il tuo utente lì così
ha tre tre parametri un nome utente
una stringa e l’ID del lotto e in e
poi c’è una stringa recente così io
supponiamo che questo sia il link al
posta sì così comunque crea quel corpo
e poi post che sì quel corpo come
adiacente a e pubblica quello al
Discorso un cattivo utente del PIL di JSON così
ciò che fa questa funzione è questo
effettivamente creato prende questo percorso API e
allora in realtà pozzi sul HTTP
Forum Forum Funfun e poi anche
appende sulle chiavi che è necessario
lascia che ti mostri quella funzione
vero rapidamente in modo che vedete qui che appena
Base di testo : questo è il percorso che ottiene
e poi va bene sulla stringa di query
che proviene da questo oggetto di query dove noi
avere questa chiave API e questa API
Username e anche questo funziona esattamente la
uguale alle altre funzioni
ha anche anche la dipendenza iniettarlo
ha le sue dipendenze iniettate vedi vedi
lei che recupera non è in realtà
richiesto qui è il suo essere
iniettato e ho anche iniettato la chiave API
e il conte di base nella funzione come
come dipendenza quindi la configurazione è
dipendenze in questo corso il tuo io
URL dell’API del discorso e recupero
[Musica]
cliccando in giro dove ero io oh sì che
erano in un distintivo di segno così dopo i post
per quanto riguarda l’ha fatto questo fine punto lo farà
errore a meno che non sia ok e privo di errori
okay è una funzione molto semplice lasciatemi
saltare in quello che ci vuole solo
accetta è una funzione che accetta un
risposta e poi una volta che se questo
lo stato della risposta non è corretto
ma oh ho aggiunto un login sporco
registro della console qui che si muoverà solo
getta genera un errore altrimenti
risolve la risposta più e
questo è fondamentalmente ciò che rende un firmato
lotto e fa questo sono parte di questo
funzione di piping qui su Ram de it’s
probabilmente sarà molto confusionario
tu a meno che non ti capiti di guardare il mio video
sui nuovi script di eco o eco proposto
operatore di pipe script di cui stiamo parlando
piping e la funzione di composizione si può
ti indirizzano a molti video ora ma
potresti voler controllare che sia
puoi trovarlo qui o nell’episodio
la descrizione è abbastanza fredda ma che cosa
fa è che combina il
queste funzioni in una e poi e
poi lo restituisce poi abbiamo intenzione di essere
lavorando molto con questo oggi sono
pensando a dove iniziare, facciamo noi
iniziare dal basso ed estendere questa marca
un segno distintivo o cominciamo in cima
sai che penso che vogliamo iniziare
in alto
oh aspetta aspetta, quindi vado
eseguire il backup in servizio che è l’Express
applicazione stessa e dddd dddd così noi
questo utente ha creato l’evento che vogliamo
guarda l’evento post creato vorrei
piace scoprire esattamente come quell’evento
sembra e il modo più semplice per farlo è
in realtà assicurati che succeda così
Sto solo facendo una cosa sporca, qui dico
che ti presento creerò
una risposta Qui sto testando e API
cosa integrazione non mi dispiace questo brindisi
Oh rispondi e poi salteremo
di nuovo nell’amministratore per i ganci web e
quindi saltare in questo registro di hook Web e
trova la richiesta qui questo dovrebbe essere il
uno e che qualcuno era davvero veloce no
questo è quello quindi questo è quello che siamo
guardare e andare solo per essere chiari
qui come clear sicuro o qualcosa da fare
per incollare questo in un file e sto andando
per prendere il carico utile qui sto per incollare
quello in giù qui in modo che ce l’ abbiamo
e lo chiamerò
l’ host di esempio ha creato txt qualunque e
e se guardiamo a questo vediamo che
ha questo un post sull’evento discorso X.
creato in modo che iniziamo con il furto
quello potrebbe essere affrontato ed è molto
di se istruzioni byte
mmm-forse trasformalo in interruttore più tardi o
qualcosa che so
altrimenti se hmm ho rovinato
oh pisciamo su di esso e poi scivoliamo
prendi e prendi questo qui questo è questo
l’applicazione finora è stata costruita molto
rapidamente, quindi è molto sporco hackerare noi
potrebbe aggiungere un po ‘di iniziare
aggiungendo un po ‘ di unit test a questo
app perché sta diventando complessa
rapidamente questa è la cosa con i test unitari
sei tipo quando sei molto stressato
fuori e hai bisogno di ottenere qualcosa
veloce tendi a dirti bene questo
applicazione è sì questa cosa semplice
non è così, non è così
complicato , io non è solo uno
percorso non ho bisogno di poterlo testare manualmente
per ora e poi diventa lordo in do
cose complesse molto velocemente è solo
è quasi sempre meglio aggiungere solo
test unitari dall’inizio o semplicemente
salvo così tanto tempo comunque non l’ ho fatto
che vediamo cosa questo assomiglia
okay, quindi chiedi al corpo utente blah che vogliamo
al corpo non sai cosa non è
non è giusto utente è qualcos’altro
è un post quindi il post contiene cose
cerchie circolari messaggi di corpo così abbiamo il
posta pagata
Sono incoerente con sinistra e Const
anche qui – la nostra macchina fotografica viene strappata
l’intero tipo di Const di adesso quando
Sto solo facendo i miei progetti Sono in
la faccia in cui uso mi lascia molto perché io
voglio solo che mi piaccia l’idea del non
mutabilità ma non è come sono
completamente immutabile e mi piace l’ idea
di avere una sola parola chiave a
sidenote um anche a saltare tra i file
molto qui ci dispiace gente andiamo e
controlla qui i dati cosa siamo noi
voglio che vogliamo vedere se questo è un post
prima di tutto se questo è post in
l’argomento della discussione introduttiva
posso vedere quale argomento lumaca Oh fantastico
qui è in realtà questo è fantastico questo
slug argomento qui presentarsi no
pensa che questo cambierà questo non lo è
programmazione di livello industriale che stavamo facendo
nei loro capelli ma vedi introdotti
presentato sì, stiamo cercando il
argomenti come slow era quel giusto argomento
slug sì, se lo slug degli argomenti del post è
presentarti poi andremo a
fai quello che poi sappiamo che ora sappiamo
che abbiamo un post introduttivo così noi
vuoi creare un batch per l’utente che
creato
quindi quello di cui abbiamo bisogno è il nome utente di
utente per iniziare con la sua cosa
Sì , è proprio qui, molto utile
solo il nome utente
pom pom pom possiamo iniziare a estrarre
questi come variabili in realtà nome utente e
vogliamo che il log degli argomenti non ne abbia bisogno
più così ora possiamo davvero iniziare
utilizzando questa funzione attendo il badge di un segno
scusa aspetta un cartello ah, quindi mi dispiace
saltando in giro come uno scoiattolo
distintivo firmato e ho intenzione di chiudere questo
firmare la barra in modo che non lo siamo
distratto, ho intenzione di assegnare il
username e stiamo per assegnare il
ID batch sapete di cosa sto solo andando
codice duro che pure troviamo il
batch che ho creato prima dov’è
aggiornamento iniziale
l’ho trovato ed è l’ID 104 che copia e
incollalo lascialo qui per ora
in realtà lascia l’introduzione introduzione
ID tessera uguale a 104 Ho incollato qui e
ora vogliamo passare anche il link
al post stesso qui così noi
bisogno di un motivo e questo è collegato qui
post Earl ma questo non esiste ancora così
dobbiamo capire dove trovarlo
perché dove dove dove dove dove
dove, quindi, diamo un’occhiata all’esempio
Taillow che ho catturato da prima, okay
c’è un link qui da qualche parte
bla bla bla bla bla bla no c’è
non c’è un trattamento e lo fa
senso suppongo, ma c’è un ID così noi
può costruire il link post I
supponiamo diamo un’occhiata a come loro
sono strutturati cerchiamo questo link qui
copia questo link mi dispiace per il
Sistema operativo svedese e poi
incollandolo qui hmm ok, c’è un
molte cose in questo hmm bene lo sai
cos’è questo 23 così mi aspettavo lì
essere quella scrivania di esistere ma non lo so
esattamente quello che è questo è il post
la parola è questa 23 Sì, questo è il
post 23 cosa succede se inizio a rimuovere
le cose qui se prendo questo e lo rimuovo
quello che succede oh no no no questo fa
non funziona, aspetta
post id 5624 post numero 27
questo è il numero di post va bene così ho bisogno
il numero di post e il bit in cima ecco
l’ ID argomento di cui abbiamo bisogno anche noi e noi
bisogno gli argomenti tempo devo però posso
diciamo che se ho scorrere verso il basso
qui e copio questo linker e mi muovo
questo utente mpj probabilmente non lo vogliamo
che indovina se rimuovo l’argomento
slug qui in realtà non hanno bisogno che per essa
lavorare
non ho fatto aggiunto che da solo ti permette di
in realtà basta provare di nuovo a farlo
certo si figo che è solo qualche ricerca
cosa di ottimizzazione del motore lo sta facendo
sembra buono, quindi ho bisogno di estrarre il
l’ID argomento e il numero del post e
quello funzionerà come il lavoro per il conte
quindi abbiamo il primo numero e il
ID argomento sotto il segno di sottolineatura, quindi sono
solo per appendere in modo falso ID e il
Dio mi ricordo come un post di pesci rossi
numero ci andiamo e il post Earl è
sarà per cancellare questo non abbiamo bisogno
questo registro per farlo funzionare e noi no
bisogno che o e ho intenzione di fare
questo in quello che è questo modello chiamato
stringa di cose letterali in entrambi i casi che posso fare
inserire variabili e stringhe come questa
e l’ID argomento prima poi il post
numero vai pensi che non ci sia
questo è il post Earl, me ne vado
questo hard-coded in per ora non è
peccato che questo non lo sarà
sviluppatore dell’anno non preoccuparti
aggiungeremo un test a questo ma io
non è vero? Sono un grande sui test
primo
in molte situazioni in cui ho il controllo
per l’intera funzione cosa sta facendo
Mi piace molto fare TDD ma dentro
casi come questo in cui sono così incerto
del dell’API tendo a scoprire che
è meglio hash che cosa è che
stai facendo e una volta capito
come funziona è meglio aggiungere aggiungere il
prova perché semplicemente non conosci il
cosa abbastanza bene da fare un test in anticipo
in entrambi i casi, tuttavia, c’è un caso
qui se l’argomento slug non viene presentato
te stesso non vogliamo fare nulla
con questo non ci interessa questo
particolare post ha creato eventi che non abbiamo
cura di tutti gli altri post in
mondo, quindi stiamo per tornare
stato 200 carry on si tratta di un sacco di
duplicazione di questo proprio ora in questo
codice quindi dovremo fare
qualcosa su questo alla fine ah ma
se sei nuovo nel mio canale lo saprai
che io sono grande nell’attenderne un sacco
duplicazione prima di rimuoverlo perché
che ti permetterà di vedere il generale
caso molto più chiaramente e lo permetterà
per fare un generale molto migliore
soluzione che se solo prematuramente
generalizzato non appena ne hai visti due
istanze duplicate okay um
prossimo passo prossimo passo prossimo passo sai
quello che penso sia il prossimo passo
in realtà per rompere questo e ottenerlo
e lo faccio sotto test ma non lo sono
super sicuro di cosa sia l’ interfaccia
dovrebbe essere
Direi che immaginiamo questo
era un gruppo di funzioni e noi siamo
andando a chiamarlo figo è qualcosa
come manico post creato penso pom pom
pom pom e poiché questa è una fabbrica
questa funzione deve essere una fabbrica
funzione perché ha dipendenze
dipende da un lotto firmato, quindi noi
fare l’inversione del controllo e
iniettalo se non sai perché sei
capirò perché un po ‘
quando scriviamo i test per questo
vedi ok diciamo che potrebbe essere la sinistra comune
gestire il post creato e ne ha alcuni
dipendenze ha il lotto assegnato
e penso che sia l’unica dipendenza
e la funzione effettiva avrà a
firma di cosa ha bisogno ha il
introduzione ID dentro di sé e io
penso che possiamo tenerlo lì, questo no
deve essere configurabile questo non lo farà
cambiare realisticamente post Earl it
crea che da solo ha bisogno del
nome utente ha bisogno dell’ID argomento e it
ha bisogno del numero di host e ha anche bisogno
l’argomento slug per sapere se dovrebbe
dovrebbe assegnare un lotto se questo
è nel e nell’introdurre te stesso
da questo nell’introdurre te stesso
argomento va bene così gli argomenti sono vagabondi
bum bum bum bum
ha bisogno di un nome utente ha bisogno dell’argomento
slug ha bisogno del numero di post e it
ha bisogno dell’ID argomento questo è quello che siamo
lavorare con questa è la funzione che
ci accingiamo a scrivere io sono effettivamente
di sapere che cosa io sono solo copia andando questo
qui per prima cosa ho intenzione di incollarlo
come commento è per darci un riferimento
implementazione di ciò che stiamo costruendo
una volta mentre stiamo scrivendo il test e
Sto per saltare fuori da questo file e
questo lo copio e ho intenzione di creare un
nuovo file lo incollo qui, salvalo
in modo da ottenere alcune evidenziazioni della sintassi
e puoi vederlo, ma lo sto chiamando
gestire post creato punto js così è ora
ecco cosa sta ottenendo anche un po ‘
disordinato
Lo manterrò fino a quando non lo avrò
deciso su una struttura che ha un senso
Non sto cercando di strutturare troppo
davanti sto aspettando la struttura
unire un po ‘altrimenti si tende a
basta posizionare le cose in strutture stupide
che sono difficili da cambiare in seguito lo sono comunque
andando a gestire il punto dot test creato
punto J sta per fare solo un test di moka
qui per iniziare il test moka Oh
nessun hang on handle post creati e
moka fa questa cosa dove il suo
funzioni all’interno di funzioni e cose e
quindi il caso di test della moka si presenta così
proprio come voglio vedere la moka
lavorando perché non ho moka in
posto qui non dovrebbe fallire ora tirare su
il terminale perché Visual Studio ha a
costruito nel terminale farò npm
installa save Sto andando a package.json
[Musica]
e aggiungeremo degli script che sto seguendo
per un test non aggiungere Boca posso solo
fai questo penso che la moka sarà giusta
trovare roba con test di prova OPM punto potrebbe
non trovare alcun file di prova corrispondente al modello
prova facciamo come il punto stella e il test di
jazz no sì che ha funzionato
continuiamo così per ora il
motivo per cui ho creato questo test npm è
che ii non ha installato mocha localmente i
appena installato nel
domanda quindi se scrivo il tuo fumatore
non funzionerà perché non è nel mio
portata globale tuttavia quando faccio questo hanno
negli script NPM qui avrà
accesso a mocha nel contesto di
eseguendo questo perché npm fa roba
internamente è molto utile e lo è
è bello non installare il mercato
globalmente, in entrambi i casi , chiudiamo Ho un
molte cose aperte qui lasciami chiudere
alcuni non ne hanno bisogno , no
non meritare al momento che sto andando
risparmialo, quindi abbiamo un post
credito non dovrebbe fallire perché è
solo alcuni test di stronzate che sto per fare
Cosa fare
Moka non guardare che faccio che non lo è
lavoro oh hey devo aggiustare la foto di
Jason grazie per vedere proviamo
Test NPM è bello ora penso che funzioni
ogni volta che cambio il file in modo così così
così così così così che cosa sto facendo oh lascia
gestire post ha creato la funzione che
stiamo testando che lo richiederemo
è una spinta creata e facciamo un
setup qui prima di ogni, quindi questo verrà eseguito
prima di ogni mossa in ogni caso di test e
avremo un post di gestione creato
ricorda che questo è in realtà il
fabbrica che rende il post di gestione creato
funzioni e ho intenzione di assegnare il tipo
ovviamente creato con make handle first
creato chiamandolo e poi passiamo
le dipendenze così in un quando siamo
userà questo e il reale
domanda che stiamo passando e il
dipendenze reali Ricordo l’unica
dipendenze che abbiamo effettivamente qui
viene assegnato il batch bom-bom-bom e un segno
questa è una dipendenza perché lo farà
ha un sacco di effetti collaterali e
boom boom boom quindi fingeremo di farlo
metti un segno batch e stiamo andando a
Ho bisogno di Zenon Zenon è una cosa da deridere
funzioni, e vediamo Sanam richiedo io
penso che siano appena sufficienti molti arresti anomali
perché sanam non è installato quindi lo è
no, quindi sto facendo un sacco di cose qui
quindi non sto necessariamente spendendo molto
di tempo spiegando se hai domande
appena li postare nei commenti in basso
sotto c’è anche un più abbiamo un
collegamento personale al thread di discussione
su questo episodio in prima pagina sul forum
se sei un patrono dove puoi piacere
fare domande sul no-grintoso si
ricorda quando fai una domanda
sicuro di collegarti al punto temporale così
che le persone sanno esattamente dove tu cosa
stai chiedendo informazioni
blu blu blu blu
va bene vedere no richiede che tu sappia come
lo fai questo è penso che sia giusto
visto su punto fermi a volte ricordo
cose e io lo chiamo un lotto di insegne quindi io
firmalo alle dipendenze, così ora noi
è come se fosse stato creato il vero handle del post
funzione e quando chiamiamo quella maniglia
post creato ciò che stiamo testando qui
è solo che può essere freddo , chiamiamolo
e vedere se le cose funzionano ora ah NPM e
BM test e make handle post creato
non è una funzione ok guardiamo
il codice ora è vero perché lo siamo
non esportarlo quindi so che lo fai
più esportazione di punti Joel
perché le meccaniche create non possono corrispondere
contro undefined o no oh yeah
quindi gestire post creato vuole un
oggetto e non è in esso non è
ottenere un oggetto sta diventando indefinito
quindi dobbiamo passare un oggetto e ora
Funziona così così otteniamo la chimica che siamo
arrivare da qualche parte
ma guardiamo il nostro schizzo qui
voglio che chiami un distintivo con questo
roba qui quindi andiamo a dare un’occhiata alle chiamate
un lotto di segno
e volevamo chiamarlo con il
Username che abbiamo passato possiamo iniziare
con quello con il nome utente passato così
chiamiamo il comando handle creato con il
nome utente con nome utente nome utente e
allora andiamo a quello di cui abbiamo bisogno anche
Di Più
prova questo
okay, va bene, prova sembra avere
migliorato okay quindi un segno si aspetta il finto
lo stub un distintivo segno come funziona
e la stagione si aspetta ah sì aspettano saggio
tenere la larghezza è che penso che sia il
argomento e oggetti che ho chiamato dovrebbe
essere chiamato con questo dritto era
stub atteso per essere chiamato con
argomenti
che cos’è però no non era necessario
in realtà chiamarlo in modo che il test funzioni
badge assegnato Mi dispiace un segnale
firma il nome utente batch e ora funziona
ok , stiamo facendo progressi anche noi vogliamo
assegnare per passarmi chiamandolo con
ID partita 104
beh, sto solo andando a infornare questi
proprietà insieme a corretto
proprietà per fare l’ID di serie 104 va bene
vediamo qui che ora sta fallendo
magnificamente che oh questo non è corretto
lo chiamiamo con un nome utente ma
è come se lo chiami con batch
ID 104 e di solito in qualche nome utente noi
bisogno di risolvere il codice è inutile qui
ID distintivo popolare e passerà il prossimo
è che vogliamo che fornisca la ragione
giusto dovrebbe assomigliare a questo
incolla questo nel motivo del test e
vuole che abbia ID argomento e brindisi
numero sì sì, se chiamiamo questo dove il
argomento ID 5 o 5 e inserisci il numero 66
dovrebbe assegnare il motivo 5 a 5 e il
postare il numero 66 alla fine e non funziona come
aspettiamo che torniamo al codice e facciamo
la cosa attuale qui
topic ID e post numero whoops
aveva bisogno di quella cosa qui e naturalmente noi
bisogno anche di assegnare il motivo al
oggetto ed è ora Pat che dice freddo I
in questo momento abbiamo una dichiarazione if qui
non vogliamo fare il badge assegnato
se gli argomenti sono non è non è
presentati quindi assicuriamoci
che non chiami un distintivo di segno se
Non è corretto il registro degli argomenti che mi piace
capitalizza le non incluse nelle descrizioni
perché è difficile per gli umani trattare
con la negazione, così lui la rende fatta
è molto meno probabile che tu commetta
errori se ti piace chiamare il
negazione Sono una bomba quindi diciamo che noi
call handle post creato ma abbiamo a
topic slug che è qualcos’altro
ti presenti così alcuni dei loro
argomento slug quindi mi aspetto un segno che è stato
non chiamato e lo scrivo
[Musica]
aspetto che il metodo oggetto è stato chiamato sì
okay, ma come faccio a non dire che non era freddo?
come quello sì che ha funzionato aspettarsi questo
le cose non sono state complete ma cosa
chiamato tre volte di cosa si tratta
inaspettato
oh è perché non sto usando
riutilizzando lo stub tra ogni test I
dovrebbe ricreare lo stub ogni volta
facciamolo okay , sta ancora fallendo
ma in questo momento aspettatevi che questo non sia
freddo, ma quello che viene chiamato una volta è così
meglio, okay, torniamo indietro e aggiungiamo il
se la dichiarazione in modo che si ferma il test
rottura in modo che se gli argomenti registrano perdita slug è
non ti presento che torniamo
ma l’ho messo in cima che mi piace fare
programmazione difensiva come questa e mi piace
far terminare le cose sui casi limite
piuttosto che farli come quelli di Alice al
Alla fine ho ascoltato una buona razionalizzazione
sul perché, ma il mio cervello non funziona
abbastanza bene per chiamare che, in alternativa
modo mm-hmm ok ok roba prevista a
essere chiamato con argomenti questo è
in realtà l’altro test che sta fallendo
quindi il tester su cui stavamo lavorando funziona
bene ora ma il vecchio test è rotto e quello
è perché non ha un argomento
slot quindi dobbiamo dare questo risultato
questa chiamata completamente valida e ciò che era
ha chiamato è presentarsi vedere
che va bene tre passando per arrivarci
cool, lo trascinerò un po ‘
un po ‘per darci più spazio okay il prossimo passo
è che il badge assegnato qui è
in realtà solo andando via e facendo
cose che vogliamo davvero aspettare per il
errore pure e la cosa bella qui è
in realtà che assegna il badge restituisce a
prometto quindi fondamentalmente vogliamo solo il
funzione per passare la promessa su e
qualunque codice stia usando quella funzione
sarà quindi responsabile della negoziazione
con la promessa di cui abbiamo parlato
è una grande tecnica per passare l’errore
gestore che gestisce le parole di cui ho parlato
che in un precedente episodio è possibile
trova qui ma fondamentalmente vogliamo fare
certo che il lotto assegnato è appena ritornato
la promessa dal lotto assegnato
passiamo la promessa al
funzione di chiamata funzione buona sì
promessa dallo stesso lotto al
compostezza
se loro lo immergono lo intingono, è solo speranza
lo incolliamo per ora nei test è pari
più importante semplicemente aspettare
duplicazione per sorgere
Io normalmente in codice, aspetto almeno
tre casi prima di rimuovere la duplicazione
Ho trovato che essere gentile di un dolce
punto per quando si inizia a vedere effettivamente
l’attuale caso generale nei test I
ho scoperto che devi aspettare più a lungo
perché è più difficile da identificare
identificato il caso generale , quindi tendo a
aspetta almeno cinque o sei volte prima
iniziando a rimuovere i test di duplicazione
sì, quello che stiamo facendo vogliamo chiamare
noi chiamiamo la partita di segno che vogliamo avere
firmare che restituire qualcosa un assegno
lo scopriamo da Hannibal’s
regressione quindi mangiamo facciamo uscire e
vogliamo un segno distintivo chiamato
beh no, è solo con gli archi che non possiamo
basta fare questo ritorna
e noi dobbiamo fare una promessa falsa così
come possiamo semplicemente utilizzare qualsiasi oggetto qui
non importa, è solo un segnaposto
Oh il distintivo del segno restituisce la promessa falsa e
poi abbiamo il titolo e poi lo controlliamo
uscita prevista uscita uscita uscita a
sii promesso falso che mi sarei aspettato
non definito per eguagliare questa cosa, lascia che io sia
promettendo di fingere sì, sì, mi aspettavo
indefinito a uguale promessa falsa
In ogni caso, sto solo creando un falso
oggetto qui sto cercando di dargli un buon risultato
nome ahh buona struttura comunque prevista
sulla lotta per eguagliare sono una promessa falsa
perché in realtà non stiamo tornando
il compito restituisce un lotto firmato
quel lavoro si accende oh aspetta no
è oh sì perché sì, è ora
nel se questo è per il caso in cui
è un altro slug che introdurrà
te stesso ho intenzione di cambiare questo essere
la risposta corretta e ora lo farà
restituire la promessa del difetto perché
ora chiama il batch assegnato sì però
sebbene sebbene sebbene quello che succede
se voglio che questo sia affidabile
sincrono, voglio sempre che ritorni
una promessa perché altrimenti diventa
davvero strano chiamarlo vediamo, vediamo
Guardalo
e con restituisce una promessa quando noi
Dio Dio, io sono il mio cervello si sta sciogliendo quando
anche quando lo slog degli argomenti non è corretto
dannazione, ho intenzione di copiare incolla questo
l’argomento scorretto slug e incollarlo
qui ma questa volta lo stiamo verificando
l’uscita che voglio lasciare dopo il cappotto tira
fuori posto top-10 dovrebbe essere sì, è così
che puoi fare un test sincrono in
moka chiama una volta il callback fatto
hai finito, so che ci sono cose
che puoi chiamare puoi tornare
promette di camminare su di esso non è abbastanza
Non mi sento come se fosse parole di fiducia in
questo caso, comunque, non è nemmeno vero
arrivare così lontano perché non è così
restituendo qualsiasi promessa che devo fare
ritorna una promessa quindi ti prometti
punto risolvolo vero immagino
fresco e ora funziona perché eppure
risolve a tutto ciò che non realmente
cura del valore sai cosa sono
appena
aver risolto a qualsiasi valore perché noi
mai usarlo, volevamo solo essere
risolto e poi chiama fatto e quello
rende questo test riuscito se non avessi
chiamato fatto sarebbe scaduto il tempo
su
non sbattere forte penso che siamo ora
Non sono contento di questo posso rimuovere il nostro
il nostro codice di esempio qui mi sta bene con questo
e quello che farò ora è tornare indietro
fino al nostro mmm servire e scoprire dove
vogliamo così bene, qui è il nostro dove stiamo bene
ha scritto le nostre cose che ora sappiamo no
più a lungo abbiamo estratto alcuni dati
dal brindisi del corpo della richiesta , vogliamo ora
in realtà chiamiamo la funzione che chiamiamo
è stato gestito il post creato e noi
voglio passare queste cose su di noi
li chiamavano nomi leggermente diversi
perché questi sono nomi sottolineati e
nel nostro sistema stiamo usando il
convenzione del caso dei cammelli e così là
è chiamato topic slug anziché topic
slug mappandoli intorno e ID argomento a
argomento dall’ID argomento e quindi abbiamo
inserisci il numero per inviare il numero e penso
quello sarà sì penso che stiamo usando un
peso del platino qui in questo a questo livello
possiamo solo farlo
allora abbiamo finito davvero penso che sia così
va bene, lasciamolo fare
troviamo la torre oh questo è solo un
file schifoso buttiamolo via
ad esempio posta creato sarò tenere che
intorno nel caso ne abbiamo bisogno un po ‘
bit non ho intenzione di commetterlo
ok questa è la cosa che non ho mai risolto
facciamo in modo che per ora abbiamo aggiunto
un sacco di dipendenze sì sembra buono
credo
va bene, commettiamo ciò che abbiamo fatto
abbiamo implementato un batch di introduzione dei segni
e lo spingiamo al nostro github e poi
Farò anche un pasticcio Heroku
Maestro, questo è il modo in cui ti schieri su Heroku
probabilmente divento molto carino è un po ‘
veloce ma questa parte è veramente lenta
non so perché è l’ avvio automatico di NPM
solo caching e roba da costruzione
dipendenze e dovrebbe essere distribuito
lanciato tutto bene, vedi se mi sono rotto
qualcosa di orribile ora andiamo ad admin
e vediamo di tornare al
presentati te stesso thread rushing just
per i calci ho le introduzioni
patch okay ho questa corrispondenza test API
questo è da qualche altra idea di prova, facciamolo
Effettua effettivamente un altro test su un’altra API
test non mi importa testare in diretta
ambiente è il mio numero uomo
vediamo che siamo così fortunati che ho avuto il
distintivo no perché non va bene
cos’è successo a dare un’occhiata?
presso l’API e guardare a ciò che succede a
il webhook va bene, abbiamo un errore di 500
si è schiantato quindi questo è un evento creato post
diamo un’occhiata a guardiamo tutti
il log di Heroku registra i log Questo solo
dovrebbe darci ok, aspetta, questo è un po ‘
altre cose bene
gestire post creato non è un divertimento sì
doh okay forse avrei dovuto provare questo
localmente ma è difficile con um web hook
non è così difficile quando mi aggancia
potrei avere il passato che ho il tutto
tutta la richiesta di capelli potrei simulare
questo usando arricciatura o qualcosa che sono giusto
pigro sì
okay, il problema è qui che andiamo
trova questa cosa non è una multa
perché non è definito ciò di cui abbiamo bisogno
fare è passarlo in servire in modo da servire
aggiungerò questo come una dipendenza a
servire ciò che è servito
così servire è un altro uno di questi il
inversione delle funzioni di controllo che sono
facendo così il livello superiore in realtà non lo è
servire è in realtà indice quindi nell’indice noi
stanno per appendere dopo il lotto del segno
perché dipende da una bandiera
corrispondenza che faremo per gestire la posta
creato e stiamo per richiedere
gestire post creato e di nuovo questo è
in realtà non gestire il post creato questo è
l’ aveva un post fantastico creare la fabbrica
funzione che prende le nostre dipendenze e
e ricorda solo una dipendenza
sì è dipendente dal segno lotto
e lo stiamo passando così tanto in poi
gestire il post creato perché è necessario
passa dentro per servire perché servi
dipende da come post creato
è il motivo per cui abbiamo avuto un problema prima e ora io
penso che questo dovrebbe funzionare I on e siamo
spingendo quello per ottenere e lo siamo anche noi
spingendolo a Heroku Wow
Get Push Heroku, la mia fermata
battere le mie stupide cose di integrazione API
si, posso davvero
riprova questo post creato cosa ho appena
prendi il tuo riconsegna e vedi se funziona
questa volta non guardare
Heroku registra
Oh molte altre cose stanno succedendo
riferimento e
riferimento il loro numero di posta non è
definito all’osservazione 59 oh sì, io io
avrei potuto vedere che stava arrivando
va bene sistemando cose che spingono a spingere
Heroku di nuovo a posto
facciamolo ricetrasmettitore ah si voglio
riconsegnare
sembra che sia ancora un BAM da 500 blocchi oh
ecco alcune RAM de cazzate
eccezioni sì, penso che sto diventando molto
vicino al punto in cui ho davvero dovrebbe
essere in grado di appena finto questi ganci web su
il mio sulla mia macchina, ma io non sono abbastanza
pronto a farlo, ma ho intenzione di farlo
console.log gli argomenti out Oryx
forse opta che lo chiamiamo orribile
debugging di produzione e stiamo facendo un
concerto di sicuro non l’ho effettivamente registrato
fuori oh mio dio sono orribile orribile
orribile orribile orribile sono solo
scavando me stesso in un buco qui argh
almeno ho commesso la cronologia, ma spingo
il tuo maestro mi rendo conto durante questi periodi
andare le cose è che voglio farlo in un
periodo di tempo ridotto ma anche quello
significa che mostro solo un sacco di cose orribili
abitudini orribili perché non spendo
abbastanza tempo con esso e io tipo di
ho scritto qui alcuni test unitari ma questo
significa anche che non stiamo ottenendo abbastanza
per la carne di esso ho voluto mostrarne alcuni
alcune funzioni di composizione e noi siamo
solo non farlo consegniamo il
endpoint vediamo bene, vediamo il
i registri mi danno di più
informazione
oops nome utente ID e il motivo
pensa che questa ops sia sembrata a loro
sembrava davvero bello davvero così è
interessante quindi guarda questo assegnato
lotto forse ho qualche problema in
incarico forse l’ho rotto ieri
qualcosa oh , in realtà non stiamo passando
passando questo in quello non dovrei non farlo
sento che ciò dovrebbe essere importante
siamo come quello che sto per ottenere
ecco questa ragione non è in realtà
essere passato a fare un segno
distintivo ma questo non dovrebbe cambiare le cose
okay, in realtà vediamo qual è il problema
qui oh stiamo davvero facendo un po ‘
coppie qui posizione funzionale qui
ma stiamo iniziando con uno dei peggiori
cose con composizione di funzioni e
quello è che è orribilmente difficile da debugare
perché non è colpa di
la composizione della funzione di per sé è solo una
foto di lambda intendo questo Ram de you
potrebbe aver reso questo molto più bello
messaggio della partita aerea ma cosa sta succedendo
vedi qui che questo l’ho riflesso
ieri ed è per questo che si è rotto e io
non l’ho testato correttamente. pipe P is a
funzione in RAM de che crea a
catena di funzioni di altre funzioni così
creerà un nuovo ritorno
funzione che prenderà qualsiasi valore
viene passato ad esso e poi sta andando
per passare quel valore alla prima funzione
qui fai corpo così ogni volta che chiamiamo il
assegnare la funzione badge che chiamerà
corpo con questi due argomenti ed è
andando a prendere quello che ottiene da quello
Da questa funzione e trasmetterla alla
la prossima funzione e così via è quello che PI
fa ma questo è PI P e PI P fa
esattamente questo
cosa tranne che si aspetta ogni
funzione per restituire la promessa e quella
è quello che ho perso qui così che cosa ho bisogno di
fare è solo fare questa promessa non risolvere
Blatt un segno distintivo non è ancora in fase di test
potrebbe e quello più tardi ma per ora andiamo
concentrarsi sulla risoluzione del problema bum bum bum
promessa bum fissa fare un segno in batch questo
significa anche che molte persone non hanno
ricevendo i loro distintivi di
Fantastico perché questo ha fallito, ho bisogno
per fare qualche lavoro di riparazione più tardi, ma quello è
non è un problema spingere così noi
ancora non ho una ragione, ma mi aspetto
questo per funzionare ora
ha detto le ultime parole famose
sì 200 funziona così diamo un’occhiata a
il test API che ora avrei dovuto ottenere
il gruppo di interruzione che ho fatto, ma è
in realtà non si collega a nulla
e questo perché manca carente
una ragione per cui assicureremo che a
firmare batch sta anche passando in una ragione
passiamo nel motivo che abbiamo passato che ottieni
spingere il maestro di razzo così ora sto andando a
rimuovi questo distintivo da me
i distintivi attendono
rimuovi la corrispondenza del test API mentre sono a
revoca il distintivo tutto bene
terminologia e penso che posso solo
ora vai al dispiegato eppure ha
schierato penso di poter leggere solo il fegato
questo immediatamente funziona
funziona funziona?
guarda questo
concesso presentarsi opere
Okay fantastico, quindi adesso funziona
non abbiamo fatto molto funzioni
composizione che era ciò che ho promesso
tu
in questo episodio vediamo se possiamo avere un
guarda il motivo per cui non abbiamo fatto
molta composizione è perché c’è
già ho già fatto un sacco di
composizione della funzione in questo in questo
progetto e la funzione che abbiamo appena
creato un post di handle creato come c’è
non un sacco di roba in corso in esso in modo
non c’è nulla di bianco che possiamo
per comporlo voglio dire che lo siamo già
già usando questo batch assegnato all’interno
di così noi in un modo stiamo componendo
funzioni funzioni già forse sono
Sono appena tornato in linea questo
nella dichiarazione di parcheggio penso che noi
potrebbe solo andare in una patch di segno e
svelare questa composizione di questa funzione
qui per darti un’idea di cosa sia
sta succedendo così abbiamo il corpo del make mmm
okay facciamolo, sto riscrivendo
questo tu senza usare le tubazioni
la funzione lasciamo solo fare che mi lascia
chiudere questo e chiudere questo così
prima di tutto ciò che questo ricorda è
che crea una funzione quindi cosa noi
è necessario prima restituire una funzione
e ho intenzione di commentare questo a
ricorda che questo è quello che siamo
lavorare con la prima cosa è che noi
quello che faremo è che lo faremo
una barca del corpo e poi siamo noi
anche bisogno degli argomenti qui sono i
opzioni e poi pubblicheremo
questo come JSON per un po ‘di droga
drogare la droga
e useremo questo discorso
API di euro e stiamo andando a passare in
corpo così questo è in realtà anche un esempio
della composizione delle funzioni ecco questa cosa
è un’altra funzione di fabbrica con cui
crea una funzione quindi cosa facciamo qui
è in realtà posa come Jason da usare o cattivo
solo punto finale creando questa funzione
qui e poi pubblichiamo il corpo qui e
allora questo potrebbe restituire un errore, così facciamo
allora perché questa sarà una risposta
anche e facciamo tutto bene lascia che ti mostri
quale errore a meno che non sia ok dentro
di nuovo l’ abbiamo guardato prima, ma di cosa si tratta
è è una funzione che prende un
risposta e controlla lo stato e a
codice su quell’oggetto e se così fosse
non 200 getta un errore così ciò che noi
in realtà potrebbe fare qui sì per riutilizzarlo
quindi possiamo effettivamente usarlo qui dentro
così e quindi possiamo effettivamente solo
restituiscilo puoi in realtà solo tornare
questo ma ho intenzione di scrivere a questo
rendere un po ‘più chiaro ciò che è
succede perché questo restituisce una promessa
o effettivamente restituisce una risposta
promessa promettente che si risolverà in a
oggetto di risposta quindi quando la risposta
la promessa si risolve quindi facciamo l’ errore
Lezione va bene e poi torniamo
perché questo e il motivo per cui noi
ritorno come questo è che non c’è noi
non sono davvero interessato a ciò che il
e dati dalla risposta perché noi
stiamo postando i dati all’endpoint qui così
come la vedi così è una specie di io
devo dire che ora lo scrivo
così quando ho il confronto
le funzioni si compongono abbastanza bene potrebbe essere
che questa funzione di pipe non è realmente
aggiungi molto o almeno aggiunge un po ‘
un po ‘perché questo sembra piuttosto interessante
sembra molto concentrato su ciò che fa
fa un corpo per il post
richiesta e poi pubblica quello come Jason
al discorso i distintivi degli occhi dell’utente di
Jason e poi errore a meno che non sia ok
errori come un segno batch oh mi dispiace
quindi questo è ciò che si chiama point free o
programmazione tacita è carina perché è così
focalizzato su cosa è ciò che il codice intende
fare piuttosto che come assegnare
variabili avanti e indietro è tutto
leggibile con un buon peso, tuttavia la pipa P
è come avete visto è stato difficile per me
eseguire il debug perché i messaggi di errore di
queste funzioni composte diventano
a volte semplicemente orribile e proviamo a
vediamo se possiamo comporre le cose con
promette senza usare questo tubo P
semplicemente divertente quindi abbiamo questa risposta
corpo che stiamo creando o scusate il
richiesta corpo proviamo questo invece
facciamo questa promessa non risolviamo
e così questo è il corpo e poi lo facciamo
usiamo questo BAM che è abbastanza bello
che funziona io sono magro, lo facciamo solo
Ehi, va bene, in effetti è davvero forte
in realtà è molto più bello di me
pensato che fosse così bello usare questo
cosa casuale ma ah quando fai promesse
puoi effettivamente incatenarli davvero
davvero bello, è bello, è un
un po ‘fastidioso che non sia così
chiamato potremmo fare qualcosa come chiamata
questo come il corpo di toast che farebbe e farà
così forse lo rende migliore
hmm Non so non so in realtà io
penso che sia stato davvero così perché
mi permetterebbe solo di farlo a
Posso usare le semplici funzioni freccia con una sola riga
fallo e poi dichiaralo come
funzioni freccia a linea singola e sì
è ricco
così è carino, è carino
spiffy quindi questo è esattamente lo stesso che
solo noi abbiamo il corpo qui se ci risolviamo
quella come una promessa perché è quello che
promessa dr. la canzone fa e poi pubblichiamo
usato come Jason per parlare dell’URI dell’API
a badgerstour Jason e poi chiamiamo un
errore a meno che non vada bene e se va bene
noi solo
restituendo la risposta è carina
carino e il motivo per cui possiamo
perché questo funziona così bene è così
queste cose sono molto componibili
funzioni in modo da errore a meno bene è molto
facile da riempire in un covo perché cosa
fa è che è solo un semplice
funzione che accetta un argomento
errori se è se non è qualcosa
altrimenti ritorna o il caso risponde
se lo usiamo all’interno di una promessa noi
in realtà non devo farlo, ma ho avuto
aggiungere che mentre stavo usando il
operazione di tubo, non credo di poterlo fare
rimuovilo perché sto usando l’aria a meno che
m’kay in altri posti che usano pipe II
ma guardando questo è questo
è un netto miglioramento rispetto a questo
questo è in realtà molto meno complicato
e contorto e io
Mi libererò anche della dipendenza eccessiva qui
Non ho bisogno di Ram de dentro di questo
funzione anche tu vedi qui come questo è
anche un grande esempio di una funzione
componenti dispiace anche questo è un grande
esempio di composizione funzione
URI API del discorso lascia che ti ricordi cosa
da qui crea solo un URI
un URI completo dal solo percorso quindi se io
hanno proprio questo percorso che lo farà
salderà sul dominio di fronte per
forum e tutte quelle cose e lo farà
salderà anche sulla chiave API e e
stringa di query mi dispiace la chiave API e
nome utente di cui ha bisogno come stringa di query
sul lato passivo si trasformerà il
percorso fino all’URL dell’API completa, ecco come
ritorna
e poi pubblichiamo Jason per postare Jason
a quello che farà è che sta andando
a oh questo sta portando un sacco di trasporto
qui quindi questa è solo una dipendenza
iniezione che abbiamo al livello più alto
ma poi perché abbiamo bisogno perché questo
la funzione ha bisogno di essere recuperata ma poi di cosa si tratta
è che ci vuole un URI di nuovo se tu
guarda qui questo è l’URI quindi oh scusa
oh sto saltando in giro confondendoti
mi dispiace dispiace corretto per
situazione così povera e poi crea
questo restituirà un’altra funzione
qual è la funzione effettiva che è
preparato con l’URI e questa funzione
è ora è questa funzione che oh io sono
pronto a postare questo URI specifico e
tutto ciò di cui ho bisogno da te è un corpo e quando
ottiene un corpo che fa il recupero e
fa postare il JSON e questo
mette il corpo è abbastanza carino , forse
ti piace lo estrarrò
rendere più evidente ciò che fa
questo crea una nuova funzione è una novità
funzione posta come Jason a distintivi vedere così
questo ora sarà davvero questo
funzione
questo accetterà tutto ciò che puoi
in realtà potresti farlo anche così
un po ‘se volessi riscriverlo
più un altro stile che potrei fare potrebbe fare
questa causa è Jason due distintivi e
questo non è male neanche io
è necessario restituirlo a causa di multiline
ma non ti accorgi che non lo è
nell’ordine naturale che creiamo
la funzione prima qui e poi assegna
potremmo fare potremmo fare questo
potremmo in realtà farlo in questo modo
questo è strano
quindi post Jason a parlare dell’URL dell’API e
allora passeremmo nel corpo ed è
va bene non è assolutamente terribile
ma è un po ‘contorto e penso
quello qualcosa la versione originale
dove abbiamo appena fatto questo è piuttosto lucido
bella chiacchierata sì, è per me questo è
molto leggibile come catena spero che questo
YouTube forse e vedo anche di nuovo come
vedi qui questo sta usando curry così
la prima volta che entri per la prima volta
chiama questa funzione per così dire che chiami
con le dipendenze che crea
un’altra funzione che è il reale
funzione che restituisce ciò che accetta
gli argomenti e ma è stato
preparato con quelle dipendenze il
processo anche Jason è ora a causa del
disponibile la potenza delle chiusure
ecco quindi se torno all’indice ti mostro
come funziona
siamo qui è il gruppo assegnato così noi
basta richiedere il lotto assegnato e poi
passiamo passando le dipendenze e
questo ci darà l’ effettivo assegnato
funzione batch in modo da poter visualizzare questo come
facciamo fare un segno distintivo
ciò richiede che questo non sia abbandonato su a
composizione della funzione questo è giusto
inversione del controllo in un funzionale
stile ma ti dà un senso
Mike, spero che aiuti a vedere queste cose
dove ho appena passato le funzioni in giro e
facendo tutto questo tipo di trasporto e
roba che potrebbe aiutarti a vedere come questo
tutto cade insieme e come lo fai
è più facile combinare e comporre
funzioni forse non sono forse anch’io
stanco a questo punto e appena coinvolto
le mie cazzate funzionali che non conosco
cosa ne pensi scrivere un commento in basso
di seguito se ti è piaciuto o non ti è piaciuto
questo si è rivelato essere lungo oh
Sì, pensavo di essere in grado di tirare
questo si spegne rapidamente ma non lo sono comunque
andando a firmare ora hai appena
ho visto un episodio di fun fun function I
rilascia questo ogni lunedì mattina via
200 GMT di solito non sono così lunghi
se ti piace, potrebbe piacerti anche
questo video che la macchina di Google
l’apprendimento pensa che faccia bene a te se tu
davvero come questo, per favore, prendi in considerazione
diventando un patreon cliccando qui
è una grande spiegazione del perché tu
dovrei essere mpj fino al prossimo lunedì
la mattina rimani curioso
fai un po ‘ di codice in cui soffio
in giro
aggiungi alcune funzioni di refactoring di un’app che io
e lo faremo con a
tema e quel tema è la funzione
composizione non stiamo andando solo a fare
composizione della funzione, ma io proverò a
mostrare un sacco di esso
Sono mpj e stai guardando divertente divertimento
funziona quindi cosa faremo
oggi più esattamente bene un paio di
settimane fa
è stato lanciato un divertente forum divertente che è il
premio principale per i patroni del divertimento
funzione divertente che puoi controllare
informazioni più su come diventare un
patreon patrono cliccando lì si
non devi essere un patrono per il tuo divertimento
questo episodio è giusto
completamente opzionale ma questo è il
contesto quindi c’è questo divertente forum divertente
calmo e questo è un forum di discussione così
ha una API davvero fantastica e in
sezione idee progetto ddddd no è dentro
la meta FFF quindi questo è qualcuno che ha avuto il
idea di qualcuno
è lui ha un nome Valis che è un
quattro membri avevano un’idea che potevamo
avere una mappa in cui tutti i membri della
codice del forum se vogliono posizionarsi
su una mappa del mondo e sembra davvero
lo ha costruito e sembra proprio questo
c’è un sacco di gente questo è molto nuovo
questo era come il latte ieri e bene
va bene così ha queste sovrapposizioni questo sono io
come un buon alce che è qualcosa di te
tendono a dire nella città in cui sono e
ecco Theodore in congedo parentale che mangia
polpette al mio tavolo IKEA e qui
sono le persone nel te
cos’è questo anche ciò che è questo
paese che non sono in ordine per questo lavoro
tipo di gettare insieme il mondo
API più felice quindi funziona così
perché è così fatto ma è così divertente
vai al tuo profilo in prima fila per
e ora ho aggiunto un’abitudine
campo in questo corso chiamato hackable
Jason quindi cosa succederà se metti
dati qui così metti Jason qui e questo
i dati saranno resi disponibili a questo
punto finale qui questo è pubblico
endpoint a cui chiunque può accedere e
quindi questo è solo un Jason in the JSON
oggetti legati ai nomi degli utenti quindi mio
nome utente è qui vedi come mappa utente
posizione geografica, didascalia, longitudine, mosse
e questo è come ADA I super-ostile se
sembri qui come le persone hanno immediato
abbiamo provato a fare attacchi di script
dentro di loro quindi se usi questa marca
sicuro di disinfettare i tuoi input e questo è
non significa persone che ho effettivamente detto
persone qui a mettere qui i dati JSON
è rompere per rompere le app di altri
i membri sono altamente incoraggiati ad insegnare
le persone a disinfettare i loro input su a
link a questo fantastico fumetto xkcd che è
a proposito di un po ‘di tavoli da biliardo
Dare un nome a tuo figlio robert drop table
studenti x caso è così buono ma quello
è che in realtà non è ciò che siamo
andando a parlare di oggi questo è come te
vedi qui questo è il forum Automator su
Heroku è un progetto davvero hacky
Ho appena buttato insieme molto velocemente durante
il durante la notte del patreon
lancio perché uno dei premi per
i primi avventori sono quelli che se tu
diventare un patrono durante il 31 di questo
mese che significa fino a quando
Non conosco le date che ho guardato nella mia
calendario fino a giovedì è l’ultimo giorno
ottieni questo lotto speciale che nessuno
altrimenti ti faccio vedere un esempio
diciamo collo di agnello qui ha questo
speciale per sempre membro di Eternity quindi lascia
ti mostro che andrò solo io
alcuni andiamo a presentarti giusto
scegli qualcuno qui guarda le dita
qui quindi notate qui che Feng Shang ha
questo speciale membro per sempre dell’eternità
distintivo e questo è solo gente che
unisciti ad agosto ricevono questo e questo è
cosa si è scoperto che non c’era
funzionalità all’interno di questo corso a
fallo automaticamente così eravamo solo
cliccando e assegnandoli manualmente per
ogni nuovo membro che era semplicemente pazzo
perché così tante persone sono diventate patrocinatori
e mi sono unito al forum Sono morto ma mi piace
era molto più di quanto avessimo previsto così
si è rivelato un enorme mucchio di lavoro così
Sono solo programmatore, abbiamo un codice questo
ed è per questo che io, perché sono finito
Costruire questo forum Automator
e poi come qualcuno ha chiesto se c’era
un punto di integrazione per costruire quello è
questa funzionalità di mappa l’ho appena lanciato
insieme perché ho pensato che sarebbe stato
divertente perché è molto facile per le persone
costruisci costruisci cose nuove sopra così
quello che faremo oggi sei tu
nota qui che questa è un’introduzione
thread quindi questo è un argomento di minaccia che noi
sto inviando persone a questo così nel
Grazie per il patreon che dice
che oh tu dovresti prima cosa tu
dovrebbe fare è andare alla presentazione
presentarti un argomento sul divertimento per
forum e scrivere un po ‘ su
te stesso che è solo un bel po ‘
cosa fare e io questo è fantastico ma cosa
Mi piacerebbe fare
è quello di avere un badge extra qui che dice
introdotto e avere il distintivo del pipistrello collegato
a quello al post di introduzione e io
pensa di poterlo fare perché c’è un
bla bla bla vediamo vediamo come
questo funziona se lo faccio se lo faccio
manualmente
andiamo al divertente forum di divertimento e calma
andiamo nell’amministratore, fai clic su admin
vedi le patch hmm come faccio questo forse io
vai nell’utente e vado ai badge qui
forse oh no, devo cliccare su admin qui
Penso che i distintivi di Eddy vedano cosa puoi fare
la prova dell’API del distintivo evita la ragione oh sì questo
questa è la funzionalità che puoi
puoi assegnare badge e poi puoi anche
assegnare un motivo che è un collegamento a un
post o un argomento, quindi prima creiamo
il badge che vogliamo assegnare
persone che si sono presentate
così introdotto introdotto e distintivo
argento sempre oro suppongo
raggruppa un’altra descrizione più a lungo
descrizione e questo è il distintivo che
ottieni automaticamente quando presenti
te stesso nel thread introduttivo
argomento che conosci come nel discorso
i thread sono chiamati argomenti ma non posso
fammi dire argomento sono così abituato al
vecchio PHP BB e vbulletin world where
erano ma che cosa si sarebbe fatto
chiamata thread ho sempre ricordato questo
meme hey ragazzi cosa sta succedendo
infila questi ehi ragazzi cosa sta succedendo
su questo amico
hey ragazzi cosa sta succedendo che cos’è
anche oh è così yeah, va bene così ora
penso che abbiamo un po ‘di circa
Orion true goose no oh non ce l’ho fatta
eppure ero a lungo nella scheda sbagliata
descrizione Non lo pulisco a lungo
descrizione uh chi ha bisogno a lungo permesso
distintivo da usare come titolo quindi questo noi
non serve che possa essere concesso multiplo
volte non sicuro Bertram public badge page
Sì mostra il post che concede il badge sul badge
che cosa concedere il tuo badge con il post
pagina sì sì vogliamo che quello sia il
tutta l’ idea e vogliamo anche abilitare
il badge non è disabilitato nel
sistema perché questo corso viene fornito con
questa quantità folle di cattivi davvero
come i badge di default e sono timidi
quindi li ho disabilitati tutti fanno
introdotto un punto esclamativo in alcuni
punto che sto per creare un iPhone ma
non è quello che faremo oggi
perché vogliamo anche arrivare alla codifica
proviamo ad assegnare un badge a
questa persona dov’era Frank brillare bene
un piccolo mento blu vado al suo nome utente
Oh
click click Voglio dire e da qualche parte è il
distintivi distintivi introdotti voglio
assegnare un motivo per tale interazione
cerchiamo di trovare il post di interazione da utilizzare
te stesso e va bene, ha fatto Feng Shang
questo come trovare il link al
post è questo sì facciamo clic su questo carico
uno
e ho inserito questo e lo concedo
vediamo cosa che sembra ora questo
oh sì, come gli aggiornamenti è molto
bella caratteristica con questo corso rispetto
agli orrori che è il youtube
sistema di commento che aggiorna le cose
automaticamente quindi se clicco qui arrivo
all’introduzione sì, non il più bello
Pensavo che il flusso sarebbe stato bello
presto, se clicco presentato, vado a
questo e quindi questa è la ragione ma a
meno ma quello che voglio con questo è un
modo ragionevolmente facile per se qualcuno ha
ho scritto una presentazione raccontando un po ‘
un po ‘di te Voglio altri membri
essere in grado di trovare trova quel post
ragionevolmente facile senza fare tutti i tipi
di magia e questa cosa la penso
fa il lavoro ma ancora non voglio
fai questa piccola danza per ogni singolo
utente, quindi lo automatizzeremo
usando il prima motivatore che siamo
usando per tutti i tipi di cose due cose
in realtà, ma questa sarà la terza ora
Ho intenzione di mostrare il codice in un po ‘
ma prima parleremo di a
un po ‘come faremo così se
Salto alle API qui è immediatamente
andando a mostrarti la mia chiave API segreta
che rigenererò dopo questo
video quindi sì, non è qui
stiamo guardando stiamo guardando il web
ganci qui e così questo corso ha questo
cosa in cui puoi configurare i web hook
che pubblicherà per pubblicare i dati su ogni
tempo succede qualcosa sul forum
qualcuno pubblica qualcosa che qualcuno aggiorna
il loro profilo qualunque cosa vada a finire
questo questo web hook qui e io posso
ispezionare alcuni dei carichi utili qui e
forse posso andare in questo, spero
niente di segreto questo è un
post creato cosa ed è un nuovo
post di Christian e roba che ha
scritto oh lo ha supposto al lui
ha inviato un video per essere una parte
del divertimento del forum divertente benvenuto ai video lotti
di cose che accadono
è una scadenza oggi, domenica, dove sono
registrandolo domenica quindi se lo sei
vedendo questo è troppo tardi per essere nel
video scusami per quello, ma questo è
il modo in cui è inserire questo enorme blob JSON per
il gancio Web e questo gancio Web
è così rimasto qui per il moderatore schwarz
lavoro sul web e questo è il lavoro che stiamo facendo
per dare un’occhiata ora quindi questo è il
codice per il web hook se sei abituato
esprimere ciò non sembrerà particolarmente
strano Express è uno sviluppo di app
cosa per fare cose di back-end con
nota che aggiunge molto utile
funzionalità al top di vanilla node it
ha un sacco di parser JSON e presto
codifica e gestisce tutto
cose di sicurezza di origine del dominio che è
disabilitato lì e sì roba del genere
è utile ciò che non è standard
qui dalle normali configurazioni Express è
che vedi questa funzione di avvolgimento qui
quelle orecchie mi fanno sobbalzare un po ‘perché
Sto facendo un’iniezione di dipendenza qui
[Musica]
guarda all’indice vedi rap così questo è chiamato
esprimere un mestiere cantare e tutto ciò che fa è
per permettermi di usare un sincrono
funzioni e invece del normale
richiedere una risposta in modo da poter fare un peso
qui se vuoi controllare una sincronizzazione
funzioni di peso su cui ho fatto un episodio
che l’ ultima settimana o due no no la settimana
prima che in entrambi i casi è possibile fare clic su di esso
ma ricollegalo alla fine se clicco
ci sto andando a passare attraverso questo
funziona in un po ‘ma noto
qui che non funziona ho questo
cosa qui che controlla la validità
della sua richiesta valida ma la cosa è
questo è il valore della richiesta che in realtà è a
funzione che dovrebbe essere passata
la richiesta ma in questo momento sono solo
verificando se è falso quale sarà
mai essere e poi viene instradato in modo tale volontà
mai essere colpito perché la richiesta è valida
esisterà sempre perché è un
funzione quindi dobbiamo farlo ma no
proprio adesso
perché non lo fai così che cosa questo codice
fa è che mi permette di chiudere questo
barra laterale è che accetterà un post
per tagliare il webhook come vedi nel forum
nella sezione webhook vedi che questo è
la destinazione del post che
riceve riceve tutti i dati e questo
controllerà le intestazioni per questo questo
intestazione speciale chiamata X evento discorsivo
quindi se c’è un utente creato sta andando
per estrarre il nome utente e creato a
dal corpo dell’utente del carico utile
estrarrà i dati nel mese
e quindi assegnare lo spatch per
persone che hanno aderito in agosto
allora ho scritto bene questo speciale
ID partita per sempre qui la chiamata
perché ero pigro in quel momento e sì io
non ero pigro, ero efficiente nel tempo
Comunque
Chiamo questa funzione qui un segno distintivo
e prende un oggetto oggetto più tardi
con un nome utente e un ID di lotto e it
passa in questo ID speciale per sempre
e una volta fatto con l’assegnato
badge sta facendo un log della console dicendo a
progetto scientifico per ogni badge fai tu
nome utente e quindi invia lo stato ok
a meno che non ci sia un errore che poi
console.log l’errore e poi esso
farà uno stato di risposta 500 lo fa
più roba qui, ma si sa ciò che siamo
andando a ignorare questo per la brevità
di tempo lo farò probabilmente metterò questo
metti questo su Github in modo che tu possa
posso guardarlo se decido di farlo
il link è nella descrizione dell’episodio
quello che vedremo è guardare
all’interno di un segno distintivo qui quindi apriamo
quello su e vediamo un distintivo di segno Wow
Ti sto usando se dovessi cantare Visual
Codice di studio se ti stai chiedendo cosa
l’editor che sto usando non lo faccio particolarmente
lo consiglio o non lo consiglio è
solo un editor che uso mi piace che sia
non c’è niente che devi installare
funziona abbastanza bene fuori dalla scatola
e questo è il distintivo assegnato
funzione potrebbe sembrare un po ‘
funky se non sei abituato a inversione di
controllo perché sto facendo un po ‘di
iniezione di dipendenza qui se inversione
di controllo è un nuovo concetto per te e
specialmente se non l’hai fatto
JavaScript o forse non del tutto è possibile
controlla il mio episodio su inversione di
controllo facendo clic qui è anche in
la descrizione dell’episodio ma solo a
brevemente darti dove vuoi
quello che sto facendo qui è che questo fa un
segno distintivo qui non è il reale
funzione badge crea l’assegnata
funzione badge dopo che l’hai passata
dipendenze così come vedi qui in questo
questa funzione dipende da questi
due funzioni quindi ha bisogno di postare come
ACE su due e ha bisogno del discorso
Le API sono al fine di funzionare
ha anche bisogno di errore a meno bene, ma che
è quello che non ha alcun lato
effetti o stato o configurazione
opzioni quindi lo stiamo solo richiedendo
non ha bisogno di essere iniettato mentre questi
due devono essere iniettati che sto per mostrare
come funziona
appendere su dg2 Jean Jean Jean quindi se tu
Guardiamo cerchiamo di trovare il badge assegnato in modo
questo è dove creiamo l’assegnato
funzione di badge quindi questo è in realtà il
funzione batch assegnata, questo non è il
fabbrica o qualsiasi altra cosa si voglia chiamare
come questo è questo fare un segno distintivo è
quello che chiamiamo whoops file sbagliato è cosa
chiamiamo qui così vedete qui che noi
richiede un segno distintivo che sarà il
funzione di fabbrica e quindi passiamo nel
due dipendenze in quella funzione così
e questi sono definiti altrove così questo
è loro passato qui comunque
quello che sta succedendo qui è che noi facciamo un
corpo questo è quello che si suppone di
postare al discorso discorsi API in
per assegnare un badge c’è un utente
nome e ID partita e diamo un’occhiata
alla documentazione cosa farò questo
in realtà attracca il
punteggi API e distintivi circolari qui assegnati
un utente di scapolo, oh, penso che sia così
è un sistema di documentazione che loro
non so esattamente di cosa si tratta
è funky no Cece , sei come se lo carica
tutto ciò e penso che questi siano
grigio perché non ha caricato il
documentazione ancora nessuno sa cosa
questo è il sistema di documentazione
apri le specifiche API in attesa lì
finalmente assegnare circa il tuo utente lì così
ha tre tre parametri un nome utente
una stringa e l’ID del lotto e in e
poi c’è una stringa recente così io
supponiamo che questo sia il link al
posta sì così comunque crea quel corpo
e poi post che sì quel corpo come
adiacente a e pubblica quello al
Discorso un cattivo utente del PIL di JSON così
ciò che fa questa funzione è questo
effettivamente creato prende questo percorso API e
allora in realtà pozzi sul HTTP
Forum Forum Funfun e poi anche
appende sulle chiavi che è necessario
lascia che ti mostri quella funzione
vero rapidamente in modo che vedete qui che appena
Base di testo : questo è il percorso che ottiene
e poi va bene sulla stringa di query
che proviene da questo oggetto di query dove noi
avere questa chiave API e questa API
Username e anche questo funziona esattamente la
uguale alle altre funzioni
ha anche anche la dipendenza iniettarlo
ha le sue dipendenze iniettate vedi vedi
lei che recupera non è in realtà
richiesto qui è il suo essere
iniettato e ho anche iniettato la chiave API
e il conte di base nella funzione come
come dipendenza quindi la configurazione è
dipendenze in questo corso il tuo io
URL dell’API del discorso e recupero
[Musica]
cliccando in giro dove ero io oh sì che
erano in un distintivo di segno così dopo i post
per quanto riguarda l’ha fatto questo fine punto lo farà
errore a meno che non sia ok e privo di errori
okay è una funzione molto semplice lasciatemi
saltare in quello che ci vuole solo
accetta è una funzione che accetta un
risposta e poi una volta che se questo
lo stato della risposta non è corretto
ma oh ho aggiunto un login sporco
registro della console qui che si muoverà solo
getta genera un errore altrimenti
risolve la risposta più e
questo è fondamentalmente ciò che rende un firmato
lotto e fa questo sono parte di questo
funzione di piping qui su Ram de it’s
probabilmente sarà molto confusionario
tu a meno che non ti capiti di guardare il mio video
sui nuovi script di eco o eco proposto
operatore di pipe script di cui stiamo parlando
piping e la funzione di composizione si può
ti indirizzano a molti video ora ma
potresti voler controllare che sia
puoi trovarlo qui o nell’episodio
la descrizione è abbastanza fredda ma che cosa
fa è che combina il
queste funzioni in una e poi e
poi lo restituisce poi abbiamo intenzione di essere
lavorando molto con questo oggi sono
pensando a dove iniziare, facciamo noi
iniziare dal basso ed estendere questa marca
un segno distintivo o cominciamo in cima
sai che penso che vogliamo iniziare
in alto
oh aspetta aspetta, quindi vado
eseguire il backup in servizio che è l’Express
applicazione stessa e dddd dddd così noi
questo utente ha creato l’evento che vogliamo
guarda l’evento post creato vorrei
piace scoprire esattamente come quell’evento
sembra e il modo più semplice per farlo è
in realtà assicurati che succeda così
Sto solo facendo una cosa sporca, qui dico
che ti presento creerò
una risposta Qui sto testando e API
cosa integrazione non mi dispiace questo brindisi
Oh rispondi e poi salteremo
di nuovo nell’amministratore per i ganci web e
quindi saltare in questo registro di hook Web e
trova la richiesta qui questo dovrebbe essere il
uno e che qualcuno era davvero veloce no
questo è quello quindi questo è quello che siamo
guardare e andare solo per essere chiari
qui come clear sicuro o qualcosa da fare
per incollare questo in un file e sto andando
per prendere il carico utile qui sto per incollare
quello in giù qui in modo che ce l’ abbiamo
e lo chiamerò
l’ host di esempio ha creato txt qualunque e
e se guardiamo a questo vediamo che
ha questo un post sull’evento discorso X.
creato in modo che iniziamo con il furto
quello potrebbe essere affrontato ed è molto
di se istruzioni byte
mmm-forse trasformalo in interruttore più tardi o
qualcosa che so
altrimenti se hmm ho rovinato
oh pisciamo su di esso e poi scivoliamo
prendi e prendi questo qui questo è questo
l’applicazione finora è stata costruita molto
rapidamente, quindi è molto sporco hackerare noi
potrebbe aggiungere un po ‘di iniziare
aggiungendo un po ‘ di unit test a questo
app perché sta diventando complessa
rapidamente questa è la cosa con i test unitari
sei tipo quando sei molto stressato
fuori e hai bisogno di ottenere qualcosa
veloce tendi a dirti bene questo
applicazione è sì questa cosa semplice
non è così, non è così
complicato , io non è solo uno
percorso non ho bisogno di poterlo testare manualmente
per ora e poi diventa lordo in do
cose complesse molto velocemente è solo
è quasi sempre meglio aggiungere solo
test unitari dall’inizio o semplicemente
salvo così tanto tempo comunque non l’ ho fatto
che vediamo cosa questo assomiglia
okay, quindi chiedi al corpo utente blah che vogliamo
al corpo non sai cosa non è
non è giusto utente è qualcos’altro
è un post quindi il post contiene cose
cerchie circolari messaggi di corpo così abbiamo il
posta pagata
Sono incoerente con sinistra e Const
anche qui – la nostra macchina fotografica viene strappata
l’intero tipo di Const di adesso quando
Sto solo facendo i miei progetti Sono in
la faccia in cui uso mi lascia molto perché io
voglio solo che mi piaccia l’idea del non
mutabilità ma non è come sono
completamente immutabile e mi piace l’ idea
di avere una sola parola chiave a
sidenote um anche a saltare tra i file
molto qui ci dispiace gente andiamo e
controlla qui i dati cosa siamo noi
voglio che vogliamo vedere se questo è un post
prima di tutto se questo è post in
l’argomento della discussione introduttiva
posso vedere quale argomento lumaca Oh fantastico
qui è in realtà questo è fantastico questo
slug argomento qui presentarsi no
pensa che questo cambierà questo non lo è
programmazione di livello industriale che stavamo facendo
nei loro capelli ma vedi introdotti
presentato sì, stiamo cercando il
argomenti come slow era quel giusto argomento
slug sì, se lo slug degli argomenti del post è
presentarti poi andremo a
fai quello che poi sappiamo che ora sappiamo
che abbiamo un post introduttivo così noi
vuoi creare un batch per l’utente che
creato
quindi quello di cui abbiamo bisogno è il nome utente di
utente per iniziare con la sua cosa
Sì , è proprio qui, molto utile
solo il nome utente
pom pom pom possiamo iniziare a estrarre
questi come variabili in realtà nome utente e
vogliamo che il log degli argomenti non ne abbia bisogno
più così ora possiamo davvero iniziare
utilizzando questa funzione attendo il badge di un segno
scusa aspetta un cartello ah, quindi mi dispiace
saltando in giro come uno scoiattolo
distintivo firmato e ho intenzione di chiudere questo
firmare la barra in modo che non lo siamo
distratto, ho intenzione di assegnare il
username e stiamo per assegnare il
ID batch sapete di cosa sto solo andando
codice duro che pure troviamo il
batch che ho creato prima dov’è
aggiornamento iniziale
l’ho trovato ed è l’ID 104 che copia e
incollalo lascialo qui per ora
in realtà lascia l’introduzione introduzione
ID tessera uguale a 104 Ho incollato qui e
ora vogliamo passare anche il link
al post stesso qui così noi
bisogno di un motivo e questo è collegato qui
post Earl ma questo non esiste ancora così
dobbiamo capire dove trovarlo
perché dove dove dove dove dove
dove, quindi, diamo un’occhiata all’esempio
Taillow che ho catturato da prima, okay
c’è un link qui da qualche parte
bla bla bla bla bla bla no c’è
non c’è un trattamento e lo fa
senso suppongo, ma c’è un ID così noi
può costruire il link post I
supponiamo diamo un’occhiata a come loro
sono strutturati cerchiamo questo link qui
copia questo link mi dispiace per il
Sistema operativo svedese e poi
incollandolo qui hmm ok, c’è un
molte cose in questo hmm bene lo sai
cos’è questo 23 così mi aspettavo lì
essere quella scrivania di esistere ma non lo so
esattamente quello che è questo è il post
la parola è questa 23 Sì, questo è il
post 23 cosa succede se inizio a rimuovere
le cose qui se prendo questo e lo rimuovo
quello che succede oh no no no questo fa
non funziona, aspetta
post id 5624 post numero 27
questo è il numero di post va bene così ho bisogno
il numero di post e il bit in cima ecco
l’ ID argomento di cui abbiamo bisogno anche noi e noi
bisogno gli argomenti tempo devo però posso
diciamo che se ho scorrere verso il basso
qui e copio questo linker e mi muovo
questo utente mpj probabilmente non lo vogliamo
che indovina se rimuovo l’argomento
slug qui in realtà non hanno bisogno che per essa
lavorare
non ho fatto aggiunto che da solo ti permette di
in realtà basta provare di nuovo a farlo
certo si figo che è solo qualche ricerca
cosa di ottimizzazione del motore lo sta facendo
sembra buono, quindi ho bisogno di estrarre il
l’ID argomento e il numero del post e
quello funzionerà come il lavoro per il conte
quindi abbiamo il primo numero e il
ID argomento sotto il segno di sottolineatura, quindi sono
solo per appendere in modo falso ID e il
Dio mi ricordo come un post di pesci rossi
numero ci andiamo e il post Earl è
sarà per cancellare questo non abbiamo bisogno
questo registro per farlo funzionare e noi no
bisogno che o e ho intenzione di fare
questo in quello che è questo modello chiamato
stringa di cose letterali in entrambi i casi che posso fare
inserire variabili e stringhe come questa
e l’ID argomento prima poi il post
numero vai pensi che non ci sia
questo è il post Earl, me ne vado
questo hard-coded in per ora non è
peccato che questo non lo sarà
sviluppatore dell’anno non preoccuparti
aggiungeremo un test a questo ma io
non è vero? Sono un grande sui test
primo
in molte situazioni in cui ho il controllo
per l’intera funzione cosa sta facendo
Mi piace molto fare TDD ma dentro
casi come questo in cui sono così incerto
del dell’API tendo a scoprire che
è meglio hash che cosa è che
stai facendo e una volta capito
come funziona è meglio aggiungere aggiungere il
prova perché semplicemente non conosci il
cosa abbastanza bene da fare un test in anticipo
in entrambi i casi, tuttavia, c’è un caso
qui se l’argomento slug non viene presentato
te stesso non vogliamo fare nulla
con questo non ci interessa questo
particolare post ha creato eventi che non abbiamo
cura di tutti gli altri post in
mondo, quindi stiamo per tornare
stato 200 carry on si tratta di un sacco di
duplicazione di questo proprio ora in questo
codice quindi dovremo fare
qualcosa su questo alla fine ah ma
se sei nuovo nel mio canale lo saprai
che io sono grande nell’attenderne un sacco
duplicazione prima di rimuoverlo perché
che ti permetterà di vedere il generale
caso molto più chiaramente e lo permetterà
per fare un generale molto migliore
soluzione che se solo prematuramente
generalizzato non appena ne hai visti due
istanze duplicate okay um
prossimo passo prossimo passo prossimo passo sai
quello che penso sia il prossimo passo
in realtà per rompere questo e ottenerlo
e lo faccio sotto test ma non lo sono
super sicuro di cosa sia l’ interfaccia
dovrebbe essere
Direi che immaginiamo questo
era un gruppo di funzioni e noi siamo
andando a chiamarlo figo è qualcosa
come manico post creato penso pom pom
pom pom e poiché questa è una fabbrica
questa funzione deve essere una fabbrica
funzione perché ha dipendenze
dipende da un lotto firmato, quindi noi
fare l’inversione del controllo e
iniettalo se non sai perché sei
capirò perché un po ‘
quando scriviamo i test per questo
vedi ok diciamo che potrebbe essere la sinistra comune
gestire il post creato e ne ha alcuni
dipendenze ha il lotto assegnato
e penso che sia l’unica dipendenza
e la funzione effettiva avrà a
firma di cosa ha bisogno ha il
introduzione ID dentro di sé e io
penso che possiamo tenerlo lì, questo no
deve essere configurabile questo non lo farà
cambiare realisticamente post Earl it
crea che da solo ha bisogno del
nome utente ha bisogno dell’ID argomento e it
ha bisogno del numero di host e ha anche bisogno
l’argomento slug per sapere se dovrebbe
dovrebbe assegnare un lotto se questo
è nel e nell’introdurre te stesso
da questo nell’introdurre te stesso
argomento va bene così gli argomenti sono vagabondi
bum bum bum bum
ha bisogno di un nome utente ha bisogno dell’argomento
slug ha bisogno del numero di post e it
ha bisogno dell’ID argomento questo è quello che siamo
lavorare con questa è la funzione che
ci accingiamo a scrivere io sono effettivamente
di sapere che cosa io sono solo copia andando questo
qui per prima cosa ho intenzione di incollarlo
come commento è per darci un riferimento
implementazione di ciò che stiamo costruendo
una volta mentre stiamo scrivendo il test e
Sto per saltare fuori da questo file e
questo lo copio e ho intenzione di creare un
nuovo file lo incollo qui, salvalo
in modo da ottenere alcune evidenziazioni della sintassi
e puoi vederlo, ma lo sto chiamando
gestire post creato punto js così è ora
ecco cosa sta ottenendo anche un po ‘
disordinato
Lo manterrò fino a quando non lo avrò
deciso su una struttura che ha un senso
Non sto cercando di strutturare troppo
davanti sto aspettando la struttura
unire un po ‘altrimenti si tende a
basta posizionare le cose in strutture stupide
che sono difficili da cambiare in seguito lo sono comunque
andando a gestire il punto dot test creato
punto J sta per fare solo un test di moka
qui per iniziare il test moka Oh
nessun hang on handle post creati e
moka fa questa cosa dove il suo
funzioni all’interno di funzioni e cose e
quindi il caso di test della moka si presenta così
proprio come voglio vedere la moka
lavorando perché non ho moka in
posto qui non dovrebbe fallire ora tirare su
il terminale perché Visual Studio ha a
costruito nel terminale farò npm
installa save Sto andando a package.json
[Musica]
e aggiungeremo degli script che sto seguendo
per un test non aggiungere Boca posso solo
fai questo penso che la moka sarà giusta
trovare roba con test di prova OPM punto potrebbe
non trovare alcun file di prova corrispondente al modello
prova facciamo come il punto stella e il test di
jazz no sì che ha funzionato
continuiamo così per ora il
motivo per cui ho creato questo test npm è
che ii non ha installato mocha localmente i
appena installato nel
domanda quindi se scrivo il tuo fumatore
non funzionerà perché non è nel mio
portata globale tuttavia quando faccio questo hanno
negli script NPM qui avrà
accesso a mocha nel contesto di
eseguendo questo perché npm fa roba
internamente è molto utile e lo è
è bello non installare il mercato
globalmente, in entrambi i casi , chiudiamo Ho un
molte cose aperte qui lasciami chiudere
alcuni non ne hanno bisogno , no
non meritare al momento che sto andando
risparmialo, quindi abbiamo un post
credito non dovrebbe fallire perché è
solo alcuni test di stronzate che sto per fare
Cosa fare
Moka non guardare che faccio che non lo è
lavoro oh hey devo aggiustare la foto di
Jason grazie per vedere proviamo
Test NPM è bello ora penso che funzioni
ogni volta che cambio il file in modo così così
così così così così che cosa sto facendo oh lascia
gestire post ha creato la funzione che
stiamo testando che lo richiederemo
è una spinta creata e facciamo un
setup qui prima di ogni, quindi questo verrà eseguito
prima di ogni mossa in ogni caso di test e
avremo un post di gestione creato
ricorda che questo è in realtà il
fabbrica che rende il post di gestione creato
funzioni e ho intenzione di assegnare il tipo
ovviamente creato con make handle first
creato chiamandolo e poi passiamo
le dipendenze così in un quando siamo
userà questo e il reale
domanda che stiamo passando e il
dipendenze reali Ricordo l’unica
dipendenze che abbiamo effettivamente qui
viene assegnato il batch bom-bom-bom e un segno
questa è una dipendenza perché lo farà
ha un sacco di effetti collaterali e
boom boom boom quindi fingeremo di farlo
metti un segno batch e stiamo andando a
Ho bisogno di Zenon Zenon è una cosa da deridere
funzioni, e vediamo Sanam richiedo io
penso che siano appena sufficienti molti arresti anomali
perché sanam non è installato quindi lo è
no, quindi sto facendo un sacco di cose qui
quindi non sto necessariamente spendendo molto
di tempo spiegando se hai domande
appena li postare nei commenti in basso
sotto c’è anche un più abbiamo un
collegamento personale al thread di discussione
su questo episodio in prima pagina sul forum
se sei un patrono dove puoi piacere
fare domande sul no-grintoso si
ricorda quando fai una domanda
sicuro di collegarti al punto temporale così
che le persone sanno esattamente dove tu cosa
stai chiedendo informazioni
blu blu blu blu
va bene vedere no richiede che tu sappia come
lo fai questo è penso che sia giusto
visto su punto fermi a volte ricordo
cose e io lo chiamo un lotto di insegne quindi io
firmalo alle dipendenze, così ora noi
è come se fosse stato creato il vero handle del post
funzione e quando chiamiamo quella maniglia
post creato ciò che stiamo testando qui
è solo che può essere freddo , chiamiamolo
e vedere se le cose funzionano ora ah NPM e
BM test e make handle post creato
non è una funzione ok guardiamo
il codice ora è vero perché lo siamo
non esportarlo quindi so che lo fai
più esportazione di punti Joel
perché le meccaniche create non possono corrispondere
contro undefined o no oh yeah
quindi gestire post creato vuole un
oggetto e non è in esso non è
ottenere un oggetto sta diventando indefinito
quindi dobbiamo passare un oggetto e ora
Funziona così così otteniamo la chimica che siamo
arrivare da qualche parte
ma guardiamo il nostro schizzo qui
voglio che chiami un distintivo con questo
roba qui quindi andiamo a dare un’occhiata alle chiamate
un lotto di segno
e volevamo chiamarlo con il
Username che abbiamo passato possiamo iniziare
con quello con il nome utente passato così
chiamiamo il comando handle creato con il
nome utente con nome utente nome utente e
allora andiamo a quello di cui abbiamo bisogno anche
Di Più
prova questo
okay, va bene, prova sembra avere
migliorato okay quindi un segno si aspetta il finto
lo stub un distintivo segno come funziona
e la stagione si aspetta ah sì aspettano saggio
tenere la larghezza è che penso che sia il
argomento e oggetti che ho chiamato dovrebbe
essere chiamato con questo dritto era
stub atteso per essere chiamato con
argomenti
che cos’è però no non era necessario
in realtà chiamarlo in modo che il test funzioni
badge assegnato Mi dispiace un segnale
firma il nome utente batch e ora funziona
ok , stiamo facendo progressi anche noi vogliamo
assegnare per passarmi chiamandolo con
ID partita 104
beh, sto solo andando a infornare questi
proprietà insieme a corretto
proprietà per fare l’ID di serie 104 va bene
vediamo qui che ora sta fallendo
magnificamente che oh questo non è corretto
lo chiamiamo con un nome utente ma
è come se lo chiami con batch
ID 104 e di solito in qualche nome utente noi
bisogno di risolvere il codice è inutile qui
ID distintivo popolare e passerà il prossimo
è che vogliamo che fornisca la ragione
giusto dovrebbe assomigliare a questo
incolla questo nel motivo del test e
vuole che abbia ID argomento e brindisi
numero sì sì, se chiamiamo questo dove il
argomento ID 5 o 5 e inserisci il numero 66
dovrebbe assegnare il motivo 5 a 5 e il
postare il numero 66 alla fine e non funziona come
aspettiamo che torniamo al codice e facciamo
la cosa attuale qui
topic ID e post numero whoops
aveva bisogno di quella cosa qui e naturalmente noi
bisogno anche di assegnare il motivo al
oggetto ed è ora Pat che dice freddo I
in questo momento abbiamo una dichiarazione if qui
non vogliamo fare il badge assegnato
se gli argomenti sono non è non è
presentati quindi assicuriamoci
che non chiami un distintivo di segno se
Non è corretto il registro degli argomenti che mi piace
capitalizza le non incluse nelle descrizioni
perché è difficile per gli umani trattare
con la negazione, così lui la rende fatta
è molto meno probabile che tu commetta
errori se ti piace chiamare il
negazione Sono una bomba quindi diciamo che noi
call handle post creato ma abbiamo a
topic slug che è qualcos’altro
ti presenti così alcuni dei loro
argomento slug quindi mi aspetto un segno che è stato
non chiamato e lo scrivo
[Musica]
aspetto che il metodo oggetto è stato chiamato sì
okay, ma come faccio a non dire che non era freddo?
come quello sì che ha funzionato aspettarsi questo
le cose non sono state complete ma cosa
chiamato tre volte di cosa si tratta
inaspettato
oh è perché non sto usando
riutilizzando lo stub tra ogni test I
dovrebbe ricreare lo stub ogni volta
facciamolo okay , sta ancora fallendo
ma in questo momento aspettatevi che questo non sia
freddo, ma quello che viene chiamato una volta è così
meglio, okay, torniamo indietro e aggiungiamo il
se la dichiarazione in modo che si ferma il test
rottura in modo che se gli argomenti registrano perdita slug è
non ti presento che torniamo
ma l’ho messo in cima che mi piace fare
programmazione difensiva come questa e mi piace
far terminare le cose sui casi limite
piuttosto che farli come quelli di Alice al
Alla fine ho ascoltato una buona razionalizzazione
sul perché, ma il mio cervello non funziona
abbastanza bene per chiamare che, in alternativa
modo mm-hmm ok ok roba prevista a
essere chiamato con argomenti questo è
in realtà l’altro test che sta fallendo
quindi il tester su cui stavamo lavorando funziona
bene ora ma il vecchio test è rotto e quello
è perché non ha un argomento
slot quindi dobbiamo dare questo risultato
questa chiamata completamente valida e ciò che era
ha chiamato è presentarsi vedere
che va bene tre passando per arrivarci
cool, lo trascinerò un po ‘
un po ‘per darci più spazio okay il prossimo passo
è che il badge assegnato qui è
in realtà solo andando via e facendo
cose che vogliamo davvero aspettare per il
errore pure e la cosa bella qui è
in realtà che assegna il badge restituisce a
prometto quindi fondamentalmente vogliamo solo il
funzione per passare la promessa su e
qualunque codice stia usando quella funzione
sarà quindi responsabile della negoziazione
con la promessa di cui abbiamo parlato
è una grande tecnica per passare l’errore
gestore che gestisce le parole di cui ho parlato
che in un precedente episodio è possibile
trova qui ma fondamentalmente vogliamo fare
certo che il lotto assegnato è appena ritornato
la promessa dal lotto assegnato
passiamo la promessa al
funzione di chiamata funzione buona sì
promessa dallo stesso lotto al
compostezza
se loro lo immergono lo intingono, è solo speranza
lo incolliamo per ora nei test è pari
più importante semplicemente aspettare
duplicazione per sorgere
Io normalmente in codice, aspetto almeno
tre casi prima di rimuovere la duplicazione
Ho trovato che essere gentile di un dolce
punto per quando si inizia a vedere effettivamente
l’attuale caso generale nei test I
ho scoperto che devi aspettare più a lungo
perché è più difficile da identificare
identificato il caso generale , quindi tendo a
aspetta almeno cinque o sei volte prima
iniziando a rimuovere i test di duplicazione
sì, quello che stiamo facendo vogliamo chiamare
noi chiamiamo la partita di segno che vogliamo avere
firmare che restituire qualcosa un assegno
lo scopriamo da Hannibal’s
regressione quindi mangiamo facciamo uscire e
vogliamo un segno distintivo chiamato
beh no, è solo con gli archi che non possiamo
basta fare questo ritorna
e noi dobbiamo fare una promessa falsa così
come possiamo semplicemente utilizzare qualsiasi oggetto qui
non importa, è solo un segnaposto
Oh il distintivo del segno restituisce la promessa falsa e
poi abbiamo il titolo e poi lo controlliamo
uscita prevista uscita uscita uscita a
sii promesso falso che mi sarei aspettato
non definito per eguagliare questa cosa, lascia che io sia
promettendo di fingere sì, sì, mi aspettavo
indefinito a uguale promessa falsa
In ogni caso, sto solo creando un falso
oggetto qui sto cercando di dargli un buon risultato
nome ahh buona struttura comunque prevista
sulla lotta per eguagliare sono una promessa falsa
perché in realtà non stiamo tornando
il compito restituisce un lotto firmato
quel lavoro si accende oh aspetta no
è oh sì perché sì, è ora
nel se questo è per il caso in cui
è un altro slug che introdurrà
te stesso ho intenzione di cambiare questo essere
la risposta corretta e ora lo farà
restituire la promessa del difetto perché
ora chiama il batch assegnato sì però
sebbene sebbene sebbene quello che succede
se voglio che questo sia affidabile
sincrono, voglio sempre che ritorni
una promessa perché altrimenti diventa
davvero strano chiamarlo vediamo, vediamo
Guardalo
e con restituisce una promessa quando noi
Dio Dio, io sono il mio cervello si sta sciogliendo quando
anche quando lo slog degli argomenti non è corretto
dannazione, ho intenzione di copiare incolla questo
l’argomento scorretto slug e incollarlo
qui ma questa volta lo stiamo verificando
l’uscita che voglio lasciare dopo il cappotto tira
fuori posto top-10 dovrebbe essere sì, è così
che puoi fare un test sincrono in
moka chiama una volta il callback fatto
hai finito, so che ci sono cose
che puoi chiamare puoi tornare
promette di camminare su di esso non è abbastanza
Non mi sento come se fosse parole di fiducia in
questo caso, comunque, non è nemmeno vero
arrivare così lontano perché non è così
restituendo qualsiasi promessa che devo fare
ritorna una promessa quindi ti prometti
punto risolvolo vero immagino
fresco e ora funziona perché eppure
risolve a tutto ciò che non realmente
cura del valore sai cosa sono
appena
aver risolto a qualsiasi valore perché noi
mai usarlo, volevamo solo essere
risolto e poi chiama fatto e quello
rende questo test riuscito se non avessi
chiamato fatto sarebbe scaduto il tempo
su
non sbattere forte penso che siamo ora
Non sono contento di questo posso rimuovere il nostro
il nostro codice di esempio qui mi sta bene con questo
e quello che farò ora è tornare indietro
fino al nostro mmm servire e scoprire dove
vogliamo così bene, qui è il nostro dove stiamo bene
ha scritto le nostre cose che ora sappiamo no
più a lungo abbiamo estratto alcuni dati
dal brindisi del corpo della richiesta , vogliamo ora
in realtà chiamiamo la funzione che chiamiamo
è stato gestito il post creato e noi
voglio passare queste cose su di noi
li chiamavano nomi leggermente diversi
perché questi sono nomi sottolineati e
nel nostro sistema stiamo usando il
convenzione del caso dei cammelli e così là
è chiamato topic slug anziché topic
slug mappandoli intorno e ID argomento a
argomento dall’ID argomento e quindi abbiamo
inserisci il numero per inviare il numero e penso
quello sarà sì penso che stiamo usando un
peso del platino qui in questo a questo livello
possiamo solo farlo
allora abbiamo finito davvero penso che sia così
va bene, lasciamolo fare
troviamo la torre oh questo è solo un
file schifoso buttiamolo via
ad esempio posta creato sarò tenere che
intorno nel caso ne abbiamo bisogno un po ‘
bit non ho intenzione di commetterlo
ok questa è la cosa che non ho mai risolto
facciamo in modo che per ora abbiamo aggiunto
un sacco di dipendenze sì sembra buono
credo
va bene, commettiamo ciò che abbiamo fatto
abbiamo implementato un batch di introduzione dei segni
e lo spingiamo al nostro github e poi
Farò anche un pasticcio Heroku
Maestro, questo è il modo in cui ti schieri su Heroku
probabilmente divento molto carino è un po ‘
veloce ma questa parte è veramente lenta
non so perché è l’ avvio automatico di NPM
solo caching e roba da costruzione
dipendenze e dovrebbe essere distribuito
lanciato tutto bene, vedi se mi sono rotto
qualcosa di orribile ora andiamo ad admin
e vediamo di tornare al
presentati te stesso thread rushing just
per i calci ho le introduzioni
patch okay ho questa corrispondenza test API
questo è da qualche altra idea di prova, facciamolo
Effettua effettivamente un altro test su un’altra API
test non mi importa testare in diretta
ambiente è il mio numero uomo
vediamo che siamo così fortunati che ho avuto il
distintivo no perché non va bene
cos’è successo a dare un’occhiata?
presso l’API e guardare a ciò che succede a
il webhook va bene, abbiamo un errore di 500
si è schiantato quindi questo è un evento creato post
diamo un’occhiata a guardiamo tutti
il log di Heroku registra i log Questo solo
dovrebbe darci ok, aspetta, questo è un po ‘
altre cose bene
gestire post creato non è un divertimento sì
doh okay forse avrei dovuto provare questo
localmente ma è difficile con um web hook
non è così difficile quando mi aggancia
potrei avere il passato che ho il tutto
tutta la richiesta di capelli potrei simulare
questo usando arricciatura o qualcosa che sono giusto
pigro sì
okay, il problema è qui che andiamo
trova questa cosa non è una multa
perché non è definito ciò di cui abbiamo bisogno
fare è passarlo in servire in modo da servire
aggiungerò questo come una dipendenza a
servire ciò che è servito
così servire è un altro uno di questi il
inversione delle funzioni di controllo che sono
facendo così il livello superiore in realtà non lo è
servire è in realtà indice quindi nell’indice noi
stanno per appendere dopo il lotto del segno
perché dipende da una bandiera
corrispondenza che faremo per gestire la posta
creato e stiamo per richiedere
gestire post creato e di nuovo questo è
in realtà non gestire il post creato questo è
l’ aveva un post fantastico creare la fabbrica
funzione che prende le nostre dipendenze e
e ricorda solo una dipendenza
sì è dipendente dal segno lotto
e lo stiamo passando così tanto in poi
gestire il post creato perché è necessario
passa dentro per servire perché servi
dipende da come post creato
è il motivo per cui abbiamo avuto un problema prima e ora io
penso che questo dovrebbe funzionare I on e siamo
spingendo quello per ottenere e lo siamo anche noi
spingendolo a Heroku Wow
Get Push Heroku, la mia fermata
battere le mie stupide cose di integrazione API
si, posso davvero
riprova questo post creato cosa ho appena
prendi il tuo riconsegna e vedi se funziona
questa volta non guardare
Heroku registra
Oh molte altre cose stanno succedendo
riferimento e
riferimento il loro numero di posta non è
definito all’osservazione 59 oh sì, io io
avrei potuto vedere che stava arrivando
va bene sistemando cose che spingono a spingere
Heroku di nuovo a posto
facciamolo ricetrasmettitore ah si voglio
riconsegnare
sembra che sia ancora un BAM da 500 blocchi oh
ecco alcune RAM de cazzate
eccezioni sì, penso che sto diventando molto
vicino al punto in cui ho davvero dovrebbe
essere in grado di appena finto questi ganci web su
il mio sulla mia macchina, ma io non sono abbastanza
pronto a farlo, ma ho intenzione di farlo
console.log gli argomenti out Oryx
forse opta che lo chiamiamo orribile
debugging di produzione e stiamo facendo un
concerto di sicuro non l’ho effettivamente registrato
fuori oh mio dio sono orribile orribile
orribile orribile orribile sono solo
scavando me stesso in un buco qui argh
almeno ho commesso la cronologia, ma spingo
il tuo maestro mi rendo conto durante questi periodi
andare le cose è che voglio farlo in un
periodo di tempo ridotto ma anche quello
significa che mostro solo un sacco di cose orribili
abitudini orribili perché non spendo
abbastanza tempo con esso e io tipo di
ho scritto qui alcuni test unitari ma questo
significa anche che non stiamo ottenendo abbastanza
per la carne di esso ho voluto mostrarne alcuni
alcune funzioni di composizione e noi siamo
solo non farlo consegniamo il
endpoint vediamo bene, vediamo il
i registri mi danno di più
informazione
oops nome utente ID e il motivo
pensa che questa ops sia sembrata a loro
sembrava davvero bello davvero così è
interessante quindi guarda questo assegnato
lotto forse ho qualche problema in
incarico forse l’ho rotto ieri
qualcosa oh , in realtà non stiamo passando
passando questo in quello non dovrei non farlo
sento che ciò dovrebbe essere importante
siamo come quello che sto per ottenere
ecco questa ragione non è in realtà
essere passato a fare un segno
distintivo ma questo non dovrebbe cambiare le cose
okay, in realtà vediamo qual è il problema
qui oh stiamo davvero facendo un po ‘
coppie qui posizione funzionale qui
ma stiamo iniziando con uno dei peggiori
cose con composizione di funzioni e
quello è che è orribilmente difficile da debugare
perché non è colpa di
la composizione della funzione di per sé è solo una
foto di lambda intendo questo Ram de you
potrebbe aver reso questo molto più bello
messaggio della partita aerea ma cosa sta succedendo
vedi qui che questo l’ho riflesso
ieri ed è per questo che si è rotto e io
non l’ho testato correttamente. pipe P is a
funzione in RAM de che crea a
catena di funzioni di altre funzioni così
creerà un nuovo ritorno
funzione che prenderà qualsiasi valore
viene passato ad esso e poi sta andando
per passare quel valore alla prima funzione
qui fai corpo così ogni volta che chiamiamo il
assegnare la funzione badge che chiamerà
corpo con questi due argomenti ed è
andando a prendere quello che ottiene da quello
Da questa funzione e trasmetterla alla
la prossima funzione e così via è quello che PI
fa ma questo è PI P e PI P fa
esattamente questo
cosa tranne che si aspetta ogni
funzione per restituire la promessa e quella
è quello che ho perso qui così che cosa ho bisogno di
fare è solo fare questa promessa non risolvere
Blatt un segno distintivo non è ancora in fase di test
potrebbe e quello più tardi ma per ora andiamo
concentrarsi sulla risoluzione del problema bum bum bum
promessa bum fissa fare un segno in batch questo
significa anche che molte persone non hanno
ricevendo i loro distintivi di
Fantastico perché questo ha fallito, ho bisogno
per fare qualche lavoro di riparazione più tardi, ma quello è
non è un problema spingere così noi
ancora non ho una ragione, ma mi aspetto
questo per funzionare ora
ha detto le ultime parole famose
sì 200 funziona così diamo un’occhiata a
il test API che ora avrei dovuto ottenere
il gruppo di interruzione che ho fatto, ma è
in realtà non si collega a nulla
e questo perché manca carente
una ragione per cui assicureremo che a
firmare batch sta anche passando in una ragione
passiamo nel motivo che abbiamo passato che ottieni
spingere il maestro di razzo così ora sto andando a
rimuovi questo distintivo da me
i distintivi attendono
rimuovi la corrispondenza del test API mentre sono a
revoca il distintivo tutto bene
terminologia e penso che posso solo
ora vai al dispiegato eppure ha
schierato penso di poter leggere solo il fegato
questo immediatamente funziona
funziona funziona?
guarda questo
concesso presentarsi opere
Okay fantastico, quindi adesso funziona
non abbiamo fatto molto funzioni
composizione che era ciò che ho promesso
tu
in questo episodio vediamo se possiamo avere un
guarda il motivo per cui non abbiamo fatto
molta composizione è perché c’è
già ho già fatto un sacco di
composizione della funzione in questo in questo
progetto e la funzione che abbiamo appena
creato un post di handle creato come c’è
non un sacco di roba in corso in esso in modo
non c’è nulla di bianco che possiamo
per comporlo voglio dire che lo siamo già
già usando questo batch assegnato all’interno
di così noi in un modo stiamo componendo
funzioni funzioni già forse sono
Sono appena tornato in linea questo
nella dichiarazione di parcheggio penso che noi
potrebbe solo andare in una patch di segno e
svelare questa composizione di questa funzione
qui per darti un’idea di cosa sia
sta succedendo così abbiamo il corpo del make mmm
okay facciamolo, sto riscrivendo
questo tu senza usare le tubazioni
la funzione lasciamo solo fare che mi lascia
chiudere questo e chiudere questo così
prima di tutto ciò che questo ricorda è
che crea una funzione quindi cosa noi
è necessario prima restituire una funzione
e ho intenzione di commentare questo a
ricorda che questo è quello che siamo
lavorare con la prima cosa è che noi
quello che faremo è che lo faremo
una barca del corpo e poi siamo noi
anche bisogno degli argomenti qui sono i
opzioni e poi pubblicheremo
questo come JSON per un po ‘di droga
drogare la droga
e useremo questo discorso
API di euro e stiamo andando a passare in
corpo così questo è in realtà anche un esempio
della composizione delle funzioni ecco questa cosa
è un’altra funzione di fabbrica con cui
crea una funzione quindi cosa facciamo qui
è in realtà posa come Jason da usare o cattivo
solo punto finale creando questa funzione
qui e poi pubblichiamo il corpo qui e
allora questo potrebbe restituire un errore, così facciamo
allora perché questa sarà una risposta
anche e facciamo tutto bene lascia che ti mostri
quale errore a meno che non sia ok dentro
di nuovo l’ abbiamo guardato prima, ma di cosa si tratta
è è una funzione che prende un
risposta e controlla lo stato e a
codice su quell’oggetto e se così fosse
non 200 getta un errore così ciò che noi
in realtà potrebbe fare qui sì per riutilizzarlo
quindi possiamo effettivamente usarlo qui dentro
così e quindi possiamo effettivamente solo
restituiscilo puoi in realtà solo tornare
questo ma ho intenzione di scrivere a questo
rendere un po ‘più chiaro ciò che è
succede perché questo restituisce una promessa
o effettivamente restituisce una risposta
promessa promettente che si risolverà in a
oggetto di risposta quindi quando la risposta
la promessa si risolve quindi facciamo l’ errore
Lezione va bene e poi torniamo
perché questo e il motivo per cui noi
ritorno come questo è che non c’è noi
non sono davvero interessato a ciò che il
e dati dalla risposta perché noi
stiamo postando i dati all’endpoint qui così
come la vedi così è una specie di io
devo dire che ora lo scrivo
così quando ho il confronto
le funzioni si compongono abbastanza bene potrebbe essere
che questa funzione di pipe non è realmente
aggiungi molto o almeno aggiunge un po ‘
un po ‘perché questo sembra piuttosto interessante
sembra molto concentrato su ciò che fa
fa un corpo per il post
richiesta e poi pubblica quello come Jason
al discorso i distintivi degli occhi dell’utente di
Jason e poi errore a meno che non sia ok
errori come un segno batch oh mi dispiace
quindi questo è ciò che si chiama point free o
programmazione tacita è carina perché è così
focalizzato su cosa è ciò che il codice intende
fare piuttosto che come assegnare
variabili avanti e indietro è tutto
leggibile con un buon peso, tuttavia la pipa P
è come avete visto è stato difficile per me
eseguire il debug perché i messaggi di errore di
queste funzioni composte diventano
a volte semplicemente orribile e proviamo a
vediamo se possiamo comporre le cose con
promette senza usare questo tubo P
semplicemente divertente quindi abbiamo questa risposta
corpo che stiamo creando o scusate il
richiesta corpo proviamo questo invece
facciamo questa promessa non risolviamo
e così questo è il corpo e poi lo facciamo
usiamo questo BAM che è abbastanza bello
che funziona io sono magro, lo facciamo solo
Ehi, va bene, in effetti è davvero forte
in realtà è molto più bello di me
pensato che fosse così bello usare questo
cosa casuale ma ah quando fai promesse
puoi effettivamente incatenarli davvero
davvero bello, è bello, è un
un po ‘fastidioso che non sia così
chiamato potremmo fare qualcosa come chiamata
questo come il corpo di toast che farebbe e farà
così forse lo rende migliore
hmm Non so non so in realtà io
penso che sia stato davvero così perché
mi permetterebbe solo di farlo a
Posso usare le semplici funzioni freccia con una sola riga
fallo e poi dichiaralo come
funzioni freccia a linea singola e sì
è ricco
così è carino, è carino
spiffy quindi questo è esattamente lo stesso che
solo noi abbiamo il corpo qui se ci risolviamo
quella come una promessa perché è quello che
promessa dr. la canzone fa e poi pubblichiamo
usato come Jason per parlare dell’URI dell’API
a badgerstour Jason e poi chiamiamo un
errore a meno che non vada bene e se va bene
noi solo
restituendo la risposta è carina
carino e il motivo per cui possiamo
perché questo funziona così bene è così
queste cose sono molto componibili
funzioni in modo da errore a meno bene è molto
facile da riempire in un covo perché cosa
fa è che è solo un semplice
funzione che accetta un argomento
errori se è se non è qualcosa
altrimenti ritorna o il caso risponde
se lo usiamo all’interno di una promessa noi
in realtà non devo farlo, ma ho avuto
aggiungere che mentre stavo usando il
operazione di tubo, non credo di poterlo fare
rimuovilo perché sto usando l’aria a meno che
m’kay in altri posti che usano pipe II
ma guardando questo è questo
è un netto miglioramento rispetto a questo
questo è in realtà molto meno complicato
e contorto e io
Mi libererò anche della dipendenza eccessiva qui
Non ho bisogno di Ram de dentro di questo
funzione anche tu vedi qui come questo è
anche un grande esempio di una funzione
componenti dispiace anche questo è un grande
esempio di composizione funzione
URI API del discorso lascia che ti ricordi cosa
da qui crea solo un URI
un URI completo dal solo percorso quindi se io
hanno proprio questo percorso che lo farà
salderà sul dominio di fronte per
forum e tutte quelle cose e lo farà
salderà anche sulla chiave API e e
stringa di query mi dispiace la chiave API e
nome utente di cui ha bisogno come stringa di query
sul lato passivo si trasformerà il
percorso fino all’URL dell’API completa, ecco come
ritorna
e poi pubblichiamo Jason per postare Jason
a quello che farà è che sta andando
a oh questo sta portando un sacco di trasporto
qui quindi questa è solo una dipendenza
iniezione che abbiamo al livello più alto
ma poi perché abbiamo bisogno perché questo
la funzione ha bisogno di essere recuperata ma poi di cosa si tratta
è che ci vuole un URI di nuovo se tu
guarda qui questo è l’URI quindi oh scusa
oh sto saltando in giro confondendoti
mi dispiace dispiace corretto per
situazione così povera e poi crea
questo restituirà un’altra funzione
qual è la funzione effettiva che è
preparato con l’URI e questa funzione
è ora è questa funzione che oh io sono
pronto a postare questo URI specifico e
tutto ciò di cui ho bisogno da te è un corpo e quando
ottiene un corpo che fa il recupero e
fa postare il JSON e questo
mette il corpo è abbastanza carino , forse
ti piace lo estrarrò
rendere più evidente ciò che fa
questo crea una nuova funzione è una novità
funzione posta come Jason a distintivi vedere così
questo ora sarà davvero questo
funzione
questo accetterà tutto ciò che puoi
in realtà potresti farlo anche così
un po ‘se volessi riscriverlo
più un altro stile che potrei fare potrebbe fare
questa causa è Jason due distintivi e
questo non è male neanche io
è necessario restituirlo a causa di multiline
ma non ti accorgi che non lo è
nell’ordine naturale che creiamo
la funzione prima qui e poi assegna
potremmo fare potremmo fare questo
potremmo in realtà farlo in questo modo
questo è strano
quindi post Jason a parlare dell’URL dell’API e
allora passeremmo nel corpo ed è
va bene non è assolutamente terribile
ma è un po ‘contorto e penso
quello qualcosa la versione originale
dove abbiamo appena fatto questo è piuttosto lucido
bella chiacchierata sì, è per me questo è
molto leggibile come catena spero che questo
YouTube forse e vedo anche di nuovo come
vedi qui questo sta usando curry così
la prima volta che entri per la prima volta
chiama questa funzione per così dire che chiami
con le dipendenze che crea
un’altra funzione che è il reale
funzione che restituisce ciò che accetta
gli argomenti e ma è stato
preparato con quelle dipendenze il
processo anche Jason è ora a causa del
disponibile la potenza delle chiusure
ecco quindi se torno all’indice ti mostro
come funziona
siamo qui è il gruppo assegnato così noi
basta richiedere il lotto assegnato e poi
passiamo passando le dipendenze e
questo ci darà l’ effettivo assegnato
funzione batch in modo da poter visualizzare questo come
facciamo fare un segno distintivo
ciò richiede che questo non sia abbandonato su a
composizione della funzione questo è giusto
inversione del controllo in un funzionale
stile ma ti dà un senso
Mike, spero che aiuti a vedere queste cose
dove ho appena passato le funzioni in giro e
facendo tutto questo tipo di trasporto e
roba che potrebbe aiutarti a vedere come questo
tutto cade insieme e come lo fai
è più facile combinare e comporre
funzioni forse non sono forse anch’io
stanco a questo punto e appena coinvolto
le mie cazzate funzionali che non conosco
cosa ne pensi scrivere un commento in basso
di seguito se ti è piaciuto o non ti è piaciuto
questo si è rivelato essere lungo oh
Sì, pensavo di essere in grado di tirare
questo si spegne rapidamente ma non lo sono comunque
andando a firmare ora hai appena
ho visto un episodio di fun fun function I
rilascia questo ogni lunedì mattina via
200 GMT di solito non sono così lunghi
se ti piace, potrebbe piacerti anche
questo video che la macchina di Google
l’apprendimento pensa che faccia bene a te se tu
davvero come questo, per favore, prendi in considerazione
diventando un patreon cliccando qui
è una grande spiegazione del perché tu
dovrei essere mpj fino al prossimo lunedì
la mattina rimani curioso
Please follow and like us: