
così anche quando qualcos’altro faccio
un sacco di fotografia e c’è questo
foto che ho fatto da qualche parte nei bambini
e ha una piccola storia in realtà io così
è come se non sapessi che è un posto
nel mezzo della Francia, dove tu hai
come questa montagna di sabbia e tu vai
c’è davvero interessante ma poi
sei lassù e vedi come puoi
scendi facilmente ma non riesci a salire
poi dopo è così difficile arrampicarsi
In realtà, davvero, voglio dire che lo sarai
correndo per cinque minuti
per scoprire che non ti sei affatto mosso
e tu sai che sono andato a prendere un
l’immagine dall’alto mi sembra interessante
scatta una foto da giù e poi quando
Sono giù era come fare buio e
stava arrivando la pioggia, l’ avrei visto attraverso
venendo la foresta e ho iniziato a prendere dal panico
perché ho due fotocamere con obiettivi
e non dovrebbe bagnarsi e vedo il
Arriva la pioggia e cerco di eseguire run run e
Sono ancora nello stesso posto in cui non l’ho fatto
muoviti del tutto e questo è ciò che io
significa che sono abbastanza rilassato ma
Ho iniziato davvero a prendere dal panico, intendo davvero
panico perché vedi come non lo sei
avanzando c’è ancora molta strada fino
lì e quello è quando ho imparato come uno
prendi in giro solo alcuni segni dove sei tu
dove e poi vedrai che sei
avanzando e questo ti fermerà da
panico perché il panico è che lo farò
iniziare con davvero sentirsi male e poi io
iniziare come me mettere qualche roccia un po ‘
rocce a un certo livello corrono e vedono
come va bene ne ho fatti alcuni
differenza e quindi posso andare avanti così
è stata davvero una bella scoperta in nessuno
situazione che era un po ‘imbarazzante per me
come se non mi fossi mai sentito prendere dal panico e così a
bella storia dietro questa immagine è gentile
di non succede molto spesso quindi sono così
scusatemi groovy, ho lavorato in un bel
poche lingue e ultimamente ho lavorato su
naturalmente Java e Scala per riscriverlo
giocare quadro ciò che noi chiamiamo giocare troppo
che è come quello che uscirà a marzo
e abbiamo iniziato a lavorarci l’anno scorso
intorno ad agosto
e abbiamo progettato il gioco del giocatore
quadro progettato da zero per
supporto web reattivo e in tempo reale
e ne parleremo di più così e
Sono anche un direttore tecnico presso
la prossima città la compagnia che è quella
dietro gioco in modo che mi piace condividere la mia squadra
Guillaume lavoriamo insieme che abbiamo co-creato
il gioco – lo ha creato e trovato
insieme con pesante la prima versione di
giocare
lui è il nostro CEO nella prossima città, è raro
avere come un amministratore delegato che lo capisca
molta tecnologia ed è così bello
come fresco come pesante è per questo che vorrei
Voglio dire, condivido la sua foto qui perché io
pensa come se fosse davvero essenziale
l’intero lavoro con esso sul gioco e su
la prossima città ed è abbastanza aperto
capisce la tecnologia e spinge per
avanti ovviamente con denaro proprio questo
è importante così e la prossima città che facciamo
architetture orientate al web che significa
come usare la tecnologia web o quello che abbiamo ottenuto
sul web per fare architetture per
aziende per banche come per no
trasformando tutte queste grandi imprese
nel web e come aiutarli a fare
tutto il software tutto lì
sistemi in cima al web, quindi cos’è
Play Framework bene Play Framework è un
framework web che si rivolge a gvm Java
e Scala ed è un po ‘ come i mimi
cerca di dare questa esperienza di ciò che noi
conoscere in Ruby on Rails in rail the
l’ esperienza delle rotaie era come se tutto fosse
tutto è pensato interattivo
come lucidato e darò volontà
mostrarti velocemente come appare il gioco
ed è stato come ho detto che era architettura
per supportare come web oriented
architettura e web in tempo reale che
parleremo su di esso e ha un
modello reattivo basato su futures e it
arathi IO non mi interessa di questo
le cose tecniche sanno solo come sono
fatto per reattivo e moderno web così
andiamo al mio qui, è qui
bene così che tu sappia che è molto
struttura familiare in gioco questa è una
controller del controller ha metodi
ogni metodo lo sta facendo una azione
corrisponde a una rotta che è scritta
nel file di percorso e sarai giusto
restituendo lo stato HTTP in questo caso
sarà così ad esempio qui lo farà
essere uno stato ok con la chiamata di alcuni
alcuni modelli così piuttosto standard MVC
struttura vediamo come voliamo, no
nascondi il web così quando ritorni
qualcosa dovresti dire che va bene o
non è divertente o qualunque altro stato noi
in realtà siamo molto attenti su
questo genere di cose perché pensiamo a noi
dovrebbe usare il web e non combattere contro
e questo è uno dei principali
principi di gioco ora se vado a correre
anche questo funziona come te
userà il comando play run che è
in realtà che avvia l’applicazione
e continua a compilare il codice al volo
giusto ogni volta che aggiorni il tuo browser
va e ci andiamo così ora così questo
è il risultato dell’applicazione se vado
torna alla app e vado a cambiare
qualcosa e poi vado a rinfrescarlo
va bene
un errore di compilazione e non solo lo farà
dimmi come esattamente dove ho preso il
problema e poi vado a risolvere il problema
indietro e lo faccio funzionare così di questo tipo
di mettere a fuoco sul browser anche gli errori
dovrebbe accadere nel browser bene
formattato in modo tale che tu debba concentrarti
come uno sul tuo codice e uno su
il sul browser questo è molto
importante come non 100 console 100
cose come due cose il tuo browser e
il tuo codice va bene così che si tratta di lis di
Certo che supportiamo anche uno come Scala
in modo nativo quindi è per Scala e Java
e la cosa interessante è che tu
può iniziare con Java e poi fare un po ‘
controller in Scala alcuni codoni in Java
ed evolvi in questo modo se vuoi
esempio per iniziare a capire come
Inada
la lingua di Scala quindi puoi iniziare
come progressivamente in questo modo se vuoi
come alcune parti del sistema di cui hanno bisogno
un linguaggio funzionale alcune parti
puoi farli con Java allora puoi
mettilo nello stesso progetto che c’è
nessun problema OK Indietro alle diapositive I
dovrebbe trovarli così così che la storia
qui come perché ci piace che stiamo parlando
sul lavoro web in tempo reale proviamo a
ricorda come da che parte proviene il web
l’ inizio come ha iniziato il web
iniziato come queste pagine statiche come
Pagine HTML proprio dove una società lo farà
metti un indirizzo e qualcosa e tu
sai che fai clic su questo ed è solo un
pagina statica nulla in là e poi
come scopriamo che possiamo mettere i contatori per
per gli utenti che sai contare quante
gli utenti stanno accadendo e questo è come
venendo completamente dal server Wow noi
può contare le persone e possiamo persino averne
alcune date dal da e la data
e il tempo che viene dal server I
sai perché è bello ma ma sembrava
fresco al momento per ottenere il tempo
dal server e quindi aveva senso
e abbiamo iniziato ad aggiungere sempre di più
roba dinamica nelle pagine a destra
qualcosa di simile a ciò che ASP e pesca fanno
stanno facendo come lo stesso modello di pagina
pagina statica ma aggiungiamo come dinamica
parti in quella pagina e
sai che un business ha preso questo e ha iniziato
come abbiamo iniziato a fare un sacco di
cose interessanti con l’applicazione
ma sempre con lo stesso modello giusto
pagina parti dinamiche e abbiamo scoperto
che non è scala perché è davvero
complesso un sacco di complessità nella pagina
come se tutto fosse confuso come alcuni
visualizzare alcuni pulsanti qui e alcuni noi logici
non potremmo non andare avanti con
quel modello e avevamo bisogno di qualcosa di più
struttura di quella quando iniziamo come a
sono iniziati modelli come MVC e così via
apparendo noi era come facciamo cerchiamo di
struttura questo più e metti il modello
separato dalla vista e dalla
controller e in questo modo come ogni aspetto
è rappresentato in un posto diverso e
quello e ha avuto un senso e poi con
grazie a questa struttura potremmo
introdurre ci piacerebbe fare molto di più
applicazioni sofisticate giuste e
è per questo che abbiamo quello che abbiamo per il
l’ultima volta non lo so da 10 anni circa
meno e poi qualcosa è successo noi
ho scoperto qualcosa chiamato Ajax, giusto io
potrei solo cambiare un posto in
la pagina e vai a fare una chiamata di servizio a
che al server, ma io posso dovrebbe
non ho bisogno di ricaricare il tutto
pagina aveva senso e abbiamo iniziato come
nel fare chiamate Ajax nella pagina
ovunque per essere in grado di farlo
cose interessanti come chiamare il
server per quattro cose diverse senza
rinfrescare l’intera pagina aveva senso
giusto e iniziare a fare sofisticato
cose fino a quando non abbiamo scoperto che questo è
non andando in scala destra e poi noi
deciso come abbiamo deciso al collo città
che abbiamo bisogno di un modello di un server come a
il server un modello che può essere targetizzato
meglio questo tipo di architettura dove
dove sta accadendo molta interazione
tra il browser e il server molto
di oggi in tempo reale apri il tuo
Twitter in pochi secondi si ottiene di più
tweets e se continuano ad apparire uguali
faccia la stessa cosa in Facebook un sacco di
flussi di quello che sta accadendo e tu
bisogno di qualcosa al server che
supporta questo tipo di nuovo paradigma un nuovo
necessità di sviluppare lo sviluppo di sviluppo a
il lato server, quindi cos’è il web in tempo reale
così il web in tempo reale è ciò che fai quando
ottieni i dati così come sono
non continuate a chiedere il server per
dammi un dato e piuttosto dammi i dati
ma è come
capisci come succede così se ne ottieni uno
nuovo tweet che lo porti nel tuo browser
non è necessario mantenere Pauline ora ciò che è
la tecnologia utilizzata dietro non lo fa
importa che ciò che conta è che tu
continua a riceverlo nel tuo
browser e fare qualcosa al riguardo
va bene così è la definizione di
Wikipedia fondamentalmente riceve informazioni
non appena è stato pubblicato dal suo
autori piuttosto che richiedere software
controlla qualsiasi cosa così tecnicamente parlando
cosa c’è dietro ciò che c’è dietro
onda in tempo reale ce ne sono diversi
tecnologia abbiamo iniziato con una lunga chiamata
il lungo conio è sostanzialmente II lo farei
chiamare il server okay emetterò a
richiedere una richiesta HTTP e il server
non risponderà fino a quando non ottiene qualcosa
nuovo per me e poi risponderà e
appena risponde, penso di sì
un’altra richiesta va bene e quella richiesta
aspetterò fino a quando non avrò un nuovo dato, quindi è così
tipo di simulazione del flusso di dati
ma è il cliente che è tutto il tempo
fare in modo che vi sia una presa aperta
c’è una richiesta e così se il
server ha qualcosa su cui è interessato
quello su quello su quella presa o su
quella richiesta risponde a quella richiesta ora
qualcosa che è successo dopo che potevamo
fare commit e commit è diverso
cose come commit possono significare cose diverse
cose ma una di queste è interessante
pensavamo a un trucco per attuare commenti
è come sappiamo che c’è HTTP chunked
Il pezzo HTTP sta praticamente dicendo quando io
rispondere quando ho una risposta quando io
invia una risposta al browser che posso
mandalo in pezzi diversi
pezzi e se il browser può capire
quello che è questo pezzo può mostrarlo bene
via a destra può tradurlo e mostrare
va bene può dare un senso a qualcuno dei
pezzi come vengono li mostrerà
giusto così il browser non solo può
ricevere le cose a pezzi, ma può
capirli in pezzi che è
in realtà fatto per alcuni forse
ottimizzazione delle prestazioni per lo streaming
file di grandi dimensioni per lo streaming di immagini e così via
ma la cosa interessante è che
è che puoi quello che puoi fare è quello
puoi trasmettere alcuni tag di script in modo tale che se io
ruscello
script tag ogni chunk è un tag script
il browser lo eseguirà correttamente e
questo con questo è possibile simulare alcuni
alcuni flusso continuo proveniente dal
server perché il server è simile a un bambino
continua a inviare questo script sono loro
avere alcuni dati e potrebbero chiamarne alcuni
callback e sarò in grado di farlo
simulare un flusso, ecco cosa
fondamentalmente la cometa è un hack in cima
HTTP un pezzo e poi ne abbiamo sentito parlare
WebSockets e tu sai che questo è
strumenti non in modo nativo sai
presa bidirezionale con un server e
poi c’è qualcosa di ancora di più
interessante o interessante non lo faccio
sapere come lo definisco ma il server inviato
l’evento è fondamentalmente un protocollo in cima a
HTTP molto simile al HTTP chunked
ma è come supportato nativamente dal
browser e dove il browser può
capire questo evento inviato ma a breve
dal server, ma è un modo dalla
server al client che è gentile
cool in alcuni casi in cui non lo fai
voglio inviare molto dal client ma
piuttosto ricevo molte cose attraverso
il flusso comunque questi sono giusti
tecnologie che ti possono permettere di fare
quello che chiamiamo web in tempo reale, ora che cosa
posso fare con questo giusto voglio dire che ho ottenuto
questo socket o qualunque cosa tu li chiami
in tempo reale cosa posso fare che li farebbe
Intendo dire che hai una tecnologia
è necessario decidere cosa fare con esso
quindi una delle cose che puoi fare è
come peer disconnessi dove qualunque cosa
qualunque sia l’esempio potrebbe essere un
chat web dove hanno colleghi connessi
con il server inviano un messaggio al
server di servizio pubblica tutti ma
lo stesso concetto di una chat web di a
la tabella potrebbe essere come un gioco in cui le feste
continua a inviarlo e questo è pubblicato
giusto potrebbe essere un gioco potrebbe essere qualsiasi
compaiono altre applicazioni che conosco
e i peer del server e il server e
potrebbe anche essere lo streaming di alcuni
informazioni come quello che hai dentro per
istanza hai un sistema che sei
monitorando hai mangiato puoi prendere una presa
a quel sistema e continuerà a spingere
alcuni aggiornamenti su come il
server sta facendo bene questo è tutto
delle cose che puoi fare quindi è a
una presa di direzione dal server a
il cliente o, ad esempio, puoi iniziare
un sacco di lavori di MapReduce o in tempo reale
calcoli e puoi prendere questi dati
e
trasmetterlo al browser al
cliente come succede e tu hai il web
API di flussi web in streaming web così Twitter
ce n’è uno che puoi cercare per un termine e
si ottiene in tempo reale e in tempo reale si può
ricevi i tweet mentre accadono
qualunque cosa e tu puoi mescolarle puoi
avere un mix di questi in n1 app ok
quindi mi piacerebbe mostrarti come alcuni
esempi di app che usano già giocare con
con questo web in tempo reale quindi c’è questo
è chiamato scacchi è un gioco di scacchi
applicazione quindi devo farlo
ok ok quindi c’è questo scacchi ok così questo
questo ho appena detto che è un gioco è un
gioco di scacchi che sta accadendo in tempo reale
hai un sacco di persone collegate a questi
molti giocatori ci sono giochi contro questo
capita di partecipare a un gioco a cui non potrei partecipare
era troppo veloce non toccarlo ma
comunque tu puoi e questo è basato su
in alto e puoi vedere qui è possibile
guarda anche tutti i giochi che sono
accadendo non sono come i giochi che puoi vedere
come succede in tempo reale
puoi vedere che si stanno muovendo, quindi questi sono
come usare WebSockets con sopra
suona anche c’è una caratteristica nascosta
in qualche posto dove puoi monitorare
l’intero sistema così questi sono questo è un
stream server ha inviato lo streaming degli eventi in arrivo
dal server che racconta come
il server è si sta comportando sembra
sembra comportarsi bene per me, quindi non c’è
un’altra cosa che aiutiamo
Attuazione aggiunge allegato per aiutare a legare il
aspetto di implementazione typesafe è il
aqua console così è la console aqua
fondamentalmente un sistema che controllerà come
i tuoi attori lo stanno facendo quindi non lo so
come si comporterà in questo tipo di
impostazioni ma è davvero interessante è che esso
raccoglierà dati simili da tutti questi
server e li teniamo aggiornati su
flusso in loro sul lato client così
qui questi aggiornamenti stanno avendo in tempo reale
è esattamente quello che vedo come il sistema è
facendo adesso e puoi avere molto
di attori molti dispatcher puoi
clic
qui e componi diversi ceppi
perché sai che fondamentalmente ci sono
widget e quindi puoi comporli
e puoi decidere quale stream vuoi
per ricevere e lo si mostra sul
interfaccia
ok qui possiamo ottenere gli spedizionieri okay così
e c’è quest’altra cosa che devo solo dare
idee c’è questo senso di colpa che il servizio
ha fatto un live streaming okay quello che mostra
quello che le persone stanno comprando in questo momento e
di nuovo è un evento inviato dal server
che ti sta inviando come se gli aggiornamenti fossero come
mentre accadono questo è ciò che gli utenti sono
comprando e poi puoi vedere quanti
articoli che hanno ancora quanti si
ancora di questo oggetto, per esempio
qui non so quanti ne siano rimasti ma è
in qualche modo sì , questa è la costante
che la console di akka ha fatto quello che ho mostrato
sei una demo, quindi puoi andare a controllarla
tu per te lo ottieni con il
pila typesafe e ho visto un tweet simile
lo avrai gratuitamente per
gli sviluppatori, ma è parte di quella mia
abbonamento typesafe ma puoi averlo
ti piace come sviluppatore che puoi
averlo gratis sembra nel prossimo
rilascio quindi abbiamo esempi andiamo
in avanti dovresti stare bene così questi sono i
servizi così ora parliamo di tutto questo
le cose ora la domanda è subito
come se dovessi introdurre un nuovo
quadro per farlo, perché non dovrebbe
perché non posso usarli non posso usare il
i server di guerra ho ricevuto Tomcat o altro
altri server di guerra per fare
questo tipo di app perché ho bisogno
assolutamente un nuovo quadro e tengo
sentir parlare di nuovi framework Java
fai questa cosa bene , facciamolo
avere qualche contesto su questo
problema quindi fondamentalmente quello con il
architettura di guerra e alcuni di voi
potrebbe già sapere che è basato sul
fatto sul presupposto che un utente I
dargli un filo che significa che vai
richiesta va bene lo do lo do a
quella richiesta viene letta finché dura
e poi quando arriva quella risposta
indietro ci dà una risposta indietro
dal filo che è bello nel caso tu
sei tu sei solo e non lo fai
hanno un sacco di utenti che lo indicano
server
è come l’ auto come se fosse contenuta da esso
di per sé, non non ha chiamato alcuna
servizi esterni potrebbe chiamarlo
database ma questa è una storia diversa
ma non interagisce con il resto di
il web la richiesta è solo CPU per lo più
CPU vincolata andrò e ne farò un po ‘
CPU e ha senso dare un thread
perché comunque se non hai discussioni
significa che ho un sacco di CPU
attività qualunque sia, ma questo è
quello è il vecchio l’altro vecchio modo di
progettare applicazioni web proprio perché
ora hai un sacco di cose che devi
interagire con il web che hai
riposano molti altri server Web
api di cui hai bisogno per raccogliere dati da
questi e ottieni molte connessioni
non solo in amore per gli utenti che stanno accadendo a
nello stesso tempo ma io abbiamo detto che abbiamo bisogno di a
socket aperto con l’utente in modo che l’utente
aprirà un socket e durerà come
tanto quanto una lezione può durare per ore no
si sa bene che è solo una presa aperta
e se dai ogni socket aperto a
filo allora tu non sarai in grado
per servire più di 100 forse 200 thread
per un particolare server web che
non scala in modo assoluto non scala
perché l’architettura lo ha fatto
alcune ipotesi su come progettiamo il web
applicazione che si basava su ciò che noi
aveva al momento e le cose sono cambiate
va bene senza quindi dovremmo riconoscere
questo cambiamento e dovremmo procedere a destra
quindi quello di cui abbiamo realmente bisogno è questo quando noi
chiamare uno dei servizi che sono
okay, abbiamo bisogno che non dovremmo
bloccare le risorse che dovremmo restituire
discussioni okay non abbiamo bisogno del thread
ora ho fatto qualche IO e sto aspettando
risposta quindi non ho bisogno di aspettare f2
per bloccare un thread quando succede io
lo prenderò, lo gestirò bene e
e non dare ogni connessione al thread
solo la connessione è lì che non lo facciamo
preoccupati se c’è qualcosa da fare
con esso prenderò un filo che farò
Esusa un po ‘di codice e poi lo darò
indietro il thread il thread come esecuzione
non ha alcun collegamento alcun collegamento
a quante connessioni ho avuto
e questo è ciò che chiamiamo non-bloccante
il non blocco è fondamentalmente che faccio un occhio o
qualsiasi cosa e io non sono un blocco, non lo sono
bloccando il thread di esecuzione il reale
il thread di esecuzione corrente mentre quello
questa chiamata sta accadendo, ho appena capito
notificato mi viene notificato quando questa cosa
è fatta
immagino che chiami come Twitter o
Amazon per averlo fatto diciamo che lo sono
chiamare Amazon per fare un enorme
computazione okay non voglio aspettare
e sprecare le mie risorse sulla macchina
aspettando Amazon Amazon mi notificherà
quando succede e posso andare a fare
qualcos’altro questo è ciò che chiamiamo
a destra reattivo non sono proattivo, non lo sono
aspettando che la risposta accada e
reattivo e questo è estremamente importante
se vuoi ridimensionare ora ce n’è uno
è come se sentissimo parlare molte persone
su questo tipo di argomento e io no
come il mio quadro è un diritto sincrono
Ho ottenuto questo framer web che è completamente
asincrono Wow completamente asincrono
sembra che ti stia vendendo qualcosa
un sincrono è un problema è come
lasciando tutti questi benefici che ottieni
programmazione sincrona gratuitamente ora il
prima domanda dovresti chiederlo a questo
qualcuno che ti sta vendendo questo perché perché
vuoi che io faccia il programma in a
sincrono e quindi dovrebbe avere un
rispondere se non si dispone di una risposta che
non serve questo sincronismo okay se lui
ti dice che ho un non-blocco e
quindi devo assolutamente essere sincrono
va bene perché stai dando via
il tuo patrimonio come il sincrono
programmazione che è confortevole ma per
qualcosa che stai dando per pubblico
la fabbrica sarebbe non-bloccante
per il fatto di essere forse parallelo così
la programmazione parallela farà anche alcuni
asincrono che devi fare con a
sincronicità ma non è un vantaggio
un sincrono è un whoreo è qualcosa
davvero difficile ragionare su ed è
non un vantaggio e la prima volta quando
qualcuno ti dice che ho un sincrono
non ti piace perché e wow questo è difficile
perché perché mi chiedi di farlo e
la seconda domanda è quali sono i
strumenti in modo che io possa occuparmi di questo ora
parola pazzesca di un sincronismo giusto
egli dovrebbe fornire gli strumenti
non dovresti lasciarti allo stato brado con a
stinco
Skol arretra come sto aspettando
Assegna le correnti di Kobach come posso fare
ora voglio tutti e due ok ok ora ho
per fare registri o non registri o non so
cosa e poi iniziare a trattare
cose che non avevo a che fare quindi
quadro che ti sta suggerendo
fare non bloccare o parallelo dovrebbe
fornirti gli strumenti per gestire a
programmazione sincrona e lo facciamo
usiamo i futures in gioco
con le autorità, qualunque esse siano
sono strumenti per aiutare ad affrontare con un
stanza sincrona come succede perché
di non bloccante e reattiva tutto di C
ok okay okay, abbiamo ottenuto questo reattivo
sistema proprio in questo modo usiamo il thread
solo quando abbiamo bisogno di usare nel modo giusto ci
non bloccarlo per aspettare qualcosa
usiamo quando abbiamo bisogno di usarlo
e abbiamo bisogno di usare la stessa architettura
nessuno su blocco e architettura per
trasmette i flussi giusti come una serie di
dati che stanno accadendo e che non vogliamo
bloccare tutto ciò che vale la pena aspettare il
prossimo evento che sta per accadere in
il flusso abbiamo bisogno di consegnarlo lì
nello stesso modo reattivo giusto così
questo è un po ‘di alcuni riproducono alcuni codici di riproduzione
Java ed è come offrirti uno
soluzione per fare con prese
quello che hai qui è quindi questo è un po ‘
controller è un WebSocket che ottieni
dentro e fuori a destra e per il per il
puoi dire ok su ogni messaggio
avere una richiamata e la stamperò e
stampalo qualunque cosa e per il meglio che posso
dire okay out dot stampa qualcosa okay
Wow
questo è callback vero questo è così
è una soluzione per fare di nuovo
flussi così questo è quello che abbiamo ora giusto
ora in questo momento nell’API Java il
problema con Java con Java Java
come lingua manca una sola cosa
per noi in questo tipo di scenario abbiamo bisogno
una funzione se abbiamo una funzione allora noi
può offrire un’API molto migliore di questa
che tiene conto della conformità
di utilizzare il flusso di utilizzare flussi come
qualcosa che gestirà tutti i casi
per te hai appena spiegato affari Express
logica la logica del gioco o qualsiasi cosa tu
cercando di programmare e poi il resto tutto
la sincronizzazione tutta la gestione del
l’impianto idraulico è fatto dal quadro così noi
ho bisogno solo di una funzione ora devo chiedere
tu una domanda a questo punto che posso fare
una delle due cose o posso andare e
mostra altri esempi di utilizzo di Java
API o possiamo andare in un paese delle meraviglie dove
possiamo vedere come potrebbe accadere se noi
avere una funzione se si potesse avere
qualcosa che veramente veramente indirizzi
questo problema di fare in tempo reale in tempo reale
web e reattività e tutto
queste cose quindi il rosso è per il
secondo e il blu è per il primo il
il rosso è per il paese delle meraviglie che va per
il rosso oh tutti sono fortunato perché io
non ho l’altra parte che potrei io
potrebbe aprire my my Emacs e mostrarti un po ‘
esempi nessun problema e ti sto offrendo
solo la verità quindi quali sono i flussi I
significa con albero stiamo parlando di reale
tempo web su flussi ma non abbiamo
identificato quali sono i flussi
cosa sono come posso parlare di loro
Mi piace come posso assegnarli a una lattina
Assegno il mini per sempre se mi piace
diciamo estremo e mettilo in una variabile
riferimento in seguito posso adattarlo
in qualche modo come posso aver bisogno
trattare con flussi che conosci il primo
cosa che la prima cosa che dobbiamo fare è
per riconoscere che esistono questi
ruscelli e parlare per avere un po ‘
vocabolario di cui parlare con cui noi
possiamo parlare di loro giusto che dovremmo
trattali come sai di cui parliamo
oggetti possiamo mettere la struttura dei dati e
riferimenti che li mettono nelle mappe noi
bisogno di ragionare nello stesso modo e in
allo stesso modo sui flussi allo stesso modo
noi ragioniamo su qualsiasi altra cosa, così
quando hai visto questo codice dal precedente
esempio ti ha ricordato qualcosa
mi ha fatto nulla di deja vu che dire
quel periodo prima della struttura
poco prima della struttura che abbiamo
qualcosa che assomiglia a questo wow
è molto simile quando siamo noi
non aveva gli strumenti per fare alcun tipo
di cose come il web o qualcosa prima di noi
abbiamo iniziato a fare i giocatori del tempo che è
come avere GSP è strano per avere tutto
di questi quindi siamo tornati a quel punto
ora siamo tornati a quel punto con tutto
i quadri che ti offrono un
canale con push un proprio messaggio a
qualcosa siamo tornati a quello
era di fare qualsiasi cosa in modo imperativo
e la cura di tutti i problemi del
mondo e questa cosa è solo richiamare
è davvero orribile, intendo dire che porta
io questo è giusto come abbiamo parlato
è come se fosse una è l’inferno di callback
E ‘quando ci avete voi stessi a
ragione come se accadesse dopo
l’ altro sei tu non hai un
modello di programmazione che ti manca
quello di cui hai bisogno è una programmazione
modello questo non è un modello di programmazione
questo è un hack questo va bene
è solo portarlo a disposizione il fatto
che puoi ricevere un messaggio ma
è così non è un modello
non c’è un modello di programmazione
e ciò di cui abbiamo bisogno è davvero una programmazione
il modello va bene così questi sono l’importante
domande come possiamo parlare di questi così
abbiamo avuto qualcosa nella storia di Java
è molto simile a ciò che vogliamo
raggiungere abbiamo ottenuto flussi di input e output
ok almeno posso assegnarli al
Vario a una variabile che possono rappresentare
questo flusso che tipo di che è gentile
di buon passo di trasmettere a che fare con
flussi come se si trattasse correttamente
flussi che a loro piacciono solo alcuni
non sono reattivi stanno bloccando
sai di non non essere bloccanti
bloccando e a loro piacciono alcune strutture
per composizione ma è stato un buon passo
Vorrei identificare i flussi così sembra
sembrava che fosse l’industria
andando indietro
abbiamo iniziato a fare qualcosa in Java
se c’era una buona ingegneria di una lista
che parlava di flussi in a in a
modo normale e siamo andati indietro
come eventi e qualunque sia la complessità
porta bene così quali sono i flussi che vogliamo
trattare con flussi come di prima classe
cittadini in fila nella lingua
nelle biblioteche giusto sappiamo che vogliamo
non rappresentarlo come eventi e gestori
e così via e vogliamo avere flussi
adattatori e lavandini sono i flussi giusti
cose che stanno avendo adattatori di eventi
è essere in grado di adattare questi flussi
in qualche modo e e cose dove noi
spingerà questi flussi per sapere che è
okay è um qualunque cosa vada bene così
facciamo qualche finzione qui se Java avesse
funzioni quindi ne prenderei un po ‘
stream che è tweets lo assegnerò
ad un diritto variabile sappiamo cosa questo
significa e quindi posso ottenere questi tweet
ok prima che possa fare un adattatore
tradurrà un flusso di stringhe in
un flusso di G proprio diritto è una specie di
Adattatore e come si farebbe che ciò che
mapperà ogni stringa s in una G così
e analizzerà solo ogni stringa come essa
succede proprio questo è un adattatore
prende ogni stringa e la dà e
è uno scopo generale che posso usare
con tutto ciò che sta arrivando avendo
corde nella nostra zona G e io posso solo
adattare qualsiasi flusso in questo modo con questo
adattatore quindi è molto generale
adattatore di scopo e quindi cosa posso fare
posso spingere i tweet attraverso il G
zona giusta niente di speciale lì e poi
Posso avere un altro stream che
rappresenta alcune pubblicità che voglio mescolare
in con con questi tweet e poi
Posso intercalare questi flussi e posso farlo
e posso intercalare questi flussi tweet
dot in tweets dot interleave alcuni annunci
e poi lo passo attraverso la cometa
protocollo o il protocollo della sorgente di eventi
che è il server ha inviato eventi che è
anche il professionista
chiamare il protocollo sourceource è giusto
un adattatore giusto
riceve i messaggi li inserisce in alcuni
protocollo e li mette al filo
giusto è stato facile, abbiamo solo bisogno di avere
il vocabolario di cui abbiamo bisogno per avere il diritto
tipi di essere in grado di esprimere quali flussi
sono e il programma è completamente
diverso ora è come se non lo fossi
parlando di come sincronizzare questi
flussi che sono intercalati non lo sono
parlando di come fare quando va bene quando io
invia qualcosa dovrei lavorare con il
server per scusate per il cliente fino a quando lui
lo riceve o no tutto questo tipo di
cosa di cui si occupa tutto l’impianto idraulico
dal quadro che è ciò di cui abbiamo bisogno
bisogno di parlare di flussi come flussi
e non come qualcos’altro prima da allora
flussi in questo momento questo esiste
già esiste nell’API Scala
ma è molto simile a quello che abbiamo ottenuto
qui in Java, che ho fatto io
adattamenti per poterlo rappresentare
in questo modo ciò significa due cose che noi
può già averlo oggi ma c’è
qualcosa di interessante anche per le persone
che non erano disposti a trasferirsi
Sparga questo che possiamo facilmente averlo
quindi possiamo facilmente averlo in Java 8 quando
otteniamo la funzione che banale va bene
abbiamo ottenuto il quadro completamente
sostenere questa manipolazione reattiva di
flussi siamo lì è solo una questione
di una API di superficie dove tutto ciò che possiamo
implementare in una settimana o così e possiamo ottenere
lì con API è quello che sanno come
trattare con flussi di dati ok
quindi non è difficile il cuore che noi
solo bisogno di una cosa da Java così a
essere in grado di rappresentare tutto okay e
anche se alcune persone sono familiari
con la trama con il plug-in Eclipse o
qualcosa del genere che rappresenta
funzioni e nella maggior parte delle classi fuori
funzioni possiamo anche aggiungerlo per questi
okay, quindi quello che abbiamo qui abbiamo il
potente manipolazione del flusso reattivo
API giusto Posso ragionare sulla mia logica
e non la logica di come sincronizzare
tutte queste cose e giocarci bene
Posso esprimere la mia logica
e e non ho bisogno solo di ottenere il
possibilità di avere una presa e spingere
attraverso di essa ho bisogno degli strumenti di cui ho bisogno
gli strumenti che abilitano mi consentiranno
affrontare questo senza l’enorme
complessità di gestione della concorrenza
Va bene così quando si esprime la tua
affari o il tuo gioco o qualunque cosa tu
stanno esprimendo che non vuoi dire
come se succedesse cosa succederebbe se dovesse succedere
Prima che ciò che si vuole dire come
questo è un flusso questo è un altro flusso
questo è interleave, adattiamoci
un po ‘a destra e cerchiamo di bufferare così
è molto facile da fare banale no e lo voglio
per bufferare come 20 e messaggi prima
inviando perché il modo in cui è fatto di più
è meglio che non mi piaccia molto
cose che puoi fare con questo questo
API come possiamo siamo diventati davvero enormi
Non so quanti metodi che il nostro
metodi di supporto a ciò che puoi fare
qualcosa di simile è molto utile in
caso di web ed e-dealing in tempo reale
con i flussi così mi lasciano ora posso mostrare
tu un esempio di ti mostrerò solo io
berrà acqua quindi vediamo un esempio
di usare questi flussi per un esempio
sembra un business sfortunato e
dal modo in cui abbiamo ottenuto un sacco di campioni in
un bel po ‘di campioni nel lettore
distribuzione che puoi controllare
fuori per ottenere qualche ispirazione
o alcuni esempi su come utilizzare questa API
quindi vado nella vita di commenti sparsi
sì sì questo così comincerò con
un altro rispetto a quello che volevo
per mostrare bene questo è quello che ho io
ottenuto in là no non mi interessa circa male
quindi ora in realtà va bene che cosa è così io
aprirò i modelli che sono nei modelli ok
quindi qui quello che faccio in realtà è che io
avere diversi flussi che ho preparato
ho un flusso di richieste per
secondo va bene è un tipo di monitoraggio
API è un servizio di monitoraggio dove io
ottenuto un flusso di monitoraggio come come
molte richieste al secondo che sto ottenendo
questo è il server che mi sta ricevendo
il mucchio di un flusso mi sta facendo come
Lo stato della CPU e poi quello che faccio è così io
prendi il primo stream che ho interlacciato
questo è fondamentalmente punto interlacciato con
il secondo punto del flusso si interseca con
il terzo e così via va bene
ora potresti chiedermi come potresti
voglio sapere come dove sono i giusti
mangiare bene non attraverso il protocollo va bene così
in fondo quello che stiamo vedendo qui è molto
interessante bene prima non stiamo mentire
su HTTP stiamo inviando uno stato okay
con un flusso di dati e in streaming
di dati sta intercalando diversi flussi
e questo è molto interessante significa
come posso sapere che posso occhi modulari
i miei flussi li posso mettere in diversi
file diversi progetti e poi posso
Posso ottenere in seguito e intercalarli
e spingerli nel filo questo è
molto interessante proprio perché lo siamo
parlando di flussi che possiamo separare
loro in cose diverse e ora se
guardi come le icone costruiscono il
diversi flussi cosa è come è
non è così difficile in realtà così se io
entrare qui sta fondamentalmente dicendo
ogni
così ogni 100 millisecondi che ho intenzione di fare
esegui questa cosa bene, che è
ottenere le richieste al secondo per
istanza l’heap è un po ‘più chiaro
perché fa meno cose quindi ogni 100
millisecondi Sto tornando il tempo di esecuzione a
ottenere tempo di esecuzione della memoria totale meno uno
guardare il tempo in fase di esecuzione con memoria libera
che è un diritto di heap che significa come
questo è un modo di costruire i flussi
colpendo alcune API sulla JVM di
questo caso e ottenere questi dati e
costruendo flusso fuori da tutto ciò che io
fatto a dove o cosa dovevo fare
è solo esprimere quale codice dovrebbe essere
eseguito ogni qualche secondo e io
ottengo la barra di flusso fuori di esso ottengo a
flusso di non è credo in questo caso
e poi lo adattare a modo suo così
proviamo a eseguire questa app che lo farà
sembra un po ‘familiare e poi commetti la vita
Sono un congelatore del computer mi dispiace
oh sì grazie va bene e poi torno indietro
non so quante volte
sì, quindi non dovrebbe funzionare ok, grazie
qualcuno che lo seguiva era un test
entrare lasciare wow come l’ hai rilevato
scusa
pensi che nessuno Am I yeah yeah yeah questo è
giusto cosa è magico okay okay questo ragazzo
e dovevo colpire refresh così è
fondamentalmente ora sta compilando il
i file sorgenti mi danno un sacco di ex
avvertenze perché sto facendo un po ‘
refactoring questo è il padrone e ottengo
questo ragazzo che mi mostra lo stato di
loro del sistema, ok, era così
molto facile da fare, quindi un altro esempio
e di nuovo intendo che siamo molto vicini a fare
questo in un angelo abbiamo bisogno di riposare il
funzione per essere in grado di fare questo
essere in grado di parlare di flussi e in
nel modo giusto il modo naturale, quindi quale
qui sì e poi c’è tempo di streaming
Credo che forse l’applicazione sia così
un po ‘più interessante forse e diverso
non c’è niente così dis andando così lo stesso
la cosa è qui mi dispiace ok, quindi di nuovo io
ho così qui ho una domanda per
che ho ottenuto due tipi di dati
Ho delle operazioni e ottengo lo stato del sistema
giusto così le operazioni sono fondamentalmente un
importo e il livello di così può essere un
come amministratore o manager qualunque sia e
allora hai qualche stato di sistema che il
il sistema sposterà alcuni stati a
giusto e ho avuto questi due tre tre
flussi uno di loro è operazioni che è
generato casualmente l’altro è un po ‘
rumore proveniente dal sistema e il mio
gli eventi sono i due interlacciati proprio questo
significa interleaf Posso scriverlo per dimostrare
esso
ok ora dal lato controller è
un po ‘interessante perché voglio
applica alcune regole aziendali qui bene così
prima cosa quindi questo è il flusso che io
invierà questo è il controller
che invierà il flusso a quella
al cliente giusto e ne ha diversi
parametri paddle ottenuti dall’utente
che ti darà il ruolo del
utente se è un amministratore Sono un manager o un
utente normale e l’utente darà come
un limite inferiore e uno superiore del
operazione è disposto a vedere come sono
interessato solo a importi compresi tra 50
e diciamo 150 giusto e questa è la volontà
essere dato dall’utente e volontà
dinamicamente qui sarà dinamico
costruire il flusso che corrisponde a
questo criterio come lo faremo per primi
facciamo questo l’ adattatore sicuro è un
adattatore proprio come abbiamo visto è solo un
adattatore che controllerà solo se il
ruolo è un manager allora lascerà
lo lascerà andare altrimenti lo farà
basta restituirlo filtrarlo, va bene così
darà solo le operazioni che sono
privato solo per manager e solo
pubblico è per gli altri che è ma
cosa sta dicendo in sostanza che do se lo è
privato è solo manager che stanno per
prendili se è pubblico allora
tutti possono vederli questo è gentile
di sicurezza per il flusso e poi io
avere un’altra cosa funzionale che è
in arrivo ho bisogno di averli in arrivo
è un altro adattatore per il flusso dove
Ho detto che va bene, devo filtrarlo
raccogliere è una specie di filtro dove io
potrebbe dire ok se l’importo è
dentro i limiti e lo lascio
altrimenti e se si tratta di uno stato di sistema I
lascia andare e qualsiasi altra cosa io sia
non lasciare andare a destra raccoglierlo solo voi
tu dici i casi che vuoi e tu
lancia tutto ciò che non ti serve ok
e poi ho un terzo adattatore che è
come JSON che prende ogni caso con ciascuno
digita ogni struttura dati e realizzala
in un JSON e l’adattatore più fine è
sicuro insieme con così è composto
Li lascerò in questo modo ma questo è
sicuro composto con composto in ingresso
con come zona G quindi sto prendendo questi
adattatori e li sto componendo insieme
ok per fare un adattatore così io
anche in compose adapters e ne ottengo uno
adattatore questo è l’adattatore finale e
allora posso nutrirlo e lo passo attraverso
un altro adattatore che è l’ evento
adattatore sorgente ok
sembra semplice, sto parlando
adattatori Sto filtrando alcuni flussi e
questo è tutto ciò che sto facendo
vediamo come funziona, dovrei saperlo
dove è prima, quindi credo che sia dentro
spazio di lavoro sì e poi streaming demo e
allora va bene eccolo qui
ora cosa dovrei fare
Dovrei eseguirlo come metodo per
giocare questa speranza non ho rotto qualcosa
Ho portato qualcosa Wow okay proviamo
per risolvere velocemente questo problema è a
progetto
baby baby baby è nei plugin credo
in realtà perché ho il mio padrone così
Mi sembra di aver rotto qualcosa che sto cercando di fare
aggiustalo velocemente spero di essere in grado di risolvere il problema
ma altrimenti se non posso aggiustarlo
credimi ragazzi come funzionerà, lo so
non è qui mi dispiace è solo dentro
le proprietà costruiscono proprietà dispari qualunque
milioni di proprietà va bene così com’è
è stato difficile trovare non in questo modo
ma zero ok proviamo a eseguirlo ora
spero che funzionerà così fondamentalmente lo sono
come se ne stiamo uscendo con alcuni
dipendenze nel quadro e
è per questo che ho sempre il mio padrone
è un po ‘ sporco dovrei provare a
pulirlo spesso e questo è stato un esempio
prima di fare il refactoring così è
perché ho avuto questi problemi sembra
compilazione bene quindi ci andiamo
in realtà mi limiterò a chiuderlo non si apre
va bene così ho le operazioni in verde
quelli
vuol dire come sono scorretto privato
quelli rossi sono privati così come io non sono un
manager vedrò solo quelli verdi
se vado come manager e poi posso vedere
quelli rossi anche a posto e lo stato del sistema va bene
e quindi posso impostare il limite legato che posso
dì come voglio tra il 50 e il 1000
e non ho intenzione di ottenere qualcosa
come se fosse meno di 50 non lo è
ovvio facciamolo 100 possiamo vedere il
l’idea è la stessa cosa di un utente che posso fare
la stessa cosa tra le 500 quindi va bene
molto meno spesso è così così
questo è davvero rappresentativo, credo
casi reali casi reali intendo che lo facciamo
un po ‘ come facciamo app web in tempo reale a
il mio confronto esce II ed è davvero
è un lui
Voglio dire che hai gli strumenti giusti
parlare delle cose nel modo giusto
e hai gli strumenti è così tanto
più facile parlare di cose come abbiamo fatto a
molte applicazioni come un po ‘di miscelazione
registra alcuni come fare un po ‘di tempo reale per
istanza e attacca l’applicazione
qualunque cosa sia ed è davvero banale
dal lato server perché abbiamo ottenuto il
le astrazioni giuste vanno bene
motivi per essere in grado di lavorare con i flussi
come sto andando in tempo
Immagino che sì, va bene e ci sono a
molti altri esempi là fuori come
okay, ero solo un ultimo esempio
molto velocemente spero di non averlo rotto – e
se lo spezzassi non lo mostrerò a te
sarà in grado di venire a vederlo da
te stesso, quindi riproduci due campioni okay
e questo va bene, non va bene
Suppongo locator ancora dai dai
ok compilazione dovrebbe farlo ora ok oh
Devo effettuare il login okay non ricordo il mio
la mossa di login era okay non questa
uno va bene quindi qui fondamentalmente sta usando
l’ API di Twitter hanno uno streaming
API che ti piacerà cercare un
termine e otterrete il flusso di
i tweet che stanno parlando di questo sono
accadendo in tempo reale giusto così siamo
semplicemente collegando questo flusso di dati
quello proviene da Twitter e noi siamo
lo streaming utilizzando gli eventi inviati dal server a
al cliente un sacco di gente
ridendo quindi immagino sia così
bene voi e domande Sì, e per ringraziare
il modo in cui proprio qui dovrei mostrare se sì
vuoi se sei interessato a giocare
allora puoi andare e controllare il sito web
che è wow che mi dà dal
all’inizio perché lo fa bene?
okay puoi andare al framework lì
è una comunità che puoi ottenere con le cose
ha risposto molto velocemente molto molto
comunità attiva e controllare controllare il
i campioni sono davvero interessanti, okay
domande ora sì sì effettivamente così
la domanda riguarda SBT con il gioco ora se
sei se non ti interessa di SBT e
scala e tutto ciò che poi c’è a
pacchetto si ottiene si ottiene come il
normale esperienza di gioco che farai
avviarlo con play run a cui non importa
riguardo SBT non fai niente su niente
di questo e se non si distinguono in
la tua faccia ora se ne hai una molto simile se
stai usando SBT e ne fai molti
le dipendenze che hai molto
dipendenze da molti altri progetti a
molte altre cose a volte questo
Beatty fa alcune cose in esso intendo
non è SBT, è come se dipendesse
fare dipendenza con dipendenza è molto
difficile problema, Mavin non ha potuto risolverlo
completamente ivan né e SVG no
qualsiasi voglio dire è che è un passo
avanti per alcune parti ma loro
voglio dire che ne hai ancora qualcuno
casi strani in cui si diventa diversi
dipendenze o a volte come qualcosa
succede male ma a volte piace quando
si aggiorna una nuova versione di gioco
potrebbe accadere solo tu hai bisogno di avere un
script che pulisce tutta la cache e
allora è possibile che sia fondamentalmente la cache IV
questo è che a volte ce ne sono alcuni
guai ma hai una sceneggiatura pulita così
tu dici di giocare pulito – tutto e lo sarà
pulisci tutto ciò che è così va bene
quando hai qualche problema proviamo
a fare il proprio pulito e in modo che possa
risolvi il problema soprattutto quando lo sei
spostandosi tra le versioni perché ha ottenuto un
molte cose memorizzate nella cache e tu ne hai bisogno
puliscili , sì, è così
spesso non è quello che succede a zero
qualunque cosa e ora abbiamo risolto noi possiamo
cambiare il mondo completamente come noi
farlo la situazione di stallo che si sta parlando di
era come un blocco in cui era
modalità di sviluppo è stato perché alcuni
passaggio di classe gerarchia dei classloader che
era sbagliato era come un genitore chiamare il
figlio Charlie che chiama il genitore dell’acqua
ma completamente rimosso che nel
prossima versione qualsiasi altra domanda quindi il
la domanda è quanto è conveniente per
uno sviluppatore Java giusto e ovviamente io
significa che consiglio di usarlo da Java di
Certo che ci sono cose che non puoi
basta fare in Java e poi hai il
opportunità di fare solo una parte in Scala
e il resto lo fanno in Java, ma ci sono
aziende davvero grandi che usano solo Java
e uno di loro sta andando forse a
annunciamo presto che abbiamo davvero lavorato molto
con loro per ottenere come l’esperienza
giusto e davvero lavoriamo con reale reale
progetti di progetti mondiali con veri like
problemi e cose reali e noi davvero
avuto modo di sperimentare
Intendo fondamentalmente lavorando con questo
società che è davvero interessante
riferimento in voi conoscete il tipo Java EE
di atmosfera è davvero interessante
perché si preoccupano esattamente di questi
la questione di uno sviluppatore Java e
davvero lavoriamo molto vicino a loro e
ci piace
e sono andato da loro per cui ho lavorato per un
poche settimane in modo che abbiamo capito bene
questo sì sì è un Java e un po ‘di
sviluppo web framework e tu puoi
usalo da Java così come Kara lì
sono alcune cose che non si sarà
in grado di fare in Java fino a Java
ottieni la prossima funzione get e cose
come quella
fino ad allora si puoi fare queste parti
solo in Scala e comunicare tra
quello ed è solo un sistema quindi c’è
nessun problema nel fare queste domande
domande bene che è tutto e vi ringrazio
ragazzi
un sacco di fotografia e c’è questo
foto che ho fatto da qualche parte nei bambini
e ha una piccola storia in realtà io così
è come se non sapessi che è un posto
nel mezzo della Francia, dove tu hai
come questa montagna di sabbia e tu vai
c’è davvero interessante ma poi
sei lassù e vedi come puoi
scendi facilmente ma non riesci a salire
poi dopo è così difficile arrampicarsi
In realtà, davvero, voglio dire che lo sarai
correndo per cinque minuti
per scoprire che non ti sei affatto mosso
e tu sai che sono andato a prendere un
l’immagine dall’alto mi sembra interessante
scatta una foto da giù e poi quando
Sono giù era come fare buio e
stava arrivando la pioggia, l’ avrei visto attraverso
venendo la foresta e ho iniziato a prendere dal panico
perché ho due fotocamere con obiettivi
e non dovrebbe bagnarsi e vedo il
Arriva la pioggia e cerco di eseguire run run e
Sono ancora nello stesso posto in cui non l’ho fatto
muoviti del tutto e questo è ciò che io
significa che sono abbastanza rilassato ma
Ho iniziato davvero a prendere dal panico, intendo davvero
panico perché vedi come non lo sei
avanzando c’è ancora molta strada fino
lì e quello è quando ho imparato come uno
prendi in giro solo alcuni segni dove sei tu
dove e poi vedrai che sei
avanzando e questo ti fermerà da
panico perché il panico è che lo farò
iniziare con davvero sentirsi male e poi io
iniziare come me mettere qualche roccia un po ‘
rocce a un certo livello corrono e vedono
come va bene ne ho fatti alcuni
differenza e quindi posso andare avanti così
è stata davvero una bella scoperta in nessuno
situazione che era un po ‘imbarazzante per me
come se non mi fossi mai sentito prendere dal panico e così a
bella storia dietro questa immagine è gentile
di non succede molto spesso quindi sono così
scusatemi groovy, ho lavorato in un bel
poche lingue e ultimamente ho lavorato su
naturalmente Java e Scala per riscriverlo
giocare quadro ciò che noi chiamiamo giocare troppo
che è come quello che uscirà a marzo
e abbiamo iniziato a lavorarci l’anno scorso
intorno ad agosto
e abbiamo progettato il gioco del giocatore
quadro progettato da zero per
supporto web reattivo e in tempo reale
e ne parleremo di più così e
Sono anche un direttore tecnico presso
la prossima città la compagnia che è quella
dietro gioco in modo che mi piace condividere la mia squadra
Guillaume lavoriamo insieme che abbiamo co-creato
il gioco – lo ha creato e trovato
insieme con pesante la prima versione di
giocare
lui è il nostro CEO nella prossima città, è raro
avere come un amministratore delegato che lo capisca
molta tecnologia ed è così bello
come fresco come pesante è per questo che vorrei
Voglio dire, condivido la sua foto qui perché io
pensa come se fosse davvero essenziale
l’intero lavoro con esso sul gioco e su
la prossima città ed è abbastanza aperto
capisce la tecnologia e spinge per
avanti ovviamente con denaro proprio questo
è importante così e la prossima città che facciamo
architetture orientate al web che significa
come usare la tecnologia web o quello che abbiamo ottenuto
sul web per fare architetture per
aziende per banche come per no
trasformando tutte queste grandi imprese
nel web e come aiutarli a fare
tutto il software tutto lì
sistemi in cima al web, quindi cos’è
Play Framework bene Play Framework è un
framework web che si rivolge a gvm Java
e Scala ed è un po ‘ come i mimi
cerca di dare questa esperienza di ciò che noi
conoscere in Ruby on Rails in rail the
l’ esperienza delle rotaie era come se tutto fosse
tutto è pensato interattivo
come lucidato e darò volontà
mostrarti velocemente come appare il gioco
ed è stato come ho detto che era architettura
per supportare come web oriented
architettura e web in tempo reale che
parleremo su di esso e ha un
modello reattivo basato su futures e it
arathi IO non mi interessa di questo
le cose tecniche sanno solo come sono
fatto per reattivo e moderno web così
andiamo al mio qui, è qui
bene così che tu sappia che è molto
struttura familiare in gioco questa è una
controller del controller ha metodi
ogni metodo lo sta facendo una azione
corrisponde a una rotta che è scritta
nel file di percorso e sarai giusto
restituendo lo stato HTTP in questo caso
sarà così ad esempio qui lo farà
essere uno stato ok con la chiamata di alcuni
alcuni modelli così piuttosto standard MVC
struttura vediamo come voliamo, no
nascondi il web così quando ritorni
qualcosa dovresti dire che va bene o
non è divertente o qualunque altro stato noi
in realtà siamo molto attenti su
questo genere di cose perché pensiamo a noi
dovrebbe usare il web e non combattere contro
e questo è uno dei principali
principi di gioco ora se vado a correre
anche questo funziona come te
userà il comando play run che è
in realtà che avvia l’applicazione
e continua a compilare il codice al volo
giusto ogni volta che aggiorni il tuo browser
va e ci andiamo così ora così questo
è il risultato dell’applicazione se vado
torna alla app e vado a cambiare
qualcosa e poi vado a rinfrescarlo
va bene
un errore di compilazione e non solo lo farà
dimmi come esattamente dove ho preso il
problema e poi vado a risolvere il problema
indietro e lo faccio funzionare così di questo tipo
di mettere a fuoco sul browser anche gli errori
dovrebbe accadere nel browser bene
formattato in modo tale che tu debba concentrarti
come uno sul tuo codice e uno su
il sul browser questo è molto
importante come non 100 console 100
cose come due cose il tuo browser e
il tuo codice va bene così che si tratta di lis di
Certo che supportiamo anche uno come Scala
in modo nativo quindi è per Scala e Java
e la cosa interessante è che tu
può iniziare con Java e poi fare un po ‘
controller in Scala alcuni codoni in Java
ed evolvi in questo modo se vuoi
esempio per iniziare a capire come
Inada
la lingua di Scala quindi puoi iniziare
come progressivamente in questo modo se vuoi
come alcune parti del sistema di cui hanno bisogno
un linguaggio funzionale alcune parti
puoi farli con Java allora puoi
mettilo nello stesso progetto che c’è
nessun problema OK Indietro alle diapositive I
dovrebbe trovarli così così che la storia
qui come perché ci piace che stiamo parlando
sul lavoro web in tempo reale proviamo a
ricorda come da che parte proviene il web
l’ inizio come ha iniziato il web
iniziato come queste pagine statiche come
Pagine HTML proprio dove una società lo farà
metti un indirizzo e qualcosa e tu
sai che fai clic su questo ed è solo un
pagina statica nulla in là e poi
come scopriamo che possiamo mettere i contatori per
per gli utenti che sai contare quante
gli utenti stanno accadendo e questo è come
venendo completamente dal server Wow noi
può contare le persone e possiamo persino averne
alcune date dal da e la data
e il tempo che viene dal server I
sai perché è bello ma ma sembrava
fresco al momento per ottenere il tempo
dal server e quindi aveva senso
e abbiamo iniziato ad aggiungere sempre di più
roba dinamica nelle pagine a destra
qualcosa di simile a ciò che ASP e pesca fanno
stanno facendo come lo stesso modello di pagina
pagina statica ma aggiungiamo come dinamica
parti in quella pagina e
sai che un business ha preso questo e ha iniziato
come abbiamo iniziato a fare un sacco di
cose interessanti con l’applicazione
ma sempre con lo stesso modello giusto
pagina parti dinamiche e abbiamo scoperto
che non è scala perché è davvero
complesso un sacco di complessità nella pagina
come se tutto fosse confuso come alcuni
visualizzare alcuni pulsanti qui e alcuni noi logici
non potremmo non andare avanti con
quel modello e avevamo bisogno di qualcosa di più
struttura di quella quando iniziamo come a
sono iniziati modelli come MVC e così via
apparendo noi era come facciamo cerchiamo di
struttura questo più e metti il modello
separato dalla vista e dalla
controller e in questo modo come ogni aspetto
è rappresentato in un posto diverso e
quello e ha avuto un senso e poi con
grazie a questa struttura potremmo
introdurre ci piacerebbe fare molto di più
applicazioni sofisticate giuste e
è per questo che abbiamo quello che abbiamo per il
l’ultima volta non lo so da 10 anni circa
meno e poi qualcosa è successo noi
ho scoperto qualcosa chiamato Ajax, giusto io
potrei solo cambiare un posto in
la pagina e vai a fare una chiamata di servizio a
che al server, ma io posso dovrebbe
non ho bisogno di ricaricare il tutto
pagina aveva senso e abbiamo iniziato come
nel fare chiamate Ajax nella pagina
ovunque per essere in grado di farlo
cose interessanti come chiamare il
server per quattro cose diverse senza
rinfrescare l’intera pagina aveva senso
giusto e iniziare a fare sofisticato
cose fino a quando non abbiamo scoperto che questo è
non andando in scala destra e poi noi
deciso come abbiamo deciso al collo città
che abbiamo bisogno di un modello di un server come a
il server un modello che può essere targetizzato
meglio questo tipo di architettura dove
dove sta accadendo molta interazione
tra il browser e il server molto
di oggi in tempo reale apri il tuo
Twitter in pochi secondi si ottiene di più
tweets e se continuano ad apparire uguali
faccia la stessa cosa in Facebook un sacco di
flussi di quello che sta accadendo e tu
bisogno di qualcosa al server che
supporta questo tipo di nuovo paradigma un nuovo
necessità di sviluppare lo sviluppo di sviluppo a
il lato server, quindi cos’è il web in tempo reale
così il web in tempo reale è ciò che fai quando
ottieni i dati così come sono
non continuate a chiedere il server per
dammi un dato e piuttosto dammi i dati
ma è come
capisci come succede così se ne ottieni uno
nuovo tweet che lo porti nel tuo browser
non è necessario mantenere Pauline ora ciò che è
la tecnologia utilizzata dietro non lo fa
importa che ciò che conta è che tu
continua a riceverlo nel tuo
browser e fare qualcosa al riguardo
va bene così è la definizione di
Wikipedia fondamentalmente riceve informazioni
non appena è stato pubblicato dal suo
autori piuttosto che richiedere software
controlla qualsiasi cosa così tecnicamente parlando
cosa c’è dietro ciò che c’è dietro
onda in tempo reale ce ne sono diversi
tecnologia abbiamo iniziato con una lunga chiamata
il lungo conio è sostanzialmente II lo farei
chiamare il server okay emetterò a
richiedere una richiesta HTTP e il server
non risponderà fino a quando non ottiene qualcosa
nuovo per me e poi risponderà e
appena risponde, penso di sì
un’altra richiesta va bene e quella richiesta
aspetterò fino a quando non avrò un nuovo dato, quindi è così
tipo di simulazione del flusso di dati
ma è il cliente che è tutto il tempo
fare in modo che vi sia una presa aperta
c’è una richiesta e così se il
server ha qualcosa su cui è interessato
quello su quello su quella presa o su
quella richiesta risponde a quella richiesta ora
qualcosa che è successo dopo che potevamo
fare commit e commit è diverso
cose come commit possono significare cose diverse
cose ma una di queste è interessante
pensavamo a un trucco per attuare commenti
è come sappiamo che c’è HTTP chunked
Il pezzo HTTP sta praticamente dicendo quando io
rispondere quando ho una risposta quando io
invia una risposta al browser che posso
mandalo in pezzi diversi
pezzi e se il browser può capire
quello che è questo pezzo può mostrarlo bene
via a destra può tradurlo e mostrare
va bene può dare un senso a qualcuno dei
pezzi come vengono li mostrerà
giusto così il browser non solo può
ricevere le cose a pezzi, ma può
capirli in pezzi che è
in realtà fatto per alcuni forse
ottimizzazione delle prestazioni per lo streaming
file di grandi dimensioni per lo streaming di immagini e così via
ma la cosa interessante è che
è che puoi quello che puoi fare è quello
puoi trasmettere alcuni tag di script in modo tale che se io
ruscello
script tag ogni chunk è un tag script
il browser lo eseguirà correttamente e
questo con questo è possibile simulare alcuni
alcuni flusso continuo proveniente dal
server perché il server è simile a un bambino
continua a inviare questo script sono loro
avere alcuni dati e potrebbero chiamarne alcuni
callback e sarò in grado di farlo
simulare un flusso, ecco cosa
fondamentalmente la cometa è un hack in cima
HTTP un pezzo e poi ne abbiamo sentito parlare
WebSockets e tu sai che questo è
strumenti non in modo nativo sai
presa bidirezionale con un server e
poi c’è qualcosa di ancora di più
interessante o interessante non lo faccio
sapere come lo definisco ma il server inviato
l’evento è fondamentalmente un protocollo in cima a
HTTP molto simile al HTTP chunked
ma è come supportato nativamente dal
browser e dove il browser può
capire questo evento inviato ma a breve
dal server, ma è un modo dalla
server al client che è gentile
cool in alcuni casi in cui non lo fai
voglio inviare molto dal client ma
piuttosto ricevo molte cose attraverso
il flusso comunque questi sono giusti
tecnologie che ti possono permettere di fare
quello che chiamiamo web in tempo reale, ora che cosa
posso fare con questo giusto voglio dire che ho ottenuto
questo socket o qualunque cosa tu li chiami
in tempo reale cosa posso fare che li farebbe
Intendo dire che hai una tecnologia
è necessario decidere cosa fare con esso
quindi una delle cose che puoi fare è
come peer disconnessi dove qualunque cosa
qualunque sia l’esempio potrebbe essere un
chat web dove hanno colleghi connessi
con il server inviano un messaggio al
server di servizio pubblica tutti ma
lo stesso concetto di una chat web di a
la tabella potrebbe essere come un gioco in cui le feste
continua a inviarlo e questo è pubblicato
giusto potrebbe essere un gioco potrebbe essere qualsiasi
compaiono altre applicazioni che conosco
e i peer del server e il server e
potrebbe anche essere lo streaming di alcuni
informazioni come quello che hai dentro per
istanza hai un sistema che sei
monitorando hai mangiato puoi prendere una presa
a quel sistema e continuerà a spingere
alcuni aggiornamenti su come il
server sta facendo bene questo è tutto
delle cose che puoi fare quindi è a
una presa di direzione dal server a
il cliente o, ad esempio, puoi iniziare
un sacco di lavori di MapReduce o in tempo reale
calcoli e puoi prendere questi dati
e
trasmetterlo al browser al
cliente come succede e tu hai il web
API di flussi web in streaming web così Twitter
ce n’è uno che puoi cercare per un termine e
si ottiene in tempo reale e in tempo reale si può
ricevi i tweet mentre accadono
qualunque cosa e tu puoi mescolarle puoi
avere un mix di questi in n1 app ok
quindi mi piacerebbe mostrarti come alcuni
esempi di app che usano già giocare con
con questo web in tempo reale quindi c’è questo
è chiamato scacchi è un gioco di scacchi
applicazione quindi devo farlo
ok ok quindi c’è questo scacchi ok così questo
questo ho appena detto che è un gioco è un
gioco di scacchi che sta accadendo in tempo reale
hai un sacco di persone collegate a questi
molti giocatori ci sono giochi contro questo
capita di partecipare a un gioco a cui non potrei partecipare
era troppo veloce non toccarlo ma
comunque tu puoi e questo è basato su
in alto e puoi vedere qui è possibile
guarda anche tutti i giochi che sono
accadendo non sono come i giochi che puoi vedere
come succede in tempo reale
puoi vedere che si stanno muovendo, quindi questi sono
come usare WebSockets con sopra
suona anche c’è una caratteristica nascosta
in qualche posto dove puoi monitorare
l’intero sistema così questi sono questo è un
stream server ha inviato lo streaming degli eventi in arrivo
dal server che racconta come
il server è si sta comportando sembra
sembra comportarsi bene per me, quindi non c’è
un’altra cosa che aiutiamo
Attuazione aggiunge allegato per aiutare a legare il
aspetto di implementazione typesafe è il
aqua console così è la console aqua
fondamentalmente un sistema che controllerà come
i tuoi attori lo stanno facendo quindi non lo so
come si comporterà in questo tipo di
impostazioni ma è davvero interessante è che esso
raccoglierà dati simili da tutti questi
server e li teniamo aggiornati su
flusso in loro sul lato client così
qui questi aggiornamenti stanno avendo in tempo reale
è esattamente quello che vedo come il sistema è
facendo adesso e puoi avere molto
di attori molti dispatcher puoi
clic
qui e componi diversi ceppi
perché sai che fondamentalmente ci sono
widget e quindi puoi comporli
e puoi decidere quale stream vuoi
per ricevere e lo si mostra sul
interfaccia
ok qui possiamo ottenere gli spedizionieri okay così
e c’è quest’altra cosa che devo solo dare
idee c’è questo senso di colpa che il servizio
ha fatto un live streaming okay quello che mostra
quello che le persone stanno comprando in questo momento e
di nuovo è un evento inviato dal server
che ti sta inviando come se gli aggiornamenti fossero come
mentre accadono questo è ciò che gli utenti sono
comprando e poi puoi vedere quanti
articoli che hanno ancora quanti si
ancora di questo oggetto, per esempio
qui non so quanti ne siano rimasti ma è
in qualche modo sì , questa è la costante
che la console di akka ha fatto quello che ho mostrato
sei una demo, quindi puoi andare a controllarla
tu per te lo ottieni con il
pila typesafe e ho visto un tweet simile
lo avrai gratuitamente per
gli sviluppatori, ma è parte di quella mia
abbonamento typesafe ma puoi averlo
ti piace come sviluppatore che puoi
averlo gratis sembra nel prossimo
rilascio quindi abbiamo esempi andiamo
in avanti dovresti stare bene così questi sono i
servizi così ora parliamo di tutto questo
le cose ora la domanda è subito
come se dovessi introdurre un nuovo
quadro per farlo, perché non dovrebbe
perché non posso usarli non posso usare il
i server di guerra ho ricevuto Tomcat o altro
altri server di guerra per fare
questo tipo di app perché ho bisogno
assolutamente un nuovo quadro e tengo
sentir parlare di nuovi framework Java
fai questa cosa bene , facciamolo
avere qualche contesto su questo
problema quindi fondamentalmente quello con il
architettura di guerra e alcuni di voi
potrebbe già sapere che è basato sul
fatto sul presupposto che un utente I
dargli un filo che significa che vai
richiesta va bene lo do lo do a
quella richiesta viene letta finché dura
e poi quando arriva quella risposta
indietro ci dà una risposta indietro
dal filo che è bello nel caso tu
sei tu sei solo e non lo fai
hanno un sacco di utenti che lo indicano
server
è come l’ auto come se fosse contenuta da esso
di per sé, non non ha chiamato alcuna
servizi esterni potrebbe chiamarlo
database ma questa è una storia diversa
ma non interagisce con il resto di
il web la richiesta è solo CPU per lo più
CPU vincolata andrò e ne farò un po ‘
CPU e ha senso dare un thread
perché comunque se non hai discussioni
significa che ho un sacco di CPU
attività qualunque sia, ma questo è
quello è il vecchio l’altro vecchio modo di
progettare applicazioni web proprio perché
ora hai un sacco di cose che devi
interagire con il web che hai
riposano molti altri server Web
api di cui hai bisogno per raccogliere dati da
questi e ottieni molte connessioni
non solo in amore per gli utenti che stanno accadendo a
nello stesso tempo ma io abbiamo detto che abbiamo bisogno di a
socket aperto con l’utente in modo che l’utente
aprirà un socket e durerà come
tanto quanto una lezione può durare per ore no
si sa bene che è solo una presa aperta
e se dai ogni socket aperto a
filo allora tu non sarai in grado
per servire più di 100 forse 200 thread
per un particolare server web che
non scala in modo assoluto non scala
perché l’architettura lo ha fatto
alcune ipotesi su come progettiamo il web
applicazione che si basava su ciò che noi
aveva al momento e le cose sono cambiate
va bene senza quindi dovremmo riconoscere
questo cambiamento e dovremmo procedere a destra
quindi quello di cui abbiamo realmente bisogno è questo quando noi
chiamare uno dei servizi che sono
okay, abbiamo bisogno che non dovremmo
bloccare le risorse che dovremmo restituire
discussioni okay non abbiamo bisogno del thread
ora ho fatto qualche IO e sto aspettando
risposta quindi non ho bisogno di aspettare f2
per bloccare un thread quando succede io
lo prenderò, lo gestirò bene e
e non dare ogni connessione al thread
solo la connessione è lì che non lo facciamo
preoccupati se c’è qualcosa da fare
con esso prenderò un filo che farò
Esusa un po ‘di codice e poi lo darò
indietro il thread il thread come esecuzione
non ha alcun collegamento alcun collegamento
a quante connessioni ho avuto
e questo è ciò che chiamiamo non-bloccante
il non blocco è fondamentalmente che faccio un occhio o
qualsiasi cosa e io non sono un blocco, non lo sono
bloccando il thread di esecuzione il reale
il thread di esecuzione corrente mentre quello
questa chiamata sta accadendo, ho appena capito
notificato mi viene notificato quando questa cosa
è fatta
immagino che chiami come Twitter o
Amazon per averlo fatto diciamo che lo sono
chiamare Amazon per fare un enorme
computazione okay non voglio aspettare
e sprecare le mie risorse sulla macchina
aspettando Amazon Amazon mi notificherà
quando succede e posso andare a fare
qualcos’altro questo è ciò che chiamiamo
a destra reattivo non sono proattivo, non lo sono
aspettando che la risposta accada e
reattivo e questo è estremamente importante
se vuoi ridimensionare ora ce n’è uno
è come se sentissimo parlare molte persone
su questo tipo di argomento e io no
come il mio quadro è un diritto sincrono
Ho ottenuto questo framer web che è completamente
asincrono Wow completamente asincrono
sembra che ti stia vendendo qualcosa
un sincrono è un problema è come
lasciando tutti questi benefici che ottieni
programmazione sincrona gratuitamente ora il
prima domanda dovresti chiederlo a questo
qualcuno che ti sta vendendo questo perché perché
vuoi che io faccia il programma in a
sincrono e quindi dovrebbe avere un
rispondere se non si dispone di una risposta che
non serve questo sincronismo okay se lui
ti dice che ho un non-blocco e
quindi devo assolutamente essere sincrono
va bene perché stai dando via
il tuo patrimonio come il sincrono
programmazione che è confortevole ma per
qualcosa che stai dando per pubblico
la fabbrica sarebbe non-bloccante
per il fatto di essere forse parallelo così
la programmazione parallela farà anche alcuni
asincrono che devi fare con a
sincronicità ma non è un vantaggio
un sincrono è un whoreo è qualcosa
davvero difficile ragionare su ed è
non un vantaggio e la prima volta quando
qualcuno ti dice che ho un sincrono
non ti piace perché e wow questo è difficile
perché perché mi chiedi di farlo e
la seconda domanda è quali sono i
strumenti in modo che io possa occuparmi di questo ora
parola pazzesca di un sincronismo giusto
egli dovrebbe fornire gli strumenti
non dovresti lasciarti allo stato brado con a
stinco
Skol arretra come sto aspettando
Assegna le correnti di Kobach come posso fare
ora voglio tutti e due ok ok ora ho
per fare registri o non registri o non so
cosa e poi iniziare a trattare
cose che non avevo a che fare quindi
quadro che ti sta suggerendo
fare non bloccare o parallelo dovrebbe
fornirti gli strumenti per gestire a
programmazione sincrona e lo facciamo
usiamo i futures in gioco
con le autorità, qualunque esse siano
sono strumenti per aiutare ad affrontare con un
stanza sincrona come succede perché
di non bloccante e reattiva tutto di C
ok okay okay, abbiamo ottenuto questo reattivo
sistema proprio in questo modo usiamo il thread
solo quando abbiamo bisogno di usare nel modo giusto ci
non bloccarlo per aspettare qualcosa
usiamo quando abbiamo bisogno di usarlo
e abbiamo bisogno di usare la stessa architettura
nessuno su blocco e architettura per
trasmette i flussi giusti come una serie di
dati che stanno accadendo e che non vogliamo
bloccare tutto ciò che vale la pena aspettare il
prossimo evento che sta per accadere in
il flusso abbiamo bisogno di consegnarlo lì
nello stesso modo reattivo giusto così
questo è un po ‘di alcuni riproducono alcuni codici di riproduzione
Java ed è come offrirti uno
soluzione per fare con prese
quello che hai qui è quindi questo è un po ‘
controller è un WebSocket che ottieni
dentro e fuori a destra e per il per il
puoi dire ok su ogni messaggio
avere una richiamata e la stamperò e
stampalo qualunque cosa e per il meglio che posso
dire okay out dot stampa qualcosa okay
Wow
questo è callback vero questo è così
è una soluzione per fare di nuovo
flussi così questo è quello che abbiamo ora giusto
ora in questo momento nell’API Java il
problema con Java con Java Java
come lingua manca una sola cosa
per noi in questo tipo di scenario abbiamo bisogno
una funzione se abbiamo una funzione allora noi
può offrire un’API molto migliore di questa
che tiene conto della conformità
di utilizzare il flusso di utilizzare flussi come
qualcosa che gestirà tutti i casi
per te hai appena spiegato affari Express
logica la logica del gioco o qualsiasi cosa tu
cercando di programmare e poi il resto tutto
la sincronizzazione tutta la gestione del
l’impianto idraulico è fatto dal quadro così noi
ho bisogno solo di una funzione ora devo chiedere
tu una domanda a questo punto che posso fare
una delle due cose o posso andare e
mostra altri esempi di utilizzo di Java
API o possiamo andare in un paese delle meraviglie dove
possiamo vedere come potrebbe accadere se noi
avere una funzione se si potesse avere
qualcosa che veramente veramente indirizzi
questo problema di fare in tempo reale in tempo reale
web e reattività e tutto
queste cose quindi il rosso è per il
secondo e il blu è per il primo il
il rosso è per il paese delle meraviglie che va per
il rosso oh tutti sono fortunato perché io
non ho l’altra parte che potrei io
potrebbe aprire my my Emacs e mostrarti un po ‘
esempi nessun problema e ti sto offrendo
solo la verità quindi quali sono i flussi I
significa con albero stiamo parlando di reale
tempo web su flussi ma non abbiamo
identificato quali sono i flussi
cosa sono come posso parlare di loro
Mi piace come posso assegnarli a una lattina
Assegno il mini per sempre se mi piace
diciamo estremo e mettilo in una variabile
riferimento in seguito posso adattarlo
in qualche modo come posso aver bisogno
trattare con flussi che conosci il primo
cosa che la prima cosa che dobbiamo fare è
per riconoscere che esistono questi
ruscelli e parlare per avere un po ‘
vocabolario di cui parlare con cui noi
possiamo parlare di loro giusto che dovremmo
trattali come sai di cui parliamo
oggetti possiamo mettere la struttura dei dati e
riferimenti che li mettono nelle mappe noi
bisogno di ragionare nello stesso modo e in
allo stesso modo sui flussi allo stesso modo
noi ragioniamo su qualsiasi altra cosa, così
quando hai visto questo codice dal precedente
esempio ti ha ricordato qualcosa
mi ha fatto nulla di deja vu che dire
quel periodo prima della struttura
poco prima della struttura che abbiamo
qualcosa che assomiglia a questo wow
è molto simile quando siamo noi
non aveva gli strumenti per fare alcun tipo
di cose come il web o qualcosa prima di noi
abbiamo iniziato a fare i giocatori del tempo che è
come avere GSP è strano per avere tutto
di questi quindi siamo tornati a quel punto
ora siamo tornati a quel punto con tutto
i quadri che ti offrono un
canale con push un proprio messaggio a
qualcosa siamo tornati a quello
era di fare qualsiasi cosa in modo imperativo
e la cura di tutti i problemi del
mondo e questa cosa è solo richiamare
è davvero orribile, intendo dire che porta
io questo è giusto come abbiamo parlato
è come se fosse una è l’inferno di callback
E ‘quando ci avete voi stessi a
ragione come se accadesse dopo
l’ altro sei tu non hai un
modello di programmazione che ti manca
quello di cui hai bisogno è una programmazione
modello questo non è un modello di programmazione
questo è un hack questo va bene
è solo portarlo a disposizione il fatto
che puoi ricevere un messaggio ma
è così non è un modello
non c’è un modello di programmazione
e ciò di cui abbiamo bisogno è davvero una programmazione
il modello va bene così questi sono l’importante
domande come possiamo parlare di questi così
abbiamo avuto qualcosa nella storia di Java
è molto simile a ciò che vogliamo
raggiungere abbiamo ottenuto flussi di input e output
ok almeno posso assegnarli al
Vario a una variabile che possono rappresentare
questo flusso che tipo di che è gentile
di buon passo di trasmettere a che fare con
flussi come se si trattasse correttamente
flussi che a loro piacciono solo alcuni
non sono reattivi stanno bloccando
sai di non non essere bloccanti
bloccando e a loro piacciono alcune strutture
per composizione ma è stato un buon passo
Vorrei identificare i flussi così sembra
sembrava che fosse l’industria
andando indietro
abbiamo iniziato a fare qualcosa in Java
se c’era una buona ingegneria di una lista
che parlava di flussi in a in a
modo normale e siamo andati indietro
come eventi e qualunque sia la complessità
porta bene così quali sono i flussi che vogliamo
trattare con flussi come di prima classe
cittadini in fila nella lingua
nelle biblioteche giusto sappiamo che vogliamo
non rappresentarlo come eventi e gestori
e così via e vogliamo avere flussi
adattatori e lavandini sono i flussi giusti
cose che stanno avendo adattatori di eventi
è essere in grado di adattare questi flussi
in qualche modo e e cose dove noi
spingerà questi flussi per sapere che è
okay è um qualunque cosa vada bene così
facciamo qualche finzione qui se Java avesse
funzioni quindi ne prenderei un po ‘
stream che è tweets lo assegnerò
ad un diritto variabile sappiamo cosa questo
significa e quindi posso ottenere questi tweet
ok prima che possa fare un adattatore
tradurrà un flusso di stringhe in
un flusso di G proprio diritto è una specie di
Adattatore e come si farebbe che ciò che
mapperà ogni stringa s in una G così
e analizzerà solo ogni stringa come essa
succede proprio questo è un adattatore
prende ogni stringa e la dà e
è uno scopo generale che posso usare
con tutto ciò che sta arrivando avendo
corde nella nostra zona G e io posso solo
adattare qualsiasi flusso in questo modo con questo
adattatore quindi è molto generale
adattatore di scopo e quindi cosa posso fare
posso spingere i tweet attraverso il G
zona giusta niente di speciale lì e poi
Posso avere un altro stream che
rappresenta alcune pubblicità che voglio mescolare
in con con questi tweet e poi
Posso intercalare questi flussi e posso farlo
e posso intercalare questi flussi tweet
dot in tweets dot interleave alcuni annunci
e poi lo passo attraverso la cometa
protocollo o il protocollo della sorgente di eventi
che è il server ha inviato eventi che è
anche il professionista
chiamare il protocollo sourceource è giusto
un adattatore giusto
riceve i messaggi li inserisce in alcuni
protocollo e li mette al filo
giusto è stato facile, abbiamo solo bisogno di avere
il vocabolario di cui abbiamo bisogno per avere il diritto
tipi di essere in grado di esprimere quali flussi
sono e il programma è completamente
diverso ora è come se non lo fossi
parlando di come sincronizzare questi
flussi che sono intercalati non lo sono
parlando di come fare quando va bene quando io
invia qualcosa dovrei lavorare con il
server per scusate per il cliente fino a quando lui
lo riceve o no tutto questo tipo di
cosa di cui si occupa tutto l’impianto idraulico
dal quadro che è ciò di cui abbiamo bisogno
bisogno di parlare di flussi come flussi
e non come qualcos’altro prima da allora
flussi in questo momento questo esiste
già esiste nell’API Scala
ma è molto simile a quello che abbiamo ottenuto
qui in Java, che ho fatto io
adattamenti per poterlo rappresentare
in questo modo ciò significa due cose che noi
può già averlo oggi ma c’è
qualcosa di interessante anche per le persone
che non erano disposti a trasferirsi
Sparga questo che possiamo facilmente averlo
quindi possiamo facilmente averlo in Java 8 quando
otteniamo la funzione che banale va bene
abbiamo ottenuto il quadro completamente
sostenere questa manipolazione reattiva di
flussi siamo lì è solo una questione
di una API di superficie dove tutto ciò che possiamo
implementare in una settimana o così e possiamo ottenere
lì con API è quello che sanno come
trattare con flussi di dati ok
quindi non è difficile il cuore che noi
solo bisogno di una cosa da Java così a
essere in grado di rappresentare tutto okay e
anche se alcune persone sono familiari
con la trama con il plug-in Eclipse o
qualcosa del genere che rappresenta
funzioni e nella maggior parte delle classi fuori
funzioni possiamo anche aggiungerlo per questi
okay, quindi quello che abbiamo qui abbiamo il
potente manipolazione del flusso reattivo
API giusto Posso ragionare sulla mia logica
e non la logica di come sincronizzare
tutte queste cose e giocarci bene
Posso esprimere la mia logica
e e non ho bisogno solo di ottenere il
possibilità di avere una presa e spingere
attraverso di essa ho bisogno degli strumenti di cui ho bisogno
gli strumenti che abilitano mi consentiranno
affrontare questo senza l’enorme
complessità di gestione della concorrenza
Va bene così quando si esprime la tua
affari o il tuo gioco o qualunque cosa tu
stanno esprimendo che non vuoi dire
come se succedesse cosa succederebbe se dovesse succedere
Prima che ciò che si vuole dire come
questo è un flusso questo è un altro flusso
questo è interleave, adattiamoci
un po ‘a destra e cerchiamo di bufferare così
è molto facile da fare banale no e lo voglio
per bufferare come 20 e messaggi prima
inviando perché il modo in cui è fatto di più
è meglio che non mi piaccia molto
cose che puoi fare con questo questo
API come possiamo siamo diventati davvero enormi
Non so quanti metodi che il nostro
metodi di supporto a ciò che puoi fare
qualcosa di simile è molto utile in
caso di web ed e-dealing in tempo reale
con i flussi così mi lasciano ora posso mostrare
tu un esempio di ti mostrerò solo io
berrà acqua quindi vediamo un esempio
di usare questi flussi per un esempio
sembra un business sfortunato e
dal modo in cui abbiamo ottenuto un sacco di campioni in
un bel po ‘di campioni nel lettore
distribuzione che puoi controllare
fuori per ottenere qualche ispirazione
o alcuni esempi su come utilizzare questa API
quindi vado nella vita di commenti sparsi
sì sì questo così comincerò con
un altro rispetto a quello che volevo
per mostrare bene questo è quello che ho io
ottenuto in là no non mi interessa circa male
quindi ora in realtà va bene che cosa è così io
aprirò i modelli che sono nei modelli ok
quindi qui quello che faccio in realtà è che io
avere diversi flussi che ho preparato
ho un flusso di richieste per
secondo va bene è un tipo di monitoraggio
API è un servizio di monitoraggio dove io
ottenuto un flusso di monitoraggio come come
molte richieste al secondo che sto ottenendo
questo è il server che mi sta ricevendo
il mucchio di un flusso mi sta facendo come
Lo stato della CPU e poi quello che faccio è così io
prendi il primo stream che ho interlacciato
questo è fondamentalmente punto interlacciato con
il secondo punto del flusso si interseca con
il terzo e così via va bene
ora potresti chiedermi come potresti
voglio sapere come dove sono i giusti
mangiare bene non attraverso il protocollo va bene così
in fondo quello che stiamo vedendo qui è molto
interessante bene prima non stiamo mentire
su HTTP stiamo inviando uno stato okay
con un flusso di dati e in streaming
di dati sta intercalando diversi flussi
e questo è molto interessante significa
come posso sapere che posso occhi modulari
i miei flussi li posso mettere in diversi
file diversi progetti e poi posso
Posso ottenere in seguito e intercalarli
e spingerli nel filo questo è
molto interessante proprio perché lo siamo
parlando di flussi che possiamo separare
loro in cose diverse e ora se
guardi come le icone costruiscono il
diversi flussi cosa è come è
non è così difficile in realtà così se io
entrare qui sta fondamentalmente dicendo
ogni
così ogni 100 millisecondi che ho intenzione di fare
esegui questa cosa bene, che è
ottenere le richieste al secondo per
istanza l’heap è un po ‘più chiaro
perché fa meno cose quindi ogni 100
millisecondi Sto tornando il tempo di esecuzione a
ottenere tempo di esecuzione della memoria totale meno uno
guardare il tempo in fase di esecuzione con memoria libera
che è un diritto di heap che significa come
questo è un modo di costruire i flussi
colpendo alcune API sulla JVM di
questo caso e ottenere questi dati e
costruendo flusso fuori da tutto ciò che io
fatto a dove o cosa dovevo fare
è solo esprimere quale codice dovrebbe essere
eseguito ogni qualche secondo e io
ottengo la barra di flusso fuori di esso ottengo a
flusso di non è credo in questo caso
e poi lo adattare a modo suo così
proviamo a eseguire questa app che lo farà
sembra un po ‘familiare e poi commetti la vita
Sono un congelatore del computer mi dispiace
oh sì grazie va bene e poi torno indietro
non so quante volte
sì, quindi non dovrebbe funzionare ok, grazie
qualcuno che lo seguiva era un test
entrare lasciare wow come l’ hai rilevato
scusa
pensi che nessuno Am I yeah yeah yeah questo è
giusto cosa è magico okay okay questo ragazzo
e dovevo colpire refresh così è
fondamentalmente ora sta compilando il
i file sorgenti mi danno un sacco di ex
avvertenze perché sto facendo un po ‘
refactoring questo è il padrone e ottengo
questo ragazzo che mi mostra lo stato di
loro del sistema, ok, era così
molto facile da fare, quindi un altro esempio
e di nuovo intendo che siamo molto vicini a fare
questo in un angelo abbiamo bisogno di riposare il
funzione per essere in grado di fare questo
essere in grado di parlare di flussi e in
nel modo giusto il modo naturale, quindi quale
qui sì e poi c’è tempo di streaming
Credo che forse l’applicazione sia così
un po ‘più interessante forse e diverso
non c’è niente così dis andando così lo stesso
la cosa è qui mi dispiace ok, quindi di nuovo io
ho così qui ho una domanda per
che ho ottenuto due tipi di dati
Ho delle operazioni e ottengo lo stato del sistema
giusto così le operazioni sono fondamentalmente un
importo e il livello di così può essere un
come amministratore o manager qualunque sia e
allora hai qualche stato di sistema che il
il sistema sposterà alcuni stati a
giusto e ho avuto questi due tre tre
flussi uno di loro è operazioni che è
generato casualmente l’altro è un po ‘
rumore proveniente dal sistema e il mio
gli eventi sono i due interlacciati proprio questo
significa interleaf Posso scriverlo per dimostrare
esso
ok ora dal lato controller è
un po ‘interessante perché voglio
applica alcune regole aziendali qui bene così
prima cosa quindi questo è il flusso che io
invierà questo è il controller
che invierà il flusso a quella
al cliente giusto e ne ha diversi
parametri paddle ottenuti dall’utente
che ti darà il ruolo del
utente se è un amministratore Sono un manager o un
utente normale e l’utente darà come
un limite inferiore e uno superiore del
operazione è disposto a vedere come sono
interessato solo a importi compresi tra 50
e diciamo 150 giusto e questa è la volontà
essere dato dall’utente e volontà
dinamicamente qui sarà dinamico
costruire il flusso che corrisponde a
questo criterio come lo faremo per primi
facciamo questo l’ adattatore sicuro è un
adattatore proprio come abbiamo visto è solo un
adattatore che controllerà solo se il
ruolo è un manager allora lascerà
lo lascerà andare altrimenti lo farà
basta restituirlo filtrarlo, va bene così
darà solo le operazioni che sono
privato solo per manager e solo
pubblico è per gli altri che è ma
cosa sta dicendo in sostanza che do se lo è
privato è solo manager che stanno per
prendili se è pubblico allora
tutti possono vederli questo è gentile
di sicurezza per il flusso e poi io
avere un’altra cosa funzionale che è
in arrivo ho bisogno di averli in arrivo
è un altro adattatore per il flusso dove
Ho detto che va bene, devo filtrarlo
raccogliere è una specie di filtro dove io
potrebbe dire ok se l’importo è
dentro i limiti e lo lascio
altrimenti e se si tratta di uno stato di sistema I
lascia andare e qualsiasi altra cosa io sia
non lasciare andare a destra raccoglierlo solo voi
tu dici i casi che vuoi e tu
lancia tutto ciò che non ti serve ok
e poi ho un terzo adattatore che è
come JSON che prende ogni caso con ciascuno
digita ogni struttura dati e realizzala
in un JSON e l’adattatore più fine è
sicuro insieme con così è composto
Li lascerò in questo modo ma questo è
sicuro composto con composto in ingresso
con come zona G quindi sto prendendo questi
adattatori e li sto componendo insieme
ok per fare un adattatore così io
anche in compose adapters e ne ottengo uno
adattatore questo è l’adattatore finale e
allora posso nutrirlo e lo passo attraverso
un altro adattatore che è l’ evento
adattatore sorgente ok
sembra semplice, sto parlando
adattatori Sto filtrando alcuni flussi e
questo è tutto ciò che sto facendo
vediamo come funziona, dovrei saperlo
dove è prima, quindi credo che sia dentro
spazio di lavoro sì e poi streaming demo e
allora va bene eccolo qui
ora cosa dovrei fare
Dovrei eseguirlo come metodo per
giocare questa speranza non ho rotto qualcosa
Ho portato qualcosa Wow okay proviamo
per risolvere velocemente questo problema è a
progetto
baby baby baby è nei plugin credo
in realtà perché ho il mio padrone così
Mi sembra di aver rotto qualcosa che sto cercando di fare
aggiustalo velocemente spero di essere in grado di risolvere il problema
ma altrimenti se non posso aggiustarlo
credimi ragazzi come funzionerà, lo so
non è qui mi dispiace è solo dentro
le proprietà costruiscono proprietà dispari qualunque
milioni di proprietà va bene così com’è
è stato difficile trovare non in questo modo
ma zero ok proviamo a eseguirlo ora
spero che funzionerà così fondamentalmente lo sono
come se ne stiamo uscendo con alcuni
dipendenze nel quadro e
è per questo che ho sempre il mio padrone
è un po ‘ sporco dovrei provare a
pulirlo spesso e questo è stato un esempio
prima di fare il refactoring così è
perché ho avuto questi problemi sembra
compilazione bene quindi ci andiamo
in realtà mi limiterò a chiuderlo non si apre
va bene così ho le operazioni in verde
quelli
vuol dire come sono scorretto privato
quelli rossi sono privati così come io non sono un
manager vedrò solo quelli verdi
se vado come manager e poi posso vedere
quelli rossi anche a posto e lo stato del sistema va bene
e quindi posso impostare il limite legato che posso
dì come voglio tra il 50 e il 1000
e non ho intenzione di ottenere qualcosa
come se fosse meno di 50 non lo è
ovvio facciamolo 100 possiamo vedere il
l’idea è la stessa cosa di un utente che posso fare
la stessa cosa tra le 500 quindi va bene
molto meno spesso è così così
questo è davvero rappresentativo, credo
casi reali casi reali intendo che lo facciamo
un po ‘ come facciamo app web in tempo reale a
il mio confronto esce II ed è davvero
è un lui
Voglio dire che hai gli strumenti giusti
parlare delle cose nel modo giusto
e hai gli strumenti è così tanto
più facile parlare di cose come abbiamo fatto a
molte applicazioni come un po ‘di miscelazione
registra alcuni come fare un po ‘di tempo reale per
istanza e attacca l’applicazione
qualunque cosa sia ed è davvero banale
dal lato server perché abbiamo ottenuto il
le astrazioni giuste vanno bene
motivi per essere in grado di lavorare con i flussi
come sto andando in tempo
Immagino che sì, va bene e ci sono a
molti altri esempi là fuori come
okay, ero solo un ultimo esempio
molto velocemente spero di non averlo rotto – e
se lo spezzassi non lo mostrerò a te
sarà in grado di venire a vederlo da
te stesso, quindi riproduci due campioni okay
e questo va bene, non va bene
Suppongo locator ancora dai dai
ok compilazione dovrebbe farlo ora ok oh
Devo effettuare il login okay non ricordo il mio
la mossa di login era okay non questa
uno va bene quindi qui fondamentalmente sta usando
l’ API di Twitter hanno uno streaming
API che ti piacerà cercare un
termine e otterrete il flusso di
i tweet che stanno parlando di questo sono
accadendo in tempo reale giusto così siamo
semplicemente collegando questo flusso di dati
quello proviene da Twitter e noi siamo
lo streaming utilizzando gli eventi inviati dal server a
al cliente un sacco di gente
ridendo quindi immagino sia così
bene voi e domande Sì, e per ringraziare
il modo in cui proprio qui dovrei mostrare se sì
vuoi se sei interessato a giocare
allora puoi andare e controllare il sito web
che è wow che mi dà dal
all’inizio perché lo fa bene?
okay puoi andare al framework lì
è una comunità che puoi ottenere con le cose
ha risposto molto velocemente molto molto
comunità attiva e controllare controllare il
i campioni sono davvero interessanti, okay
domande ora sì sì effettivamente così
la domanda riguarda SBT con il gioco ora se
sei se non ti interessa di SBT e
scala e tutto ciò che poi c’è a
pacchetto si ottiene si ottiene come il
normale esperienza di gioco che farai
avviarlo con play run a cui non importa
riguardo SBT non fai niente su niente
di questo e se non si distinguono in
la tua faccia ora se ne hai una molto simile se
stai usando SBT e ne fai molti
le dipendenze che hai molto
dipendenze da molti altri progetti a
molte altre cose a volte questo
Beatty fa alcune cose in esso intendo
non è SBT, è come se dipendesse
fare dipendenza con dipendenza è molto
difficile problema, Mavin non ha potuto risolverlo
completamente ivan né e SVG no
qualsiasi voglio dire è che è un passo
avanti per alcune parti ma loro
voglio dire che ne hai ancora qualcuno
casi strani in cui si diventa diversi
dipendenze o a volte come qualcosa
succede male ma a volte piace quando
si aggiorna una nuova versione di gioco
potrebbe accadere solo tu hai bisogno di avere un
script che pulisce tutta la cache e
allora è possibile che sia fondamentalmente la cache IV
questo è che a volte ce ne sono alcuni
guai ma hai una sceneggiatura pulita così
tu dici di giocare pulito – tutto e lo sarà
pulisci tutto ciò che è così va bene
quando hai qualche problema proviamo
a fare il proprio pulito e in modo che possa
risolvi il problema soprattutto quando lo sei
spostandosi tra le versioni perché ha ottenuto un
molte cose memorizzate nella cache e tu ne hai bisogno
puliscili , sì, è così
spesso non è quello che succede a zero
qualunque cosa e ora abbiamo risolto noi possiamo
cambiare il mondo completamente come noi
farlo la situazione di stallo che si sta parlando di
era come un blocco in cui era
modalità di sviluppo è stato perché alcuni
passaggio di classe gerarchia dei classloader che
era sbagliato era come un genitore chiamare il
figlio Charlie che chiama il genitore dell’acqua
ma completamente rimosso che nel
prossima versione qualsiasi altra domanda quindi il
la domanda è quanto è conveniente per
uno sviluppatore Java giusto e ovviamente io
significa che consiglio di usarlo da Java di
Certo che ci sono cose che non puoi
basta fare in Java e poi hai il
opportunità di fare solo una parte in Scala
e il resto lo fanno in Java, ma ci sono
aziende davvero grandi che usano solo Java
e uno di loro sta andando forse a
annunciamo presto che abbiamo davvero lavorato molto
con loro per ottenere come l’esperienza
giusto e davvero lavoriamo con reale reale
progetti di progetti mondiali con veri like
problemi e cose reali e noi davvero
avuto modo di sperimentare
Intendo fondamentalmente lavorando con questo
società che è davvero interessante
riferimento in voi conoscete il tipo Java EE
di atmosfera è davvero interessante
perché si preoccupano esattamente di questi
la questione di uno sviluppatore Java e
davvero lavoriamo molto vicino a loro e
ci piace
e sono andato da loro per cui ho lavorato per un
poche settimane in modo che abbiamo capito bene
questo sì sì è un Java e un po ‘di
sviluppo web framework e tu puoi
usalo da Java così come Kara lì
sono alcune cose che non si sarà
in grado di fare in Java fino a Java
ottieni la prossima funzione get e cose
come quella
fino ad allora si puoi fare queste parti
solo in Scala e comunicare tra
quello ed è solo un sistema quindi c’è
nessun problema nel fare queste domande
domande bene che è tutto e vi ringrazio
ragazzi
Please follow and like us: