
potresti o non potresti aver visto che c’è un
il video di questa presentazione è già
andato su
quindi ho pensato bene dato che c’è un video
ne sto già andando completamente
riscriverlo per questo che ho fatto sul
piano sulla strada così che non lo è
irto di pericoli tutto ciò che sarà
completamente bene il punto qui è io
voleva dimostrare un edificio
applicazione end-to-end tra cui MongoDB
al back-end ovviamente perché è così
per chi lavoro ma un’app web dal
front end e prova a farlo entro 50
minuti da mostrare principalmente per smentire questo
idea che Java sia un po ‘lento e
boilerplate II e tu vuoi fare il tuo
prototipazione in Ruby e poi alla fine
migrarlo alla JVM che tipo di ricercato
per confutare tutto questo quindi è completamente
applicazione conforme alla buzzword che sto facendo
angolare in HTML5 e JavaScript e tutti
quella roba nuova funky con bootstrap per
l’interfaccia utente e sto usando una libreria davvero
libreria leggera chiamata drop wizard
che riunisce molti standard
e molte librerie standard da costruire
un back-end web in Java
ovviamente MongoDB utilizza una libreria chiamata
Mongo Jack per parlare con MongoDB che
vedrai un po ‘più tardi e poi
in una sorta di ruoli secondari che vedrai
grade o groovy Spock e io mi chino
molto intensamente su IntelliJ IDEA
questa performance che ora mi sento molto bene
preoccupato perché Dan ha detto prima
quello appoggiato all’IDE è un segno di a
molta complessità che può o non può
essere il caso e l’idea qui è così chi
è una persona Java qui bravo, io sono te
facendo anche JavaScript o principalmente
JavaScript e alcuni di voi quindi se
le persone Java che potresti imparare un po ‘
su alcuni di angularjs e web
roba di front-end ero molto nuovo a questo io
non ho fatto nulla per lo sviluppo web
per cinque o sei anni se lo hai già fatto
fatto angolare e questo genere di cose allora
probabilmente non stai andando a prendere
qualsiasi cosa nuova qui l’idea è solo per
tipo di mostrare tutto ciò che funziona
end-to-end ovviamente non ho tempo
per entrare in qualsiasi cosa in una profondità reale
e per le persone non Java poi mi piacciono
voglio dimostrare che Java non lo è
necessariamente grandi, pesanti e goffi e
goffa anche se potresti o meno essere d’accordo
con questa conclusione e ovviamente
avrai un’idea di come usare MongoDB
prototipo rapidamente intendo uno dei
le idee di MongoDB sono davvero
leggero è molto facile da ottenere
iniziato nella tua applicazione senza
dovendo tipo di venire con questi
enormi schemi di dati in anticipo e tu
stava andando a spingere davvero fortemente su
quanto imparerai a usare
il tuo IDE ma ora mi sento davvero nervoso
a dire che così potresti imparare
che se hai gli strumenti giusti tu
può essere molto produttivo se sai come
usare quegli strumenti incluso il tuo IDE
l’idea dell’app è molto semplice
l’app è progettata per funzionare sul tuo telefono
non è un’app per Android perché non lo sono
quello mentale è che navighi
a una pagina web che individuerà per te
la tua caffetteria più vicina che tu inserirai
ordina quel caffè e poi lo farai
entra in quella caffetteria e prendi il
caffè e, si spera, bevi quel caffè
è un’app piuttosto semplice che i concetti
sono abbastanza semplici probabilmente di qualcuno
già fatto qualcosa di simile, ma io
volevo qualcosa che fosse una specie di reale
vita possibile app non è un’app giocattolo
necessariamente dimostrare questo
funzionalità end-to-end quindi saltiamo
dritto perché sono molto preoccupato
su come fare tutto in 50
minuti voglio farlo in un certo modo
di user story in modo tale che la storia sia zero
è come un utente di questa fantastica applicazione
e devo essere in grado di vederlo ora
sembra un po ‘come la storia zero
implementare app e non è proprio quello che
Intendevo che è fondamentalmente il codice per come
sviluppatore ho bisogno di un app server da distribuire
anche questo e ho bisogno di un po ‘ di
infrastruttura e quadro prima di me
può andare così tuffiamoci dentro
Riesci a vedere che va bene nella parte posteriore o fare
vuoi che lo faccia diventare più grande alzi la mano
se lo vuoi più grande di te va bene
bene
è abbastanza grande – grande abbastanza grande sì
okay , sto usando Gradle per gestire il mio
dipendenze che usano Gradle piuttosto a
alcuni di voi non sono così tanti, va bene così
chi non sa cosa Gradle è ok così
Gradle tipo di me lo sto usando per lo più
è quello di inserire le mie dipendenze per Java
solo per il lato Java non è il
front-end è solo Java e qui
Devo eseguire alcune dipendenze, quindi
ho detto che avrei usato il drop wizard
quindi questo è qui e Mongo Jack
per parlare con MongoDB gli altri lo sono
testare le dipendenze e questo è tutto
che c’è da fare per Gradle al tipo di ottenere
attivo e funzionante posso creare questo nel mio
script di compilazione massivo se voglio che sia
una sceneggiatura di massa ma fuori dal mondo
scatola
funziona e ho un sacco di cose
obiettivi predefiniti come specifiche come test e
corri, compila, costruisci e tutto il resto
genere di cose
quindi questa è una versione di più
scheletro File di build Gradle che puoi avere
quindi questo è Gradle quindi quello che devo fare è
Creerò un servizio che è
andando a girare il back-end e ottenere
il mio app server in esecuzione su questo è
non è meglio
se le persone hanno domande a metà strada
quindi possono chiedere loro ma io posso o non posso
Non ho tempo o capacità di rispondere a loro
mentre sto scrivendo allo stesso tempo ma
sentiti libero di gridare domande così
sta per estendere un servizio di wizard drop
e ora ricordo che non ho messo il mio
occhiali e non riesco a vedere nulla
il caffè e questo ha bisogno di questo a
file di configurazione quindi ho intenzione di dare
è una configurazione di coffee shop, ma io sono
non farò davvero niente con
questo perché non ho niente di speciale
configurazione per il mio per il mio servizio
Ho intenzione di implementare l’impostazione predefinita
metodi che sto per ottenere IntelliJ – tu
non posso davvero vedere nulla di tutto ciò puoi
è un po ‘troppo grande
puoi leggere abbastanza o vogliamo
rendilo un po ‘più piccolo silenzio ma a
un po ‘ piccolo un po’ più piccolo proviamo
che in mezzo ok che sembra adattarsi su
lo schermo ed è un po ‘più grande di quello
Era prima che tutto bene, quindi sto solo andando
ottenere IntelliJ per risolvere tutti i miei problemi
per me che è estendere questa cosa
quest’altra cosa non ho davvero bisogno di
preoccuparsi troppo di questo
inizializzazione arriverò tra un minuto
e la corsa in cui arriverò tra un minuto
questo è il nostro principale, questo è il nostro principale
applicazione che sta per eseguire sul
back-end quindi ha bisogno di una statica pubblica
metodo principale vuoto che è un valore predefinito
scorciatoia che arriva in IntelliJ così io
non dovevo fare un sacco di digitazione
semplicemente funziona, abbiamo un nuovo coffee shop
Il punto di servizio che sta per prendere il mio
Args, ho intenzione di dirlo per affrontare
eccezioni nel modo in cui sa come
implementare la risorsa del metodo di esecuzione
Ho tipizzato la caffetteria un sacco di volte e io
stava creando questo e questo sta per
essere la mia risorsa di ricerca sul Web, il mio Web
risorsa di servizi in modo che le persone lo usino
servizi web riposanti okay ce ne sono alcuni
annuisce in giro per la stanza, quindi questo è il mio
servizio web riposante per ulteriori informazioni
è possibile leggere i servizi web di Weber
e Weber valgono la pena di prenotare un libro
ma ho intenzione di dirlo che è il mio
instradare con l’app dicendo che il percorso è
Mi piacerebbe essere una caffetteria del taglio
riguardo al consumo e alla creazione di JSON, lo sono
non farò molto con questo adesso
che sicuramente verrò a questo
più tardi, ma ho bisogno di uno di quelli per ottenere il mio
applicazione funzionante ora se ci provo
ed eseguirlo dovrebbe fallire per il
ragione corretta che sarà non ho
dato abbastanza inizializzazione ancora così io
ho bisogno di dirgli cosa sto cercando di correre
come un server
oops
che ho scritto male
ora quando corro non dovrebbe essere un errore
cosa dovremmo vedere
oh no ti ho lasciato entrare così noi
dovrebbe vedere un 404 quindi questo significa almeno
Ho un server Web attivo e funzionante
super facile peasy non ho questo
file HTML di caffè, quindi sto ricevendo un
404 ora una delle cose che mi piace davvero
di questo è caduta con molo di sadducees
come il suo server web ed è super
leggero e super veloce e l’ho usato
prima e trovo questo davvero carino
soprattutto per lo sviluppo perché il
il tempo di avvio è come un secondo o due e
che ora viene ora ho fatto questo come
parte della procedura guidata di rilascio lo fa semplicemente tutto
quello per me così si fa avanti
e non devo preoccuparmi anche di questo
molto ora quello che voglio fare è che ho bisogno di farlo
servire il mio file HTML di caffè estetico
chiamiamo questo qualcosa di utile e io
devo dirlo che sto andando a servire
contenuto statico così come il mio Java per
ho a che fare con le mie risorse web, quindi ho bisogno
avere un file di configurazione e ho bisogno
per imbrogliare ho appena avuto un trucco
lì perché altrimenti lo scriverò
sbagliato che dice che tutto ciò che pubblico o
ottenere dal / url all’URL con barra
servizio in esso voglio che per andare al mio
roba java che voglio che vada a
in definitiva le risorse della caffetteria vanno bene così
è così che indico tutte queste cose
laggiù e poi quello che voglio fare è
Voglio dire che voglio servire una statica
HTML pure in modo che era un po ‘un
imbrogliare anche perché tutto questo digitando
sarebbe troppo noioso e quindi qui dico
Ho intenzione di inizializzare la mia applicazione
con questo pacchetto di barre HTML è dove il mio
HTML è nelle risorse barra HTML e
quindi tutto ciò che va solo dritto al
la radice dell’applicazione I
voglio che serva per contenuti HTML statici per
così che cosa dovresti vedere quando lo faccio
questo è se riavvio il
server c’è un sacco di cose negative
e si spera nei boschi quando lo fai
questa cosa demo dal vivo o totalmente non funziona
cosa non ho fatto, mi ricordo che è il
stessa cosa che faccio sempre male, ma tu
bisogno di dirgli dove trovare il
file di configurazione quindi deve avere
config sai che cosa si chiamava caffè
dot sì a maggior ragione ora che quando si riavvia
non più 404 e dal titolo in
il meglio sappiamo che stiamo servendo il
la pagina corretta va bene così è stata una specie di
il il male necessario del programma di installazione ora quando
Ho iniziato a progetti in passato ho
ho sempre trovato che stava prendendo tutto
e in esecuzione ottenendo un server web
la la colla per ottenere tutto
il lavoro è abbastanza noioso ma ho appena fatto
ho scoperto che con drop wizard non lo è
così difficile è solo poche righe di
codice e tutto è tipo di incollato
insieme e pronto per iniziare
implementando le cose più interessanti
nella mia domanda quindi la storia come una
bevitore di caffè mi piacerebbe essere in grado
per selezionare il caffè che voglio ordinare
perché altrimenti qual è il punto così
che cosa ho intenzione di fare è che ho intenzione di
avere un menu a discesa qui che è il
tipo di caffè posso ordinare e sto andando
per farlo nell’angolare, quindi facciamolo
sbarazzarsi delle cose di cui non abbiamo bisogno
significa che lo trasformerò in un
App angolare oops non ho potuto che mettere in
il posto sbagliato e ho bisogno di includere
angolare questa è una scorciatoia che intellij
viene con così non devo digitare
tutto e anche molto bene
autocompleta anche sul mio include
quale io quando stavo facendo sviluppo web
circa cinque anni fa tutto era giusto
digitando a destra e ora molto di questo
è automatizzato quindi fai molto meno a
molti meno errori quindi l’altra cosa
necessità è che ho bisogno del mio file javascript
che chiamerò sorprendentemente
caffè ho bisogno di creare uno di quelli
Devo dirgli che è un modulo angolare
questa è un’altra scorciatoia che viene con
IntelliJ coffee e ho capito le cose
Mi aspetterei come programmatore Java che posso
estrai questo come variabile anche se
è JavaScript come questo è probabilmente
non abituato ad alcuni di voi ma per me
è stato davvero bello poter usare a
IDE corretto per fare JavaScript
sviluppo, perché ho sempre fatto in
Blocco note prima di destra quindi ho creato il mio
applicazione che ho incluso nel mio
Pagina HTML ho bisogno di un ho bisogno della lista di
bevande da selezionare, quindi voglio essere
in grado di selezionare un cappuccino o un latte
o qualunque cosa significhi che ho bisogno di un
controller per questo quindi questo è come
quelli di questa roba angolare è giusto
integrato nel plugin angolare per
IntelliJ
e questo non è incorporato in IntelliJ così
chi sto appena ricevuto una serie di
diversi tipi di caffè che tu
potrebbe essere in grado di ordinare e per ora sono
usando un array hard-coded ma è possibile
immagina che con il tempo potresti farlo
refactoring questo è qualcosa che tu
estrarre un database o da un file o
da un altro servizio web qualcosa come
così ora ho bisogno di avere questo
qui dentro, quindi ho bisogno di div in questo è necessario
essere un controller NG perché ho detto lì
era un controller che ho bisogno di chiamare questo
guardando di nuovo ottengo il mio completamento automatico
quindi ho bisogno di chiamarlo la stessa cosa
è stato chiamato nel mio file JavaScript e io
avrò una leggera scorciatoia
per creare questo div con un gruppo di moduli
così potrebbe formare elementi sono separati io sono
andando a chiamare questo tipo di caffè e
Creerò un menu a discesa a
menu a discesa angolare popolato con
i dati dall’angolare così questo sta andando
essere tipo punto bevanda questo sarà
digitare il nome del punto per digitare i tipi e così via
qui il mio array è chiamato types e these
sono oggetti oggetti JavaScript
oggetti leggeri quindi hanno un
nome e una famiglia, quindi abbiamo il caffè
il caffè l’altra cosa che non è il caffè
e voglio solo visualizzare nella
menu a discesa Voglio solo visualizzare il
nome così per quello dico solo il nome del tipo
mostrami solo il nome del punto per ogni
digita lì quindi andrò a scorrere
su quello e spero si così ora noi
abbiamo il nostro tipo che abbiamo un menu a discesa
ho appena ricevuto gli stessi valori dal
ArrayList e io possiamo fare le cose che vorresti
si aspettano di essere in grado di farlo voglio essere
in grado di riordinare questo alfabeticamente
perché sta arrivando solo nell’ordine
è venuto dalla lista perché le liste sono di
di default ordinato e quindi sono gonna do che
dicendo ordine per nome
Oops, aspettatelo, signore, ce ne andiamo così a
Grande CLT, quindi è davvero così
roba semplice di usare angolare per ottenere
roba da una sorta di fonte di dati in
questo caso un array e semplicemente spingendolo
sullo schermo che è la storia ma come
la caffetteria ho bisogno di sapere che taglia
hai voluto perché va tutto bene e
buon cappuccino ma che dimensioni
se vuoi, ma voglio anche conoscere il tuo
nome quindi non lo do solo a
qualcuno a caso quindi è lo stesso tipo
di cose qui non c’è vera magia qui
Voglio solo costruire qualcosa che
è più utile quindi qui ho un array
di dimensioni medio piccole grandi queste sono
semplici queste sono solo stringhe che sono
non oggetti e allo stesso modo qui ho
quello era un intelligente per un altro
drop-down per le dimensioni qui ho solo bisogno di
fai taglia per taglia e taglia perché io sono
non tirando fuori un valore specifico dal
oggetto in modo che sia facile e poi qui
Avrò un nome anche per etichetta
il tuo nome e bere bevitore così è
tu lo renderò obbligatorio
campo in modo che tu sappia che puoi raccogliere
la bevanda giusta nella caffetteria e
allora ho intenzione di ricaricare così ora
abbiamo tipo e abbiamo dimensioni e io
puoi mettere il mio nome qui, ecco tutto
ottimo ma ti ho promesso angolare e
HTML della moderna applicazione web
sviluppo e finora hai visto
qualcosa che assomiglia un po ‘
le cose che stavo facendo nel 1997 non lo sono
terribilmente carina
quindi è qui che entra in gioco bootstrap
bootstrap è davvero carino
Libreria CSS da Twitter, penso e
è davvero fantastico davvero
Inserirò questo qui
bootstrap CSS
Ho già leggermente imbrogliato perché io
metti qui i nomi di classe corretti
comunque ho contenitore e forma
gruppo ho il controllo della forma quindi c’è un
un po ‘ di trucco l’altra cosa tu
il bisogno è l’incantesimo magico per fare
è amichevole sui telefoni che non lo farò
fingi di capire ma funziona
puoi vedere che non sono uno sviluppatore web
giusto in modo poi quando ho fatto che ho
magicamente qualcosa che tipo di sguardi
come se fosse un po ‘più lucido e il
la cosa bella è che le persone usano il web
strumenti di sviluppo in Chrome sì no
sapere come abbiamo fatto lo sviluppo web senza
prima, ma c’è anche un tipo interessante
di cosa qui puoi fare un’emulazione
modalità per il tuo cellulare che sto emulando
sul Nexus 5, quindi non puoi davvero vedere
molto bene ma hai l’idea di come
molto spazio occuperà il
schermo in modo che tu sappia anche farlo
in modalità mobile, ma non stiamo andando
di utilizzare tale perché nessuno può vedere che
quindi il pezzo che ho sempre trovato abbastanza
doloroso per lo sviluppo del web questa idea
di provare ad applicare un CSS in un modo utile
che lo deporrà in una bella
la moda e ha preso quasi zero tempo
a tutti scusa stavo facendo la storia tre
Non ci è voluto molto tempo per ottenere qualcosa
quella era una cosa molto semplice alla ricerca di un
un po ‘ più lucido e puoi immaginare
che puoi scorrere su questo e fare
è più personalizzato per te ma tu non hai
passare le età ad imparare CSS e a chiedersi
cosa dovrebbe essere un div e questo è
oops
ora ho fatto che ho uno schermo ma
In realtà devo essere in grado di inviarlo
inviare l’ordine al negozio questo è dove
iniziamo a fare il pezzo interessante di
legare la roba di front-end web al
il back-end Java che utilizza rest e JSON
e tutte quelle cose conformi al buzzword
quindi ovviamente abbiamo bisogno di un pulsante di input
e questo sarà chiamato dato
caffè più punti esclamativi è il
più hai bisogno della caffeina questi sono
classi che vengono dal bootstrap che sono
solo andando a rendere questo pulsante anche
più grande quindi ho intenzione di renderlo un grande
pulsante ho intenzione di mettere questo dentro a
forma che non dovrebbe essere uno shock per
chiunque me lo metta in un angolo
modulo è presente su questo e questo
sta per chiamare darmi caffè ora
prima di andare molto oltre con questo cosa
Mi piacerebbe fare è mi piacerebbe avere un
guardare i dati che sto per presentare al
il back – end quindi questo è più per il debug
scopi di ogni altra cosa
ma se emetto questo oggetto bevanda così tu
vedi che ho bevuto un sacco di drink
taglia bere bevitore cane così questo c’è
questa idea di un oggetto bevanda che sto per
uscita in stile JSON sullo schermo
abbiamo un grosso pulsante e poi come aggiungo
cose lì ho potuto vedere il mio oggetto JSON
quindi ho il mio oggetto che è
il tipo di bevanda ho il valore di stringa
per dimensione il valore stringa per per me Who
sono
quindi questa è la cosa che questo è il JSON
che verrà presentato al
backend quando premo questo pulsante così
implementiamo dammi un caffè nel mio
JavaScript mi serve scope dot mi dà
il caffè ha una nuova funzione funzionale
e poi sarà così che ottengo
un punto di ordine del caffè vuoto completo salva
che cosa ho intenzione di fare è che ho intenzione di
darlo nella vita reale o in un ulteriore
dopo l’iterazione avrà bisogno del
idea della caffetteria che sta succedendo
per andare, ma non abbiamo ancora fatto
abbiamo appena detto che questo è l’ordine, quindi lo sono
andando a hard-code un ID per il tempo
essendo la bevanda di scopo che è la cosa
lo abbiamo stampato sullo schermo
che deve essere presentato
Ora questo ordine di caffè sta per essere così
Non sono che non ho intenzione di fingere di essere
un esperto di migliori angolari o angolari
pratica affatto perché io non sono e io
imparato questo in circa una settimana ma
è il punto in cui puoi alzarti
e correre in questo abbastanza rapidamente
senza dover imparare tutto su
JavaScript HTML sul web e così via
buco così IntelliJ effettivamente fornisce
molte scorciatoie utili ma poi tu
Devo ricordare cosa sono caffè
ordina questo userà la risorsa
in cui andrò tra un minuto e
questo andrà a posto così è così
andando a prendere questo oggetto bevanda con
questo ID Coffee Shop pubblicherà
per tagliare il servizio che abbiamo detto
l’ URL per la barra delle classi Java
coffee shop perché nella mia risorsa
si chiama Slash Coffee Shop l’ID è
l’ID del coffee shop e pubblicherò
l’oggetto ordine fuori da quell’URL questo
risorsa qui ho bisogno di includere un altro
modulo da angolare per usare quello e il
risorse per fare le risorse web e così via
Devo includerlo anche qui
e poi in teoria in teoria se io se io
prova e pubblica questo ordine che abbiamo creato
eccolo ricaricarlo perché è tutto
cambia ciò che dovremmo vedere in
le risorse è che nella rete
risorse non puoi davvero vedere il testo
molto bene ma dovresti vederlo provare
per colpire quell’URL quindi ecco il mio ordine ok così
Ordineremo il servizio di caffetteria
e otteniamo un 404 che è corretto
freccia perché non l’ abbiamo implementata
ancora
quindi andiamo al backend e facciamo
un piccolo trucco per ottenere magicamente cosa
Voglio così questo è questo è l’URL
che ho detto che stavo facendo l’ID è il
ID negozio di caffè così percorso ID caffè
ID negozio che pubblicheremo e noi siamo
aspettando JSON e l’oggetto bevanda
quello era sull’interfaccia utente sarà un
ordinare l’oggetto nell’ordine di salvataggio del backend
e poi quando è fatto con successo lo sono
andando a creare un ho intenzione di restituire a
risposta di creato che è un 201 e
quindi devo creare l’URI e questo è
sarà l’idea dell’ordine così
più tardi, se voglio, posso averlo
ordine e ho intenzione di pubblicare i contenuti
l’ordine in modo che l’ interfaccia utente possa guardare
e fai cose utili con esso, quindi facciamolo
crea questa classe di ordine qui prendi
IntelliJ per creare questo per me, quindi cos’è
questo fatto mi ha creato un’idea
l’ordine per cui ho bisogno di un incantesimo magico
di ‘a Mongo Jack che questo è un ID per
MongoDB quindi quando dici qualcosa
MongoDB senza un ID di default lo farà
generare un ID oggetto ora voglio
trattalo come una corda che non voglio
trattalo come una classe ID oggetto MongoDB
perché non voglio che tutto ciò sfugga
sul mio dominio voglio solo trattarlo
come una stringa quindi ho bisogno di questa magia
l’incantesimo lo fa girare
in un ID oggetto quando va in
database e lo so per dirlo a Mongo
Jack, questo è l’ identificatore univoco
per questo oggetto
quindi costruiamo questi oggetti mentre andiamo
quindi voglio impostare questo ID del coffee shop
l’ordine imposta l’ ID della caffetteria
quindi questo mi ha creato un ID coffee shop
campo l’altra cosa è cos’altro
ci manca così qui questo è il JSON che
Mi aspetto di vedere postati sul sito
backend quindi voglio il mio ordine oggetto
guarda un po ‘ così, quindi facciamolo
incollalo lì dentro così che io sappia
come sembra, quindi lo ricordiamo
questo tipo è un oggetto a sé stante
quindi ho intenzione di creare una bevanda privata
scrivi qui solo per fare le cose come
il più semplice possibile, ho intenzione di mappare il
i nomi dei campi devono essere esattamente gli stessi di
il nome che esce dal JSON
non devi saperlo potresti dire che lo è
sarà chiamato qualcosa di diverso
se vuoi, ma la semplicità è
solo magicamente Maps per questo e
Verrò a quello tra un minuto
dimensione della stringa privata e privata I’m
avremo bisogno di questo più tardi selezionato
opzioni e sì, verrò
che più tardi e una stringa privata o
bevitore non che Trisha sia un bevitore
tutto no no no quindi creiamo questa bevanda
digitare un tipo di cluster elevato
e il tipo di bevanda aveva un nome e un
famiglia e questo è tutto ciò di cui abbiamo bisogno per bere
tipo ma perché questo è Java anche noi
bisogno di getter e abbiamo bisogno di un uguale e
hashcode questo è principalmente per i test
perché ho intenzione di fare confronti in
il test e abbiamo bisogno di una stringa di due così
che quando il mio test fallisce, posso vedere cosa
l’oggetto sembra quindi non lo so
cosa significano quando dicono che Java è per
entrambi quindi penso davvero che vada bene
niente di sbagliato in questa classe con due
i campi in esso sono assolutamente soddisfacenti
che cosa è che i setter non ho bisogno del
setter per questo e così la mamma no Jack
userà i getter per capire quale
campi per serializzare e deserializzare
o in ben Jackson lo farà per
il lato JSON e Mongo Jack lo faranno
questo lo metti in MongoDB che puoi usare
setter anche se lo sei
andando a giocare con i nomi e lo farei
anche io sì, li farei
immutabile e avere un costruttore con
tutte le cose dentro ma per ottenere il
questo è il minimo assoluto
tutto ciò che ti serve se ne stai facendo un po ‘
prototipazione rapida non sei abbastanza sicuro
della forma del tuo e dei tuoi oggetti
eppure tutto ciò di cui hai bisogno sono i campi e il
Gettoni e farà tutto ciò per
quindi torniamo al mio ordine perché
avremo anche bisogno di tutto il
getter per l’ordine perché ne ho uno
costruttore non ho bisogno di uno di quelli così
Ho bisogno di tutte le mie supposizioni per queste non sono
andando a mettere equals e hashcode e
roba, perché non ho bisogno di quelli per la
i test mi servivano solo per il
prova così quello che vogliamo fare però
Certo è la carne di chi lo vuole
salvalo in MongoDB . Ho ricevuto un
è stato ordinato dal cliente
serializzato magicamente da JSON al mio
il tipo di ordine che è bello è appena arrivato
due oggetti principali da trattare non lo faccio
avere a che fare con la colla di dire get
questo campo ottiene questo campo per ottenere questo campo
è solo preso cura di ma io voglio
salvo che in MongoDB così ho intenzione di
salvalo nel mio database
oh dai IntelliJ non mi deludere ora
e voglio che sia definitivo perché
è una cosa buona da fare per MongoDB
l’idea di non è un database sequel
un database di documenti è ancora presente in a
Tipo di JSON non in tabelle e colonne
e file e cose del genere e così via
invece di avere tavoli che abbiamo
collezioni quindi ho intenzione di ottenere il mio
raccolta di ordini che potrei effettivamente
ho chiamato l’ordine ora ci penso
Non sono sicuro che vedremo il test
dimmi se ho fatto di sbagliato e in
per ottenere magicamente Jack Mongo
trasforma il mio oggetto ordine in qualcosa che
MongoDB capisce che ho bisogno di creare un
collezione jackson DB Sto andando a finire
questa raccolta di ordini sottostante sono
andando a dargli il tipo che ha bisogno
trasformando così sto memorizzando gli ordini così
Ho bisogno di dargli una classe doc di ordine
perché Java è un po ‘nervosa su
i generici, per esempio, lo darò
il tipo di ID perché sto memorizzando
è come una stringa non come un ID oggetto così
Darò quel tipo di ID
così così poi finisco con a
collezione che viene digitata con ordine e
stringa e quindi è un semplice come
punto di raccolta inserire ordine
e lo fa semplicemente salvandolo
il database per te, ovviamente, lo sono
andando a fare una sorta di errore
maneggiando forse è solo un po ‘semplice
gestione degli errori di base solo perché è un
buona cosa da fare e ovviamente come tuo
l’applicazione matura è possibile aggiungere altro
gestione complessa degli errori per diversi
casi di errore, ma se non è voglio
return response dot chiamiamolo server
errore che non è giusto perché
quello è un 500 e se è dovrebbe
forse si tratta di un errore diverso ma quello
lo farò per ora se avrà successo cosa
Devo fare è che Mongo avrà
mi ha assegnato un ID univoco per questo ordine
quindi ho bisogno di impostare il mio ID e questo sta andando
per tornare sul risultato giusto quindi prendi
ID salvato e questo tornerà come a
stringa perché ho detto che era una stringa
tipo ora in teoria è tutto ciò di cui ho bisogno
fai ma perché cos’è quello che ho fatto
quell’ultima volta e mi sono chiesto perché l’avessi tenuto
ottenendo ulteriori errori grazie e
è per questo che ti accoppi alle persone perché
le persone sono idioti vuol dire non tu no
ovviamente sei ovviamente molto più intelligente
di me ma non puoi vedere quando sei
quello vicino così ho scritto un test di spock
qualcuno sa chi è Spock
e non saprai cosa sia Spock
Spock è fantastico e se lo fai
test di unità o test di accettazione i
sicuramente dare un’occhiata a Spock è
scritto in groovy che mi ha fatto un po ‘
come oh non voglio scrivere groovy
codice perché, come scrivo Java, non lo faccio
bisogno di codice groovy ma è molto di più è
molto più descrittivo, quindi qui voglio
fai questo così il mio test dovrebbe darmi
indietro l’ ID ordine quando un ordine è
creato con successo e questo è un
stringa e ho dato un dato e quando e
allora ed è solo molto di più
descrittivo cosa sta succedendo in quel modo
ti costringe a pensare a cosa è impostato
qual’è la cosa che sei in realtà
test e poi quali sono i tuoi
asserzioni e rende anche beffardo
come se fosse davvero ridicolmente facile, così eravamo
passare tutti i nostri test unitari a Spock
anche se doveva essere
scrivere solo Java per Java
Driver Java per MongoDB quindi corriamo
questo e vedere cosa ho fatto di sbagliato
perché sicuramente farò qualcosa
sbagliato come sempre perché e io non voglio
per avviare il server e quindi fare l’interfaccia utente
roba da scoprire ho fatto qualcosa di sbagliato
i test unitari mi mostreranno molto prima
quello che ho fatto di sbagliato così qui ho cambiato il
firma quindi ci vuole un database ma io
non ho detto come inizializzare il Mongo
database ora ho intenzione di eseguire il mio io sono
facendo muovere il mio mago su default così da
il client Mongo predefinito è localhost su 27
Oh qualcosa qualcosa quindi non trovo
quelli perché li ho già ma
Potrei passare l’host o l’indirizzo
di dove si trova il server è semplicissimo
e poi ho solo bisogno di ottenere il database
da lì quindi il client Mongo ottiene il database
Caffè Trisha
e passa che ora il mio test dovrebbe passare
downside una Spock è un po ‘
più lento rispetto all’utilizzo dell’unità unità J dell’unità di test
prova bene in modo che sia diventato verde sì
amo il test verde che mi danno
convalida della mia esistenza che non lo è
davvero vero che sarebbe abbastanza triste se
è vero quindi avere un test funzionale come
beh, quello era solo un test unitario, quindi l’ho fatto
alcuni mock beffeggiano il database ora
Voglio un test funzionale solo per fornire
quel ulteriore passo di sicurezza per essere sicuri
Sto salvando tutti i campi che penso di essere
salvare nel database che significa I
bisogno di ruotare la mia istanza MongoDB e
per farlo ho solo bisogno di iniziare
MongoDB è tutto in esecuzione, facciamolo
dare un’occhiata veloce al momento così
se mostro DB’s oh no, l’ ho già ricevuto
caffè , liberiamoci di quello, quindi facciamolo
chiaro che questo è crearne uno nuovo
ricominciamo da capo
quanto sconcertante
lascia perdere
far cadere
si, vedo che il drop database cadrà
dB sì così ora dobbiamo vedere che abbiamo we
non ho tutto ciò che non puoi davvero vedere
molto bene, ma non può cambiare la dimensione del carattere
su quello dice alcuni admin del database e
locale quindi non ci sono database in
lì al momento quindi se gestiamo questo
test funzionale e stiamo inserendo questo
nel caffè Trisha il database e il
raccolta di ordini ed è diventato verde
la prima volta è incredibile
non me l’ aspettavo e poi se andiamo
qui e abbiamo appena mostriamo DB E ‘
ho creato il caffè Trisha, quindi lo faremo
usa il caffè Trisha e faremo dB
gli ordini di dot trovare solo giocare in una bella
modo in cui non puoi davvero vedere la forma di
quella fila bene ma abbiamo questo
ID oggetto generato che MongoDB ha dato
noi abbiamo questo documento incorporato che
è il tipo di bevanda con un nome e il
famiglia abbiamo un campo semplice che è
una dimensione di mezzo in cui abbiamo una matrice
qui quali sono le opzioni selezionate in
questo caso il latte di soia abbiamo bevuto
e poi abbiamo un ID coffee shop come
bene quindi è fondamentalmente JSON – è–
dati memorizzati in MongoDB ora se noi dove
ero io se riavviamo il nostro web server
dovrebbe prendere il nostro nuovo messaggio che abbiamo
creato un nuovo metodo, quindi dobbiamo fare a
ricominciare non sta andando a caldo
distribuirlo in teoria ora quando pubblichiamo
questo non dovremmo ottenere il 404 ok così
quello che abbiamo fatto qui è che abbiamo
due o uno lo creano e se guardo qui
Posso cambiare la dimensione di questa vista loro
partire
è un po ‘meglio così ora se lo troviamo
ne abbiamo due abbiamo quello che era
creato dal test e abbiamo il
uno che ho creato dalla pagina web e
non hanno esattamente le stesse dimensioni
forma perché questa cosa ha una matrice
in esso e questa cosa non ha un
array in esso e va benissimo
A Mongo non interessa quello che è
perché è abbastanza buono per la prototipazione e
rapido sviluppo perché si può solo
Chuck roba lì dentro su qualsiasi forma e
è come se fosse tutto a posto, è solo
Spetta a voi come si ottiene che i dati avanti e
come lo analizzi a che ora sono io
ottenuto dieci minuti dieci minuti raffreddano cosa
potrebbe andare male
stiamo salvando cose nel database
e ho ancora dieci minuti rimasti così
abbastanza buono ma vogliamo fare del bene
cose di cui abbiamo sentito parlare
DevOps e sulle responsabilità di
gli sviluppatori di provare e rendere le cose come
facile come possibile nella transizione a
produzione ad esempio una delle cose
non vuoi veramente è la tua produzione
web server esaurito di memoria o
connessioni o semplicemente cadendo
per qualsiasi motivo, quindi è necessario
assicurati di chiudere tutto il tuo Mongo
connessioni quando il tuo server web si chiude
giù e rilascia wizard lo fa davvero
facile da gestire cose come questo gestiscono
il ciclo di vita di questa roba così così
tutto ciò che dobbiamo fare per essere un responsabile
lo sviluppatore è nel nostro servizio di caffetteria
dove abbiamo creato il nostro cliente Mongo
è necessario aggiungere una nuova risorsa di gestione
Non so perché me lo chieda
non sapevo nemmeno di dover andare avanti
qui creo campo per questo blah blah
bla Ho solo bisogno di essere gestito
implementare tutti i miei metodi da qui a
MongoDB Non mi interessa cosa succede
all’inizio forse potrei volerlo fare
qualcosa come fare una connessione di prova
e assicurarsi che sia lì e
è tutto ok
ma per questo scopo non ho bisogno di e
al momento non importa a questo
ma su stop quello che ho bisogno di fare è io
bisogno di chiudere tutte le mie connessioni quando noi
fermare il webserver ed è semplice come
quella
e ora ho solo bisogno di riavviare il mio web
server e solo assicurarsi che tutto
funziona ancora allo stesso modo in cui è supposto
a
e possiamo vedere qui che cosa è così
è grandioso ed eravamo responsabili
gli sviluppatori e ci sono voluti come zero
sforzo ora una delle cose che non fai
vuole davvero che gli utenti facciano il check-in
Finestra di Google Chrome Network per fare
sicuro che il loro ordine è stato inviato proprio così
vuoi dare una sorta di feedback
dicendo si il tuo ordine è stato ricevuto grazie
molto, quindi ne useremo alcuni
widget dal bootstrap dell’interfaccia utente per farlo
noi così questa interfaccia utente avvia una sorta di figo
usa alcune cose angolari e alcune
roba di bootstrap per darti un bel po ‘
bei widget che sono riutilizzabili e tu
puoi fare cose interessanti con loro?
senza che tu debba scrivere tutto
da zero ora ora devo solo
ricorda come farlo, quindi facciamolo
noi stessi un nuovo array chiamato messaggi
non ha niente al momento
quello che vogliamo fare è su questo caffè
ordine punto salva ci sono alcuni extra
parametri che possiamo inserire qui, così posso
inserisci un callback di successo, quindi lo farò
dì ecco quello che ho preparato prima oh no
voi ragazzi non l’avete capito in questo paese
non importa
e così quando voglio avere successo
salva quindi su questo array di messaggi che sono
andando a spingere un messaggio di tipo successo
con un messaggio di ordine inviato ora tu
potrei fare ogni genere di cose con questo così
per esempio, stavo inviando l’ordine
ID e l’intero ordine oggetti se tu
volevo che tu potessi mostrare i dettagli
dell’ordine nel messaggio di successo
potrebbe ricollegare all’ordine originale
roba del genere ma per la cosa semplice
Sto solo andando a dire sì ho capito
tutto andava bene e poi me ne vado
mettere qui
una scorciatoia che non riesco a ricordare oh guarda
quel messaggio sì sì che era un altro
non imbrogliare e IntelliJ mi legge
momento così qui sto usando questo avviso
cosa riutilizzabile per leggere tutto dentro
quella matrice di messaggi e visualizzarla
un modo utile ho anche bisogno di un modo per
chiudo così ho bisogno di un avviso ravvicinato che
chiuderà che verso il basso
e questo sta usando il bootstrap dell’interfaccia utente, quindi ho bisogno
per aggiungere questo al bootstrap dell’interfaccia utente dei miei moduli
e qui ho bisogno di aggiungere il bootstrap dell’interfaccia utente
j / s sei un bootstrap e poi
dovrebbe funzionare
quindi ora ho un bel verde che è verde
giusto io sono rosso daltonico verde quindi io
non posso dire la differenza ma ottieni un
bel segnale verde in alto che dice sì
il tuo ordine è stato inviato e potresti metterlo
cose lì dentro come un link all’ordine
e puoi chiuderlo e il
l’altra cosa che potresti fare, naturalmente, sono io
aggiunto un messaggio di successo ma il prossimo
il parametro in sarebbe un messaggio di errore
quindi qualcosa è andato storto che potrei visualizzare
un avviso che dice che non sono riuscito a trovare un server
o il tuo ordine è ridicolo e c’è
nessun modo stiamo andando a soddisfare tale
ci sono un paio di altre cose in più che
volevo coprire ma non penso che abbiamo
ho avuto tempo quindi questo nel back-end ho aggiunto
questo array per le opzioni selezionate così tu
potrebbe tipo di freeform aggiungere come il latte di soia
e caramello e decaffeinato e intendo chi
vuole un caffè decaffeinato che è ridicolo e
essere in grado di creare liberamente anche cose
e volevo mostrare che è possibile aggiungere
questo e basta metterli in MongoDB
senza sapere che cosa MongoDB quelli
i valori sono ed è tutto a posto
devo solo credermi sulla parola perché
Penso di non avere tempo per farlo ma
quello che volevo mostrare è che ho bisogno di farlo
so dove prendere questo caffè da me
disse che stavamo per ordinarlo al nostro
la caffetteria più vicina ma non l’ho ancora fatto
qualsiasi cosa sulla caffetteria più vicina e
Ho hard coded un ID negozio di caffè in modo da
non ha idea di dove sta andando, quindi sono
intenzione di utilizzare alcuni dei mongos geolocalizzazione
caratteristiche geografiche per mostrare come geo roba
lavora con Mongo ed è solo una specie di
è solo una cosa che esce con la scatola
se ti va tanto basta parlare di quello che vogliamo
per fare è che vogliamo scrivere in primo luogo che ho
un copione groovy che non è il primo
prima ho usato
oh questa era una pessima idea che sta per succedere
prendi per sempre oh mio Dio
Sono i dati della mappa stradale che ho scaricato a
mazzo di dati della mappa stradale a cielo aperto
Modulo XML che ha l’amenità di
necessariamente la cucina della caffetteria
quindi tutto ciò che ha una cucina di
coffee shop l’ho scaricato in questo
File XML non è completo ma
è comunque una buona indicazione e ma
questo XML non ha la forma di MongoDB
ne ha bisogno in primo luogo non è un XML
Jason e in secondo luogo ha la latitudine
e longitudine dei punti come
attributi sull’XML
Ho bisogno di quelli in forma Geo Jason prima di me
posso metterlo in MongoDB perché ciò che io
voglio è una lista di tutte le caffetterie
ovviamente in MongoDB quindi ho scritto un groovy
script per fare questo perché groovy è il mio
nuovo giocattolo preferito e voglio anche mostrare
che con groovy puoi connetterti
direttamente su MongoDB usando Java
driver nello stesso modo in cui lo si fa in Java
senza problemi ho intenzione di leggere
questo file di risorse del coffee shop sono
andando a passare attraverso ciascuno di questi XML
Node è davvero la roba XML in Groovy
davvero fantastico se hai fatto roba XML
in Java è doloroso e nel complesso è
è intuitivo quindi voglio scegliere il
la latitudine e la longitudine dall’XML
e voglio metterlo in questo formato
che è il formato Geo JSON e poi se
ha un nome allora se ha un nome
ed è valido quindi lo metterò
in MongoDB quindi ho intenzione di scappare
questo ce ne sono alcuni
Ho 887 3 4 così ora voglio fare in
Qui
Conto medico DB coffee shop che ho ora
Ho ottomila settecento e
trentaquattro caffetterie qui, quindi se
vogliamo fare diamo un’occhiata a uno
di questi così ora possiamo vedere che è in natura
di forma JSON e l’ho messo in geo
La posizione di Jason ok è come un sacco di
così quello che voglio fare è che voglio esserlo
in grado di tornare voglio darti o di
dare MongoDB nella mia posizione attuale
che è qui e per restituire il
la caffetteria più vicina numero uno a quella
punto così facciamo che qui siamo
andando a fare questo come ottenere perché noi
voglio avere la nostra nuova posizione così piccola
un piccolo imbroglio ci si avvicina
suona un oggetto e un altro piccolo
piccolo imbroglio perché sapevo che stavo per
a corto di tempo, quindi faremo
che non stiamo usando MUNGO JERRY noi
non ho bisogno di usare il jack Mongo che usiamo
il driver Java raw che userò
collezione di coffee shop e poi io sono
andando a creare questa query mettiamo
questo qui in modo che possiamo vedere in modo interrogazione
costruttore utilizzando il campo posizione perché
è lì che sto andando
per dargli il mio attuale massachu de’longhi
Tude e dì trovami il più vicino
entro due chilometri e questo è
speriamo di trovarci il nostro più vicino
coffee shop e se non ne trova uno
Avrò un 404 perché quello è il
giusto errore per provare facciamo test che abbiamo
ha capito bene così Chicago quando ho corso
questo piuttosto tristemente il caffè più vicino
il negozio si rivela essere Starbucks che
non l’ho davvero ristretto e quello
è diventato verde, quindi è così che funziona
Posso almeno ridistribuirlo e vedere se
Posso farlo funzionare sul web
server come faremmo a entrare nel tempo
tre minuti è una gara contro il
orologio e non so cosa sto guardando
per il bene era il nostro controller precedente
per ordinare il caffè avremo un
nuovo controller per caffè coffee shop
negozi che ho creato
prima e io non sono un esperto di angolare
quindi non so se è meglio
pratica ma so che funziona
e quello che vogliamo qui è la caffetteria
localizzatore perché è quello che passo
qui lì e ho bisogno di risorse e non
quello e qui ho intenzione di fare il get to
il metodo che ho appena creato su
server e poi finalmente ho bisogno di un pulsante
chiamare ciò che non riesco a ricordare cosa
è chiamato
Stavo andando bene così bene che ho chiamato
trova il mio caffè ok, quindi questo è un altro
div che usa la caffetteria
controller che ho appena creato succede
avere un tasto in esso, che è ottenuto bene la mia
coffee shop e questo licenzierà il
la chiamata per trovare una caffetteria più vicina
per me ora devo accendere il Wi-Fi
il che significa che probabilmente ricevo 30.000 tweet
messaggi quando accendo che in
per favore inizia a mangiare qualsiasi cosa e quando io
premere trova la mia caffetteria sì
Starbucks è il mio bar più vicino che ho
creato un enorme trucco per provare e mostrare
su Google, qual è il tuo passaggio
il nome e la posizione e lo farà
forse mostralo a te che non volevo
fai un’intera incorporazione di Google Maps in
la cosa perché non è quello che questo
parlare è tutto e apparentemente il
la conferenza Wi-Fi non ne ha affatto
ma prendi la mia parola per quello che è
lo Starbucks più vicino a questo hotel e
questa è la mia app web integrata sotto a
ora vi ringrazio molto
il video di questa presentazione è già
andato su
quindi ho pensato bene dato che c’è un video
ne sto già andando completamente
riscriverlo per questo che ho fatto sul
piano sulla strada così che non lo è
irto di pericoli tutto ciò che sarà
completamente bene il punto qui è io
voleva dimostrare un edificio
applicazione end-to-end tra cui MongoDB
al back-end ovviamente perché è così
per chi lavoro ma un’app web dal
front end e prova a farlo entro 50
minuti da mostrare principalmente per smentire questo
idea che Java sia un po ‘lento e
boilerplate II e tu vuoi fare il tuo
prototipazione in Ruby e poi alla fine
migrarlo alla JVM che tipo di ricercato
per confutare tutto questo quindi è completamente
applicazione conforme alla buzzword che sto facendo
angolare in HTML5 e JavaScript e tutti
quella roba nuova funky con bootstrap per
l’interfaccia utente e sto usando una libreria davvero
libreria leggera chiamata drop wizard
che riunisce molti standard
e molte librerie standard da costruire
un back-end web in Java
ovviamente MongoDB utilizza una libreria chiamata
Mongo Jack per parlare con MongoDB che
vedrai un po ‘più tardi e poi
in una sorta di ruoli secondari che vedrai
grade o groovy Spock e io mi chino
molto intensamente su IntelliJ IDEA
questa performance che ora mi sento molto bene
preoccupato perché Dan ha detto prima
quello appoggiato all’IDE è un segno di a
molta complessità che può o non può
essere il caso e l’idea qui è così chi
è una persona Java qui bravo, io sono te
facendo anche JavaScript o principalmente
JavaScript e alcuni di voi quindi se
le persone Java che potresti imparare un po ‘
su alcuni di angularjs e web
roba di front-end ero molto nuovo a questo io
non ho fatto nulla per lo sviluppo web
per cinque o sei anni se lo hai già fatto
fatto angolare e questo genere di cose allora
probabilmente non stai andando a prendere
qualsiasi cosa nuova qui l’idea è solo per
tipo di mostrare tutto ciò che funziona
end-to-end ovviamente non ho tempo
per entrare in qualsiasi cosa in una profondità reale
e per le persone non Java poi mi piacciono
voglio dimostrare che Java non lo è
necessariamente grandi, pesanti e goffi e
goffa anche se potresti o meno essere d’accordo
con questa conclusione e ovviamente
avrai un’idea di come usare MongoDB
prototipo rapidamente intendo uno dei
le idee di MongoDB sono davvero
leggero è molto facile da ottenere
iniziato nella tua applicazione senza
dovendo tipo di venire con questi
enormi schemi di dati in anticipo e tu
stava andando a spingere davvero fortemente su
quanto imparerai a usare
il tuo IDE ma ora mi sento davvero nervoso
a dire che così potresti imparare
che se hai gli strumenti giusti tu
può essere molto produttivo se sai come
usare quegli strumenti incluso il tuo IDE
l’idea dell’app è molto semplice
l’app è progettata per funzionare sul tuo telefono
non è un’app per Android perché non lo sono
quello mentale è che navighi
a una pagina web che individuerà per te
la tua caffetteria più vicina che tu inserirai
ordina quel caffè e poi lo farai
entra in quella caffetteria e prendi il
caffè e, si spera, bevi quel caffè
è un’app piuttosto semplice che i concetti
sono abbastanza semplici probabilmente di qualcuno
già fatto qualcosa di simile, ma io
volevo qualcosa che fosse una specie di reale
vita possibile app non è un’app giocattolo
necessariamente dimostrare questo
funzionalità end-to-end quindi saltiamo
dritto perché sono molto preoccupato
su come fare tutto in 50
minuti voglio farlo in un certo modo
di user story in modo tale che la storia sia zero
è come un utente di questa fantastica applicazione
e devo essere in grado di vederlo ora
sembra un po ‘come la storia zero
implementare app e non è proprio quello che
Intendevo che è fondamentalmente il codice per come
sviluppatore ho bisogno di un app server da distribuire
anche questo e ho bisogno di un po ‘ di
infrastruttura e quadro prima di me
può andare così tuffiamoci dentro
Riesci a vedere che va bene nella parte posteriore o fare
vuoi che lo faccia diventare più grande alzi la mano
se lo vuoi più grande di te va bene
bene
è abbastanza grande – grande abbastanza grande sì
okay , sto usando Gradle per gestire il mio
dipendenze che usano Gradle piuttosto a
alcuni di voi non sono così tanti, va bene così
chi non sa cosa Gradle è ok così
Gradle tipo di me lo sto usando per lo più
è quello di inserire le mie dipendenze per Java
solo per il lato Java non è il
front-end è solo Java e qui
Devo eseguire alcune dipendenze, quindi
ho detto che avrei usato il drop wizard
quindi questo è qui e Mongo Jack
per parlare con MongoDB gli altri lo sono
testare le dipendenze e questo è tutto
che c’è da fare per Gradle al tipo di ottenere
attivo e funzionante posso creare questo nel mio
script di compilazione massivo se voglio che sia
una sceneggiatura di massa ma fuori dal mondo
scatola
funziona e ho un sacco di cose
obiettivi predefiniti come specifiche come test e
corri, compila, costruisci e tutto il resto
genere di cose
quindi questa è una versione di più
scheletro File di build Gradle che puoi avere
quindi questo è Gradle quindi quello che devo fare è
Creerò un servizio che è
andando a girare il back-end e ottenere
il mio app server in esecuzione su questo è
non è meglio
se le persone hanno domande a metà strada
quindi possono chiedere loro ma io posso o non posso
Non ho tempo o capacità di rispondere a loro
mentre sto scrivendo allo stesso tempo ma
sentiti libero di gridare domande così
sta per estendere un servizio di wizard drop
e ora ricordo che non ho messo il mio
occhiali e non riesco a vedere nulla
il caffè e questo ha bisogno di questo a
file di configurazione quindi ho intenzione di dare
è una configurazione di coffee shop, ma io sono
non farò davvero niente con
questo perché non ho niente di speciale
configurazione per il mio per il mio servizio
Ho intenzione di implementare l’impostazione predefinita
metodi che sto per ottenere IntelliJ – tu
non posso davvero vedere nulla di tutto ciò puoi
è un po ‘troppo grande
puoi leggere abbastanza o vogliamo
rendilo un po ‘più piccolo silenzio ma a
un po ‘ piccolo un po’ più piccolo proviamo
che in mezzo ok che sembra adattarsi su
lo schermo ed è un po ‘più grande di quello
Era prima che tutto bene, quindi sto solo andando
ottenere IntelliJ per risolvere tutti i miei problemi
per me che è estendere questa cosa
quest’altra cosa non ho davvero bisogno di
preoccuparsi troppo di questo
inizializzazione arriverò tra un minuto
e la corsa in cui arriverò tra un minuto
questo è il nostro principale, questo è il nostro principale
applicazione che sta per eseguire sul
back-end quindi ha bisogno di una statica pubblica
metodo principale vuoto che è un valore predefinito
scorciatoia che arriva in IntelliJ così io
non dovevo fare un sacco di digitazione
semplicemente funziona, abbiamo un nuovo coffee shop
Il punto di servizio che sta per prendere il mio
Args, ho intenzione di dirlo per affrontare
eccezioni nel modo in cui sa come
implementare la risorsa del metodo di esecuzione
Ho tipizzato la caffetteria un sacco di volte e io
stava creando questo e questo sta per
essere la mia risorsa di ricerca sul Web, il mio Web
risorsa di servizi in modo che le persone lo usino
servizi web riposanti okay ce ne sono alcuni
annuisce in giro per la stanza, quindi questo è il mio
servizio web riposante per ulteriori informazioni
è possibile leggere i servizi web di Weber
e Weber valgono la pena di prenotare un libro
ma ho intenzione di dirlo che è il mio
instradare con l’app dicendo che il percorso è
Mi piacerebbe essere una caffetteria del taglio
riguardo al consumo e alla creazione di JSON, lo sono
non farò molto con questo adesso
che sicuramente verrò a questo
più tardi, ma ho bisogno di uno di quelli per ottenere il mio
applicazione funzionante ora se ci provo
ed eseguirlo dovrebbe fallire per il
ragione corretta che sarà non ho
dato abbastanza inizializzazione ancora così io
ho bisogno di dirgli cosa sto cercando di correre
come un server
oops
che ho scritto male
ora quando corro non dovrebbe essere un errore
cosa dovremmo vedere
oh no ti ho lasciato entrare così noi
dovrebbe vedere un 404 quindi questo significa almeno
Ho un server Web attivo e funzionante
super facile peasy non ho questo
file HTML di caffè, quindi sto ricevendo un
404 ora una delle cose che mi piace davvero
di questo è caduta con molo di sadducees
come il suo server web ed è super
leggero e super veloce e l’ho usato
prima e trovo questo davvero carino
soprattutto per lo sviluppo perché il
il tempo di avvio è come un secondo o due e
che ora viene ora ho fatto questo come
parte della procedura guidata di rilascio lo fa semplicemente tutto
quello per me così si fa avanti
e non devo preoccuparmi anche di questo
molto ora quello che voglio fare è che ho bisogno di farlo
servire il mio file HTML di caffè estetico
chiamiamo questo qualcosa di utile e io
devo dirlo che sto andando a servire
contenuto statico così come il mio Java per
ho a che fare con le mie risorse web, quindi ho bisogno
avere un file di configurazione e ho bisogno
per imbrogliare ho appena avuto un trucco
lì perché altrimenti lo scriverò
sbagliato che dice che tutto ciò che pubblico o
ottenere dal / url all’URL con barra
servizio in esso voglio che per andare al mio
roba java che voglio che vada a
in definitiva le risorse della caffetteria vanno bene così
è così che indico tutte queste cose
laggiù e poi quello che voglio fare è
Voglio dire che voglio servire una statica
HTML pure in modo che era un po ‘un
imbrogliare anche perché tutto questo digitando
sarebbe troppo noioso e quindi qui dico
Ho intenzione di inizializzare la mia applicazione
con questo pacchetto di barre HTML è dove il mio
HTML è nelle risorse barra HTML e
quindi tutto ciò che va solo dritto al
la radice dell’applicazione I
voglio che serva per contenuti HTML statici per
così che cosa dovresti vedere quando lo faccio
questo è se riavvio il
server c’è un sacco di cose negative
e si spera nei boschi quando lo fai
questa cosa demo dal vivo o totalmente non funziona
cosa non ho fatto, mi ricordo che è il
stessa cosa che faccio sempre male, ma tu
bisogno di dirgli dove trovare il
file di configurazione quindi deve avere
config sai che cosa si chiamava caffè
dot sì a maggior ragione ora che quando si riavvia
non più 404 e dal titolo in
il meglio sappiamo che stiamo servendo il
la pagina corretta va bene così è stata una specie di
il il male necessario del programma di installazione ora quando
Ho iniziato a progetti in passato ho
ho sempre trovato che stava prendendo tutto
e in esecuzione ottenendo un server web
la la colla per ottenere tutto
il lavoro è abbastanza noioso ma ho appena fatto
ho scoperto che con drop wizard non lo è
così difficile è solo poche righe di
codice e tutto è tipo di incollato
insieme e pronto per iniziare
implementando le cose più interessanti
nella mia domanda quindi la storia come una
bevitore di caffè mi piacerebbe essere in grado
per selezionare il caffè che voglio ordinare
perché altrimenti qual è il punto così
che cosa ho intenzione di fare è che ho intenzione di
avere un menu a discesa qui che è il
tipo di caffè posso ordinare e sto andando
per farlo nell’angolare, quindi facciamolo
sbarazzarsi delle cose di cui non abbiamo bisogno
significa che lo trasformerò in un
App angolare oops non ho potuto che mettere in
il posto sbagliato e ho bisogno di includere
angolare questa è una scorciatoia che intellij
viene con così non devo digitare
tutto e anche molto bene
autocompleta anche sul mio include
quale io quando stavo facendo sviluppo web
circa cinque anni fa tutto era giusto
digitando a destra e ora molto di questo
è automatizzato quindi fai molto meno a
molti meno errori quindi l’altra cosa
necessità è che ho bisogno del mio file javascript
che chiamerò sorprendentemente
caffè ho bisogno di creare uno di quelli
Devo dirgli che è un modulo angolare
questa è un’altra scorciatoia che viene con
IntelliJ coffee e ho capito le cose
Mi aspetterei come programmatore Java che posso
estrai questo come variabile anche se
è JavaScript come questo è probabilmente
non abituato ad alcuni di voi ma per me
è stato davvero bello poter usare a
IDE corretto per fare JavaScript
sviluppo, perché ho sempre fatto in
Blocco note prima di destra quindi ho creato il mio
applicazione che ho incluso nel mio
Pagina HTML ho bisogno di un ho bisogno della lista di
bevande da selezionare, quindi voglio essere
in grado di selezionare un cappuccino o un latte
o qualunque cosa significhi che ho bisogno di un
controller per questo quindi questo è come
quelli di questa roba angolare è giusto
integrato nel plugin angolare per
IntelliJ
e questo non è incorporato in IntelliJ così
chi sto appena ricevuto una serie di
diversi tipi di caffè che tu
potrebbe essere in grado di ordinare e per ora sono
usando un array hard-coded ma è possibile
immagina che con il tempo potresti farlo
refactoring questo è qualcosa che tu
estrarre un database o da un file o
da un altro servizio web qualcosa come
così ora ho bisogno di avere questo
qui dentro, quindi ho bisogno di div in questo è necessario
essere un controller NG perché ho detto lì
era un controller che ho bisogno di chiamare questo
guardando di nuovo ottengo il mio completamento automatico
quindi ho bisogno di chiamarlo la stessa cosa
è stato chiamato nel mio file JavaScript e io
avrò una leggera scorciatoia
per creare questo div con un gruppo di moduli
così potrebbe formare elementi sono separati io sono
andando a chiamare questo tipo di caffè e
Creerò un menu a discesa a
menu a discesa angolare popolato con
i dati dall’angolare così questo sta andando
essere tipo punto bevanda questo sarà
digitare il nome del punto per digitare i tipi e così via
qui il mio array è chiamato types e these
sono oggetti oggetti JavaScript
oggetti leggeri quindi hanno un
nome e una famiglia, quindi abbiamo il caffè
il caffè l’altra cosa che non è il caffè
e voglio solo visualizzare nella
menu a discesa Voglio solo visualizzare il
nome così per quello dico solo il nome del tipo
mostrami solo il nome del punto per ogni
digita lì quindi andrò a scorrere
su quello e spero si così ora noi
abbiamo il nostro tipo che abbiamo un menu a discesa
ho appena ricevuto gli stessi valori dal
ArrayList e io possiamo fare le cose che vorresti
si aspettano di essere in grado di farlo voglio essere
in grado di riordinare questo alfabeticamente
perché sta arrivando solo nell’ordine
è venuto dalla lista perché le liste sono di
di default ordinato e quindi sono gonna do che
dicendo ordine per nome
Oops, aspettatelo, signore, ce ne andiamo così a
Grande CLT, quindi è davvero così
roba semplice di usare angolare per ottenere
roba da una sorta di fonte di dati in
questo caso un array e semplicemente spingendolo
sullo schermo che è la storia ma come
la caffetteria ho bisogno di sapere che taglia
hai voluto perché va tutto bene e
buon cappuccino ma che dimensioni
se vuoi, ma voglio anche conoscere il tuo
nome quindi non lo do solo a
qualcuno a caso quindi è lo stesso tipo
di cose qui non c’è vera magia qui
Voglio solo costruire qualcosa che
è più utile quindi qui ho un array
di dimensioni medio piccole grandi queste sono
semplici queste sono solo stringhe che sono
non oggetti e allo stesso modo qui ho
quello era un intelligente per un altro
drop-down per le dimensioni qui ho solo bisogno di
fai taglia per taglia e taglia perché io sono
non tirando fuori un valore specifico dal
oggetto in modo che sia facile e poi qui
Avrò un nome anche per etichetta
il tuo nome e bere bevitore così è
tu lo renderò obbligatorio
campo in modo che tu sappia che puoi raccogliere
la bevanda giusta nella caffetteria e
allora ho intenzione di ricaricare così ora
abbiamo tipo e abbiamo dimensioni e io
puoi mettere il mio nome qui, ecco tutto
ottimo ma ti ho promesso angolare e
HTML della moderna applicazione web
sviluppo e finora hai visto
qualcosa che assomiglia un po ‘
le cose che stavo facendo nel 1997 non lo sono
terribilmente carina
quindi è qui che entra in gioco bootstrap
bootstrap è davvero carino
Libreria CSS da Twitter, penso e
è davvero fantastico davvero
Inserirò questo qui
bootstrap CSS
Ho già leggermente imbrogliato perché io
metti qui i nomi di classe corretti
comunque ho contenitore e forma
gruppo ho il controllo della forma quindi c’è un
un po ‘ di trucco l’altra cosa tu
il bisogno è l’incantesimo magico per fare
è amichevole sui telefoni che non lo farò
fingi di capire ma funziona
puoi vedere che non sono uno sviluppatore web
giusto in modo poi quando ho fatto che ho
magicamente qualcosa che tipo di sguardi
come se fosse un po ‘più lucido e il
la cosa bella è che le persone usano il web
strumenti di sviluppo in Chrome sì no
sapere come abbiamo fatto lo sviluppo web senza
prima, ma c’è anche un tipo interessante
di cosa qui puoi fare un’emulazione
modalità per il tuo cellulare che sto emulando
sul Nexus 5, quindi non puoi davvero vedere
molto bene ma hai l’idea di come
molto spazio occuperà il
schermo in modo che tu sappia anche farlo
in modalità mobile, ma non stiamo andando
di utilizzare tale perché nessuno può vedere che
quindi il pezzo che ho sempre trovato abbastanza
doloroso per lo sviluppo del web questa idea
di provare ad applicare un CSS in un modo utile
che lo deporrà in una bella
la moda e ha preso quasi zero tempo
a tutti scusa stavo facendo la storia tre
Non ci è voluto molto tempo per ottenere qualcosa
quella era una cosa molto semplice alla ricerca di un
un po ‘ più lucido e puoi immaginare
che puoi scorrere su questo e fare
è più personalizzato per te ma tu non hai
passare le età ad imparare CSS e a chiedersi
cosa dovrebbe essere un div e questo è
oops
ora ho fatto che ho uno schermo ma
In realtà devo essere in grado di inviarlo
inviare l’ordine al negozio questo è dove
iniziamo a fare il pezzo interessante di
legare la roba di front-end web al
il back-end Java che utilizza rest e JSON
e tutte quelle cose conformi al buzzword
quindi ovviamente abbiamo bisogno di un pulsante di input
e questo sarà chiamato dato
caffè più punti esclamativi è il
più hai bisogno della caffeina questi sono
classi che vengono dal bootstrap che sono
solo andando a rendere questo pulsante anche
più grande quindi ho intenzione di renderlo un grande
pulsante ho intenzione di mettere questo dentro a
forma che non dovrebbe essere uno shock per
chiunque me lo metta in un angolo
modulo è presente su questo e questo
sta per chiamare darmi caffè ora
prima di andare molto oltre con questo cosa
Mi piacerebbe fare è mi piacerebbe avere un
guardare i dati che sto per presentare al
il back – end quindi questo è più per il debug
scopi di ogni altra cosa
ma se emetto questo oggetto bevanda così tu
vedi che ho bevuto un sacco di drink
taglia bere bevitore cane così questo c’è
questa idea di un oggetto bevanda che sto per
uscita in stile JSON sullo schermo
abbiamo un grosso pulsante e poi come aggiungo
cose lì ho potuto vedere il mio oggetto JSON
quindi ho il mio oggetto che è
il tipo di bevanda ho il valore di stringa
per dimensione il valore stringa per per me Who
sono
quindi questa è la cosa che questo è il JSON
che verrà presentato al
backend quando premo questo pulsante così
implementiamo dammi un caffè nel mio
JavaScript mi serve scope dot mi dà
il caffè ha una nuova funzione funzionale
e poi sarà così che ottengo
un punto di ordine del caffè vuoto completo salva
che cosa ho intenzione di fare è che ho intenzione di
darlo nella vita reale o in un ulteriore
dopo l’iterazione avrà bisogno del
idea della caffetteria che sta succedendo
per andare, ma non abbiamo ancora fatto
abbiamo appena detto che questo è l’ordine, quindi lo sono
andando a hard-code un ID per il tempo
essendo la bevanda di scopo che è la cosa
lo abbiamo stampato sullo schermo
che deve essere presentato
Ora questo ordine di caffè sta per essere così
Non sono che non ho intenzione di fingere di essere
un esperto di migliori angolari o angolari
pratica affatto perché io non sono e io
imparato questo in circa una settimana ma
è il punto in cui puoi alzarti
e correre in questo abbastanza rapidamente
senza dover imparare tutto su
JavaScript HTML sul web e così via
buco così IntelliJ effettivamente fornisce
molte scorciatoie utili ma poi tu
Devo ricordare cosa sono caffè
ordina questo userà la risorsa
in cui andrò tra un minuto e
questo andrà a posto così è così
andando a prendere questo oggetto bevanda con
questo ID Coffee Shop pubblicherà
per tagliare il servizio che abbiamo detto
l’ URL per la barra delle classi Java
coffee shop perché nella mia risorsa
si chiama Slash Coffee Shop l’ID è
l’ID del coffee shop e pubblicherò
l’oggetto ordine fuori da quell’URL questo
risorsa qui ho bisogno di includere un altro
modulo da angolare per usare quello e il
risorse per fare le risorse web e così via
Devo includerlo anche qui
e poi in teoria in teoria se io se io
prova e pubblica questo ordine che abbiamo creato
eccolo ricaricarlo perché è tutto
cambia ciò che dovremmo vedere in
le risorse è che nella rete
risorse non puoi davvero vedere il testo
molto bene ma dovresti vederlo provare
per colpire quell’URL quindi ecco il mio ordine ok così
Ordineremo il servizio di caffetteria
e otteniamo un 404 che è corretto
freccia perché non l’ abbiamo implementata
ancora
quindi andiamo al backend e facciamo
un piccolo trucco per ottenere magicamente cosa
Voglio così questo è questo è l’URL
che ho detto che stavo facendo l’ID è il
ID negozio di caffè così percorso ID caffè
ID negozio che pubblicheremo e noi siamo
aspettando JSON e l’oggetto bevanda
quello era sull’interfaccia utente sarà un
ordinare l’oggetto nell’ordine di salvataggio del backend
e poi quando è fatto con successo lo sono
andando a creare un ho intenzione di restituire a
risposta di creato che è un 201 e
quindi devo creare l’URI e questo è
sarà l’idea dell’ordine così
più tardi, se voglio, posso averlo
ordine e ho intenzione di pubblicare i contenuti
l’ordine in modo che l’ interfaccia utente possa guardare
e fai cose utili con esso, quindi facciamolo
crea questa classe di ordine qui prendi
IntelliJ per creare questo per me, quindi cos’è
questo fatto mi ha creato un’idea
l’ordine per cui ho bisogno di un incantesimo magico
di ‘a Mongo Jack che questo è un ID per
MongoDB quindi quando dici qualcosa
MongoDB senza un ID di default lo farà
generare un ID oggetto ora voglio
trattalo come una corda che non voglio
trattalo come una classe ID oggetto MongoDB
perché non voglio che tutto ciò sfugga
sul mio dominio voglio solo trattarlo
come una stringa quindi ho bisogno di questa magia
l’incantesimo lo fa girare
in un ID oggetto quando va in
database e lo so per dirlo a Mongo
Jack, questo è l’ identificatore univoco
per questo oggetto
quindi costruiamo questi oggetti mentre andiamo
quindi voglio impostare questo ID del coffee shop
l’ordine imposta l’ ID della caffetteria
quindi questo mi ha creato un ID coffee shop
campo l’altra cosa è cos’altro
ci manca così qui questo è il JSON che
Mi aspetto di vedere postati sul sito
backend quindi voglio il mio ordine oggetto
guarda un po ‘ così, quindi facciamolo
incollalo lì dentro così che io sappia
come sembra, quindi lo ricordiamo
questo tipo è un oggetto a sé stante
quindi ho intenzione di creare una bevanda privata
scrivi qui solo per fare le cose come
il più semplice possibile, ho intenzione di mappare il
i nomi dei campi devono essere esattamente gli stessi di
il nome che esce dal JSON
non devi saperlo potresti dire che lo è
sarà chiamato qualcosa di diverso
se vuoi, ma la semplicità è
solo magicamente Maps per questo e
Verrò a quello tra un minuto
dimensione della stringa privata e privata I’m
avremo bisogno di questo più tardi selezionato
opzioni e sì, verrò
che più tardi e una stringa privata o
bevitore non che Trisha sia un bevitore
tutto no no no quindi creiamo questa bevanda
digitare un tipo di cluster elevato
e il tipo di bevanda aveva un nome e un
famiglia e questo è tutto ciò di cui abbiamo bisogno per bere
tipo ma perché questo è Java anche noi
bisogno di getter e abbiamo bisogno di un uguale e
hashcode questo è principalmente per i test
perché ho intenzione di fare confronti in
il test e abbiamo bisogno di una stringa di due così
che quando il mio test fallisce, posso vedere cosa
l’oggetto sembra quindi non lo so
cosa significano quando dicono che Java è per
entrambi quindi penso davvero che vada bene
niente di sbagliato in questa classe con due
i campi in esso sono assolutamente soddisfacenti
che cosa è che i setter non ho bisogno del
setter per questo e così la mamma no Jack
userà i getter per capire quale
campi per serializzare e deserializzare
o in ben Jackson lo farà per
il lato JSON e Mongo Jack lo faranno
questo lo metti in MongoDB che puoi usare
setter anche se lo sei
andando a giocare con i nomi e lo farei
anche io sì, li farei
immutabile e avere un costruttore con
tutte le cose dentro ma per ottenere il
questo è il minimo assoluto
tutto ciò che ti serve se ne stai facendo un po ‘
prototipazione rapida non sei abbastanza sicuro
della forma del tuo e dei tuoi oggetti
eppure tutto ciò di cui hai bisogno sono i campi e il
Gettoni e farà tutto ciò per
quindi torniamo al mio ordine perché
avremo anche bisogno di tutto il
getter per l’ordine perché ne ho uno
costruttore non ho bisogno di uno di quelli così
Ho bisogno di tutte le mie supposizioni per queste non sono
andando a mettere equals e hashcode e
roba, perché non ho bisogno di quelli per la
i test mi servivano solo per il
prova così quello che vogliamo fare però
Certo è la carne di chi lo vuole
salvalo in MongoDB . Ho ricevuto un
è stato ordinato dal cliente
serializzato magicamente da JSON al mio
il tipo di ordine che è bello è appena arrivato
due oggetti principali da trattare non lo faccio
avere a che fare con la colla di dire get
questo campo ottiene questo campo per ottenere questo campo
è solo preso cura di ma io voglio
salvo che in MongoDB così ho intenzione di
salvalo nel mio database
oh dai IntelliJ non mi deludere ora
e voglio che sia definitivo perché
è una cosa buona da fare per MongoDB
l’idea di non è un database sequel
un database di documenti è ancora presente in a
Tipo di JSON non in tabelle e colonne
e file e cose del genere e così via
invece di avere tavoli che abbiamo
collezioni quindi ho intenzione di ottenere il mio
raccolta di ordini che potrei effettivamente
ho chiamato l’ordine ora ci penso
Non sono sicuro che vedremo il test
dimmi se ho fatto di sbagliato e in
per ottenere magicamente Jack Mongo
trasforma il mio oggetto ordine in qualcosa che
MongoDB capisce che ho bisogno di creare un
collezione jackson DB Sto andando a finire
questa raccolta di ordini sottostante sono
andando a dargli il tipo che ha bisogno
trasformando così sto memorizzando gli ordini così
Ho bisogno di dargli una classe doc di ordine
perché Java è un po ‘nervosa su
i generici, per esempio, lo darò
il tipo di ID perché sto memorizzando
è come una stringa non come un ID oggetto così
Darò quel tipo di ID
così così poi finisco con a
collezione che viene digitata con ordine e
stringa e quindi è un semplice come
punto di raccolta inserire ordine
e lo fa semplicemente salvandolo
il database per te, ovviamente, lo sono
andando a fare una sorta di errore
maneggiando forse è solo un po ‘semplice
gestione degli errori di base solo perché è un
buona cosa da fare e ovviamente come tuo
l’applicazione matura è possibile aggiungere altro
gestione complessa degli errori per diversi
casi di errore, ma se non è voglio
return response dot chiamiamolo server
errore che non è giusto perché
quello è un 500 e se è dovrebbe
forse si tratta di un errore diverso ma quello
lo farò per ora se avrà successo cosa
Devo fare è che Mongo avrà
mi ha assegnato un ID univoco per questo ordine
quindi ho bisogno di impostare il mio ID e questo sta andando
per tornare sul risultato giusto quindi prendi
ID salvato e questo tornerà come a
stringa perché ho detto che era una stringa
tipo ora in teoria è tutto ciò di cui ho bisogno
fai ma perché cos’è quello che ho fatto
quell’ultima volta e mi sono chiesto perché l’avessi tenuto
ottenendo ulteriori errori grazie e
è per questo che ti accoppi alle persone perché
le persone sono idioti vuol dire non tu no
ovviamente sei ovviamente molto più intelligente
di me ma non puoi vedere quando sei
quello vicino così ho scritto un test di spock
qualcuno sa chi è Spock
e non saprai cosa sia Spock
Spock è fantastico e se lo fai
test di unità o test di accettazione i
sicuramente dare un’occhiata a Spock è
scritto in groovy che mi ha fatto un po ‘
come oh non voglio scrivere groovy
codice perché, come scrivo Java, non lo faccio
bisogno di codice groovy ma è molto di più è
molto più descrittivo, quindi qui voglio
fai questo così il mio test dovrebbe darmi
indietro l’ ID ordine quando un ordine è
creato con successo e questo è un
stringa e ho dato un dato e quando e
allora ed è solo molto di più
descrittivo cosa sta succedendo in quel modo
ti costringe a pensare a cosa è impostato
qual’è la cosa che sei in realtà
test e poi quali sono i tuoi
asserzioni e rende anche beffardo
come se fosse davvero ridicolmente facile, così eravamo
passare tutti i nostri test unitari a Spock
anche se doveva essere
scrivere solo Java per Java
Driver Java per MongoDB quindi corriamo
questo e vedere cosa ho fatto di sbagliato
perché sicuramente farò qualcosa
sbagliato come sempre perché e io non voglio
per avviare il server e quindi fare l’interfaccia utente
roba da scoprire ho fatto qualcosa di sbagliato
i test unitari mi mostreranno molto prima
quello che ho fatto di sbagliato così qui ho cambiato il
firma quindi ci vuole un database ma io
non ho detto come inizializzare il Mongo
database ora ho intenzione di eseguire il mio io sono
facendo muovere il mio mago su default così da
il client Mongo predefinito è localhost su 27
Oh qualcosa qualcosa quindi non trovo
quelli perché li ho già ma
Potrei passare l’host o l’indirizzo
di dove si trova il server è semplicissimo
e poi ho solo bisogno di ottenere il database
da lì quindi il client Mongo ottiene il database
Caffè Trisha
e passa che ora il mio test dovrebbe passare
downside una Spock è un po ‘
più lento rispetto all’utilizzo dell’unità unità J dell’unità di test
prova bene in modo che sia diventato verde sì
amo il test verde che mi danno
convalida della mia esistenza che non lo è
davvero vero che sarebbe abbastanza triste se
è vero quindi avere un test funzionale come
beh, quello era solo un test unitario, quindi l’ho fatto
alcuni mock beffeggiano il database ora
Voglio un test funzionale solo per fornire
quel ulteriore passo di sicurezza per essere sicuri
Sto salvando tutti i campi che penso di essere
salvare nel database che significa I
bisogno di ruotare la mia istanza MongoDB e
per farlo ho solo bisogno di iniziare
MongoDB è tutto in esecuzione, facciamolo
dare un’occhiata veloce al momento così
se mostro DB’s oh no, l’ ho già ricevuto
caffè , liberiamoci di quello, quindi facciamolo
chiaro che questo è crearne uno nuovo
ricominciamo da capo
quanto sconcertante
lascia perdere
far cadere
si, vedo che il drop database cadrà
dB sì così ora dobbiamo vedere che abbiamo we
non ho tutto ciò che non puoi davvero vedere
molto bene, ma non può cambiare la dimensione del carattere
su quello dice alcuni admin del database e
locale quindi non ci sono database in
lì al momento quindi se gestiamo questo
test funzionale e stiamo inserendo questo
nel caffè Trisha il database e il
raccolta di ordini ed è diventato verde
la prima volta è incredibile
non me l’ aspettavo e poi se andiamo
qui e abbiamo appena mostriamo DB E ‘
ho creato il caffè Trisha, quindi lo faremo
usa il caffè Trisha e faremo dB
gli ordini di dot trovare solo giocare in una bella
modo in cui non puoi davvero vedere la forma di
quella fila bene ma abbiamo questo
ID oggetto generato che MongoDB ha dato
noi abbiamo questo documento incorporato che
è il tipo di bevanda con un nome e il
famiglia abbiamo un campo semplice che è
una dimensione di mezzo in cui abbiamo una matrice
qui quali sono le opzioni selezionate in
questo caso il latte di soia abbiamo bevuto
e poi abbiamo un ID coffee shop come
bene quindi è fondamentalmente JSON – è–
dati memorizzati in MongoDB ora se noi dove
ero io se riavviamo il nostro web server
dovrebbe prendere il nostro nuovo messaggio che abbiamo
creato un nuovo metodo, quindi dobbiamo fare a
ricominciare non sta andando a caldo
distribuirlo in teoria ora quando pubblichiamo
questo non dovremmo ottenere il 404 ok così
quello che abbiamo fatto qui è che abbiamo
due o uno lo creano e se guardo qui
Posso cambiare la dimensione di questa vista loro
partire
è un po ‘meglio così ora se lo troviamo
ne abbiamo due abbiamo quello che era
creato dal test e abbiamo il
uno che ho creato dalla pagina web e
non hanno esattamente le stesse dimensioni
forma perché questa cosa ha una matrice
in esso e questa cosa non ha un
array in esso e va benissimo
A Mongo non interessa quello che è
perché è abbastanza buono per la prototipazione e
rapido sviluppo perché si può solo
Chuck roba lì dentro su qualsiasi forma e
è come se fosse tutto a posto, è solo
Spetta a voi come si ottiene che i dati avanti e
come lo analizzi a che ora sono io
ottenuto dieci minuti dieci minuti raffreddano cosa
potrebbe andare male
stiamo salvando cose nel database
e ho ancora dieci minuti rimasti così
abbastanza buono ma vogliamo fare del bene
cose di cui abbiamo sentito parlare
DevOps e sulle responsabilità di
gli sviluppatori di provare e rendere le cose come
facile come possibile nella transizione a
produzione ad esempio una delle cose
non vuoi veramente è la tua produzione
web server esaurito di memoria o
connessioni o semplicemente cadendo
per qualsiasi motivo, quindi è necessario
assicurati di chiudere tutto il tuo Mongo
connessioni quando il tuo server web si chiude
giù e rilascia wizard lo fa davvero
facile da gestire cose come questo gestiscono
il ciclo di vita di questa roba così così
tutto ciò che dobbiamo fare per essere un responsabile
lo sviluppatore è nel nostro servizio di caffetteria
dove abbiamo creato il nostro cliente Mongo
è necessario aggiungere una nuova risorsa di gestione
Non so perché me lo chieda
non sapevo nemmeno di dover andare avanti
qui creo campo per questo blah blah
bla Ho solo bisogno di essere gestito
implementare tutti i miei metodi da qui a
MongoDB Non mi interessa cosa succede
all’inizio forse potrei volerlo fare
qualcosa come fare una connessione di prova
e assicurarsi che sia lì e
è tutto ok
ma per questo scopo non ho bisogno di e
al momento non importa a questo
ma su stop quello che ho bisogno di fare è io
bisogno di chiudere tutte le mie connessioni quando noi
fermare il webserver ed è semplice come
quella
e ora ho solo bisogno di riavviare il mio web
server e solo assicurarsi che tutto
funziona ancora allo stesso modo in cui è supposto
a
e possiamo vedere qui che cosa è così
è grandioso ed eravamo responsabili
gli sviluppatori e ci sono voluti come zero
sforzo ora una delle cose che non fai
vuole davvero che gli utenti facciano il check-in
Finestra di Google Chrome Network per fare
sicuro che il loro ordine è stato inviato proprio così
vuoi dare una sorta di feedback
dicendo si il tuo ordine è stato ricevuto grazie
molto, quindi ne useremo alcuni
widget dal bootstrap dell’interfaccia utente per farlo
noi così questa interfaccia utente avvia una sorta di figo
usa alcune cose angolari e alcune
roba di bootstrap per darti un bel po ‘
bei widget che sono riutilizzabili e tu
puoi fare cose interessanti con loro?
senza che tu debba scrivere tutto
da zero ora ora devo solo
ricorda come farlo, quindi facciamolo
noi stessi un nuovo array chiamato messaggi
non ha niente al momento
quello che vogliamo fare è su questo caffè
ordine punto salva ci sono alcuni extra
parametri che possiamo inserire qui, così posso
inserisci un callback di successo, quindi lo farò
dì ecco quello che ho preparato prima oh no
voi ragazzi non l’avete capito in questo paese
non importa
e così quando voglio avere successo
salva quindi su questo array di messaggi che sono
andando a spingere un messaggio di tipo successo
con un messaggio di ordine inviato ora tu
potrei fare ogni genere di cose con questo così
per esempio, stavo inviando l’ordine
ID e l’intero ordine oggetti se tu
volevo che tu potessi mostrare i dettagli
dell’ordine nel messaggio di successo
potrebbe ricollegare all’ordine originale
roba del genere ma per la cosa semplice
Sto solo andando a dire sì ho capito
tutto andava bene e poi me ne vado
mettere qui
una scorciatoia che non riesco a ricordare oh guarda
quel messaggio sì sì che era un altro
non imbrogliare e IntelliJ mi legge
momento così qui sto usando questo avviso
cosa riutilizzabile per leggere tutto dentro
quella matrice di messaggi e visualizzarla
un modo utile ho anche bisogno di un modo per
chiudo così ho bisogno di un avviso ravvicinato che
chiuderà che verso il basso
e questo sta usando il bootstrap dell’interfaccia utente, quindi ho bisogno
per aggiungere questo al bootstrap dell’interfaccia utente dei miei moduli
e qui ho bisogno di aggiungere il bootstrap dell’interfaccia utente
j / s sei un bootstrap e poi
dovrebbe funzionare
quindi ora ho un bel verde che è verde
giusto io sono rosso daltonico verde quindi io
non posso dire la differenza ma ottieni un
bel segnale verde in alto che dice sì
il tuo ordine è stato inviato e potresti metterlo
cose lì dentro come un link all’ordine
e puoi chiuderlo e il
l’altra cosa che potresti fare, naturalmente, sono io
aggiunto un messaggio di successo ma il prossimo
il parametro in sarebbe un messaggio di errore
quindi qualcosa è andato storto che potrei visualizzare
un avviso che dice che non sono riuscito a trovare un server
o il tuo ordine è ridicolo e c’è
nessun modo stiamo andando a soddisfare tale
ci sono un paio di altre cose in più che
volevo coprire ma non penso che abbiamo
ho avuto tempo quindi questo nel back-end ho aggiunto
questo array per le opzioni selezionate così tu
potrebbe tipo di freeform aggiungere come il latte di soia
e caramello e decaffeinato e intendo chi
vuole un caffè decaffeinato che è ridicolo e
essere in grado di creare liberamente anche cose
e volevo mostrare che è possibile aggiungere
questo e basta metterli in MongoDB
senza sapere che cosa MongoDB quelli
i valori sono ed è tutto a posto
devo solo credermi sulla parola perché
Penso di non avere tempo per farlo ma
quello che volevo mostrare è che ho bisogno di farlo
so dove prendere questo caffè da me
disse che stavamo per ordinarlo al nostro
la caffetteria più vicina ma non l’ho ancora fatto
qualsiasi cosa sulla caffetteria più vicina e
Ho hard coded un ID negozio di caffè in modo da
non ha idea di dove sta andando, quindi sono
intenzione di utilizzare alcuni dei mongos geolocalizzazione
caratteristiche geografiche per mostrare come geo roba
lavora con Mongo ed è solo una specie di
è solo una cosa che esce con la scatola
se ti va tanto basta parlare di quello che vogliamo
per fare è che vogliamo scrivere in primo luogo che ho
un copione groovy che non è il primo
prima ho usato
oh questa era una pessima idea che sta per succedere
prendi per sempre oh mio Dio
Sono i dati della mappa stradale che ho scaricato a
mazzo di dati della mappa stradale a cielo aperto
Modulo XML che ha l’amenità di
necessariamente la cucina della caffetteria
quindi tutto ciò che ha una cucina di
coffee shop l’ho scaricato in questo
File XML non è completo ma
è comunque una buona indicazione e ma
questo XML non ha la forma di MongoDB
ne ha bisogno in primo luogo non è un XML
Jason e in secondo luogo ha la latitudine
e longitudine dei punti come
attributi sull’XML
Ho bisogno di quelli in forma Geo Jason prima di me
posso metterlo in MongoDB perché ciò che io
voglio è una lista di tutte le caffetterie
ovviamente in MongoDB quindi ho scritto un groovy
script per fare questo perché groovy è il mio
nuovo giocattolo preferito e voglio anche mostrare
che con groovy puoi connetterti
direttamente su MongoDB usando Java
driver nello stesso modo in cui lo si fa in Java
senza problemi ho intenzione di leggere
questo file di risorse del coffee shop sono
andando a passare attraverso ciascuno di questi XML
Node è davvero la roba XML in Groovy
davvero fantastico se hai fatto roba XML
in Java è doloroso e nel complesso è
è intuitivo quindi voglio scegliere il
la latitudine e la longitudine dall’XML
e voglio metterlo in questo formato
che è il formato Geo JSON e poi se
ha un nome allora se ha un nome
ed è valido quindi lo metterò
in MongoDB quindi ho intenzione di scappare
questo ce ne sono alcuni
Ho 887 3 4 così ora voglio fare in
Qui
Conto medico DB coffee shop che ho ora
Ho ottomila settecento e
trentaquattro caffetterie qui, quindi se
vogliamo fare diamo un’occhiata a uno
di questi così ora possiamo vedere che è in natura
di forma JSON e l’ho messo in geo
La posizione di Jason ok è come un sacco di
così quello che voglio fare è che voglio esserlo
in grado di tornare voglio darti o di
dare MongoDB nella mia posizione attuale
che è qui e per restituire il
la caffetteria più vicina numero uno a quella
punto così facciamo che qui siamo
andando a fare questo come ottenere perché noi
voglio avere la nostra nuova posizione così piccola
un piccolo imbroglio ci si avvicina
suona un oggetto e un altro piccolo
piccolo imbroglio perché sapevo che stavo per
a corto di tempo, quindi faremo
che non stiamo usando MUNGO JERRY noi
non ho bisogno di usare il jack Mongo che usiamo
il driver Java raw che userò
collezione di coffee shop e poi io sono
andando a creare questa query mettiamo
questo qui in modo che possiamo vedere in modo interrogazione
costruttore utilizzando il campo posizione perché
è lì che sto andando
per dargli il mio attuale massachu de’longhi
Tude e dì trovami il più vicino
entro due chilometri e questo è
speriamo di trovarci il nostro più vicino
coffee shop e se non ne trova uno
Avrò un 404 perché quello è il
giusto errore per provare facciamo test che abbiamo
ha capito bene così Chicago quando ho corso
questo piuttosto tristemente il caffè più vicino
il negozio si rivela essere Starbucks che
non l’ho davvero ristretto e quello
è diventato verde, quindi è così che funziona
Posso almeno ridistribuirlo e vedere se
Posso farlo funzionare sul web
server come faremmo a entrare nel tempo
tre minuti è una gara contro il
orologio e non so cosa sto guardando
per il bene era il nostro controller precedente
per ordinare il caffè avremo un
nuovo controller per caffè coffee shop
negozi che ho creato
prima e io non sono un esperto di angolare
quindi non so se è meglio
pratica ma so che funziona
e quello che vogliamo qui è la caffetteria
localizzatore perché è quello che passo
qui lì e ho bisogno di risorse e non
quello e qui ho intenzione di fare il get to
il metodo che ho appena creato su
server e poi finalmente ho bisogno di un pulsante
chiamare ciò che non riesco a ricordare cosa
è chiamato
Stavo andando bene così bene che ho chiamato
trova il mio caffè ok, quindi questo è un altro
div che usa la caffetteria
controller che ho appena creato succede
avere un tasto in esso, che è ottenuto bene la mia
coffee shop e questo licenzierà il
la chiamata per trovare una caffetteria più vicina
per me ora devo accendere il Wi-Fi
il che significa che probabilmente ricevo 30.000 tweet
messaggi quando accendo che in
per favore inizia a mangiare qualsiasi cosa e quando io
premere trova la mia caffetteria sì
Starbucks è il mio bar più vicino che ho
creato un enorme trucco per provare e mostrare
su Google, qual è il tuo passaggio
il nome e la posizione e lo farà
forse mostralo a te che non volevo
fai un’intera incorporazione di Google Maps in
la cosa perché non è quello che questo
parlare è tutto e apparentemente il
la conferenza Wi-Fi non ne ha affatto
ma prendi la mia parola per quello che è
lo Starbucks più vicino a questo hotel e
questa è la mia app web integrata sotto a
ora vi ringrazio molto
Please follow and like us: