Press "Enter" to skip to content

GOTO 2015 • The Front End Architecture Revolution • David Nolen


lavoriamo anche su qualcosa chiamato il
atomico in arrivo è il nostro unico prodotto
nel bellissimo database così ci vuole
le idee divengono popolari abbastanza bene
mini programma pronto in modo che queste idee
sono stati presi e sono stati portati nel
contesto di database quindi fondamentalmente lo costruiamo
opinione relazionale persistente del disco così
non è tutto ciò che sei veramente unico
familiarità con esso quando peggiora molto
semplice ha la versione di
il tuo albero delle risorse quando cambi
qualcosa che non registra elementi
okay, prendi semplicemente alcuni suggerimenti per tutti
otto blob o ai tuoi file che abbiamo cambiato
un pilota punta a un nuovo riferimento
che cambia uno di tutti gli strati tutti
gli altri blocchi
okay, l’atomico lo prende così com’è
fondamentalmente nei magazzini dei meccanismi di stoccaggio
è fondamentalmente dati sulla bottiglia d’ acqua
ti dà quella barriera relazionale
roba quindi è un buon esempio per il passato
lavorare al mio rilevatore per cui ho lavorato
quasi un decennio fa JavaScript
programmazione sul front end o su New
York, negli ultimi quattro anni sono stato abbastanza fortunato
lavorare alla presidenziale del 2012
elezioni per ore abbiamo ottenuto 40 milioni
pageviews venti milioni di loro sono accesi
mobile molto dell’app era solo tu
sapere come servire in tempo reale su JSON
più ore servi 18 terabyte di
JSON quindi mi diverto molto
lavoro sul dispositivo mi sento come cercare di
avere una lunga esperienza nel fare
Lo sviluppo dell’interfaccia utente è stato fatto molto bene
un sacco di questo purtroppo alla fine del mio
possesso alla fine sono sofisticato come
bello com’era davvero combinato
visualizzazione sai bene dopo
uno stile grafico alla fine della giornata
sentivo ancora quella programmazione JavaScript
è ancora vero oggi, indipendentemente da tutti
questi quadri che vedi e ancora
Direi zuppa primordiale che siamo ancora
una sorta di nell’età oscura del lato client
correggere un sacco di questo è perché
questo non è ancora pienamente accettato
che la maggior parte della gente scrive web
le applicazioni sono sistemi distribuiti
programmatori la maggior parte delle tecnologie
stai scegliendo nel modo in cui sei
combinarli insieme non vogliono
trattarli è fondamentale
emettere con il testo una credibilità per lo più
diritti di complessità con il ritorno alle persone
prova a mettere questo altro tappeto nel
faccia e così tanto è questo parlare
in realtà dicendo prendiamo questo problema
pannello e iniziare a rimuovere un sacco di
complessità che esiste nella maggior parte degli stack
davvero questo è davvero tutto impilato perché
cambiamenti che arrivano alla semplicità di tutto ciò
il punto è che effettivamente abbracciando
semplicità possiamo costruire sistemi con a
semplicità non intendo qualcosa che sia
andando a rendere necessariamente la tua vita
insegnarti all’inizio che potresti avere
adottare pratiche le tecnologie che
sono estremamente poco familiari o forse crescono
tutto tranne che dall’altra parte di quello
ti garantisco che avrai un più semplice
sistema alla fine penso che sia la fine di
in alto vedrai di cosa sto parlando
riguardo a quella nota che probabilmente c’è
un sacco di un luogo di esperienza nella costruzione
le tue applicazioni di cui parlano
semplicità sai che mi piace molto questo
metafora Ho visto di recente questo fantastico
speciale so della cattedrale
punti che conosco come 100 anni fa cosa
fatto
non una sorta di imbarazzo di parte
il problema era che la dimensione di
il computer era così grande che lo facevano
non so come costruire e non farlo
scrivi la vera base della droga
così enorme la liberazione di documenti dietro
un altro compito conosciuto dalla squadra famosa di Planck
questa parte ma non c’era vita
architetto che sapeva come costruire
una cosa del genere così bella veniamo conclusa
vincendo la competizione e finì
costruendolo e la mia cosa preferita
per quanto mi riguarda, questo è davvero relativo
all’architettura software spesso quando
la gente vede qualcosa di bello e di grande
in questo modo si pensa che deve essere stato
come il motore più complicato il
ingegneria più sofisticata che cosa
inviare mettere in gioco per fare questo lavoro
e non è vero
quindi consiglio vivamente di guardare la stella
comandante e lettura di Brunelleschi
la vera SD è finita perché la cupola è così
grandi non possono usare il tradizionale
metodo di un’infrastruttura in legno a
reggi la cupola come un edificio
dovrebbe costruire l’intera cupola
senza alcun supporto sottostante e questo
è stato un grande enigma piuttosto carino
fortunatamente finì per prendere in comune
strato di mattoni e con ben noto è
solo il più potente delle persone che
costruisci questi piccoli pezzi che usi
la stessa tecnica li chiama i muratori
la tecnica che porta avanti ed è
solo questo tipo di accatastamento dei mattoni
in modo tale che i mattoni sono
sostenendo mentre costruisci mattoni per
azioni che mettono in loro ma se lo fai
è il tradizionale in cui impilati
mattoni proprio come questo sarà strappare Sarà
strappare è usando l’ americano
tecnica
lì hanno deposto quattro milioni di mattoni
nell’impasto si trova ancora oggi
quattro milioni di mattoni sono stati collocati usando un
tecnica fatta per differenza di colore così
è semplice sistemi semplici hanno questo
proprietà ma potrebbe non essere ovvio
realizzazione e potrebbe anche prendere
qualcuno con qualche intuizione profonda ma
spesso il paziente ha la soluzione giusta
ottimismo okay baby so che lo conosci
in basso inserisci un post sul blog di circa 18 mesi
fa circa reagire contro più tradizionale
NBC e ha causato un bel balzo
scrisse un inviato davvero poliziotto uguale vado
in cima c’era una novanta versione di reagire
rendering come cinque minuti così da fare
oggetti penso e il fondo fa il
sala da pranzo e così ciò che è bello
cioè che reattiva a qualcosa che
dice che è molto semplice a causa del molto
approccio semplice di immersione nel batching
approccio che è ben noto
questa tecnica era ben nota a
programmatori di computer grafica e
la spina dorsale sta facendo la cosa bella era
parlando al Dom e finisci
ottenere davvero
accendi il Dom e lento, voglio dire, penso
almeno quattro volte più veloce è anche
più veloce del top perché mi entusiasma
utilizzare strutture dati immutabili per guidare
significativo e quindi è completamente
Frank non intuitivo nello stesso modo in cui a
la campagna comune del muratore potrebbe consentire
a piazzare quattro milioni di mattoni al
inizio sto usando un linguaggio compilato
questo caso di letteratura sto usando un nuovo
no costruiremo più lentamente
quelli e sto usando un ribaltamento che
suona come concettualmente deve essere più lento
piuttosto che prendi abbastanza e basta
solo non è vero queste cose
combinata completamente sconvolti infatti sulla
l’ applicazione vuota a Gandhi questo
include inverti compresi quelli anche
problema quindi lo stato è un po ‘ forum quindi
le grandi idee che mi piacerebbe alla gente
portare via è che parleremo di a
sacco di diverse tecnologie, ma
di recente alcune tecnologie perché io
penso che queste cose siano davvero semplici
proprietà la cosa bella è che il
abrasivo, elastico, in realtà fa la pelle
proprio così in alto, anche se
comunità diverse non sei mai
sentito parlare al suo nucleo che è roba del
la cima del principale che fa la parte superiore
lavoro artigianale semanticamente simile
roba giusta
la semplicità scansiona per diventare progressista
semplicità di formazione
è più opportunità per globale
ottimizzazione pervasiva semplicità
consente più operazioni per tutto il mondo
ottimizzazioni quindi è anche un aspetto
di quel primo grafico di fiamma che è
in realtà l’ottimizzazione globale per
per farti diventare il
backbone applicazione più veloce, ma che avrei dovuto andare
nella vista e manualmente eseguire il dosaggio
logica dovresti correggere manualmente e
micro ottimizzare il tuo codice e per me se
abbracci la semplicità che puoi spesso ottenere
ottimizzazione globale quindi non sei tu
conosci 10 sviluppatori che cercano di trovare tutto
i colli di bottiglia si può solo risolvere il
collo di bottiglia in un unico luogo e il gioco è fatto
vai a casa i primi progetti di domande e strumenti
processi che non portano a globale
ottimizzazione penso che la maggior parte del
gli strumenti per le app client non vengono prestati
stessi verso l’ottimizzazione globale
roba fondamentalmente difettosa e anche te
potrebbe pensare che potresti pensare alle spalle
la tua testa potrebbe essere l’ottimizzazione globale è
che le probabilità con modularità che desideri spesso
per mantenere separate le cose distinte
separazione delle preoccupazioni ma globale
l’ottimizzazione non è sempre in disaccordo
è una raccolta differenziata della modularità
un grande esempio di qualcosa è a
servizio globale alla programmazione
il runtime della lingua su di esso è ciò che
consente ai programmi di essere più modulari
proprio così non è come in una C
programma liberi qualche puntatore e quello
fa esplodere qualcosa che conosci a un miglio di distanza
giusto è che è specificamente globale
ottimizzazione che consente il tuo programma
per essere più modulare va bene quindi parliamo
circa un possibile stack mentalmente per
qualsiasi cosa qualsiasi elemento della pila
di cui ho parlato , puoi sostituirlo
con qualcosa che è meglio per il tuo
squadra o qualcosa che potrebbe essere più facile
perché tu adotti ci sono molte ragioni
perché potrebbe essere vero, parlerò
riguardo allo stack che conosco
e ho intenzione di descrivere le proprietà
che penso siano importanti se non lo fai
voglio adottare questa tecnologia per alcuni
la ragione trova qualcosa di paragonabile lì
sono cose simili là fuori e io
parlerò di cose comparabili
che hanno le stesse proprietà
non sono quelli che penso così
relè reattivo nella parte inferiore in modo tale da reagire
penso sia bello ci sono molto
altro interessante
soluzioni di ribaltamento che vengono fuori che sono
degno di valutazione ma reagire è molto
ben mantenuto è molto popolare di grandi dimensioni
comunità parleremo un po ‘di
relè che è ancora inedito ma
Penso che sia un buon design che uso
Clojurescript I in realtà il piombo
sviluppatore sulla chiusura del clojurescript
la sceneggiatura è fantastica non perché lo intendo
è grande perché mi piace capitare di piacere
Lisp ma il bello della chiusura
lo script è che viene fornito con persistente
strutture dati
sono stati sintonizzati continuamente per
motori JavaScript moderni ora per quasi
quattro anni e così è quello che usciamo
delle strutture dati immutabili della scatola
che sono testati in battaglia
un’altra cosa è il transito così il momento
che decidi che vuoi più ricco
strutture dati rispetto agli oggetti javascript
hai bisogno di un modo per trasportare questa roba
dal server al client
così a cognate eck ricreato qualcosa
chiamato transito che è disponibile in
Java Python Ruby da cui puoi usarlo
Scala puoi usare dallo script di chiusura
chiusura un bel paio di lingue ci sono
versioni della comunità e per Erlang o
cammello ma il problema che stiamo provando
da risolvere è che vogliamo andare
diversi tipi di informazioni rispetto a cosa
Jason fornisce a Jason solo che tu lo faccia
array di stringhe di mappe e numeri che è
è booleano che potresti voler spostare in a
consente la struttura dei dati mutevoli e il transito
lo fai in modo efficiente nel back – end
puoi avere ci sono molte soluzioni
quelli quelli grandi che erano in cima
il giorno che potrebbe essere il relè che è
La cosa di Facebook non ancora pubblicata
ma ricorda che relay è un’idea tanto quanto
è un pezzo specifico di tecnologia
atomic non ti lascerà fare questo tipo di
cose di cui sto parlando sul backend
direttamente contro il database di Netflix
è qualcosa che arriverà
presto così che ho intenzione di parlare
di nome Falkor
taglia il grafico di Jason, va bene così la grande idea
qui ci vogliamo almeno per il mio
prospettiva è che la tua tecnologia
lo stack dovrebbe supportare l’immutabilità a
ogni livello e quindi è decisamente un
enorme attenzione in questo discorso almeno il
benefici scegliendo una pila dove sei
hai immutabilità ad ogni livello e tu sei
stai cercando davvero di pensarci
come si muovono i dati come sono i dati immutabili
andando a spostarsi dall’inizio alla fine
finire per il front end è che sta andando
per consentire un ragionamento più semplice e se tu
se hai un ragionamento più semplice , sono a
lotto
molte volte cosa succede nel
i sistemi che le persone costruiscono oggi è quello
hai centinaia di componenti te
non so come si sono connessi
non so come sono i tuoi grafici degli eventi
connesso e infatti stai lottando
per correggere bug che non sei non sei
pensando a caratteristiche che non sei
pensando a miglioramenti proprio tu
avere così tanti bug da risolvere e il complesso
sistema che hai che non sei mai
andando ad arrivare al punto di avere un
ragionamento più ampio o più profondo sul tuo
sistema e accettando l’immutabilità e
anche abbracciando la reazione più semplice
approccio di non mangiare le sue note
associazione dati a una via non bidirezionale ma dati
vincolante eliminando questi ridicoli
i grafici degli eventi che otterrai molto
di ragionamento potenza all’altro lato
quello e ottenendo più potere di ragionamento
significa che sarai più agile
non stai risolvendo la complessità accidentale
ben dopo parleremo di come effettivamente
questa pila può anche rimuovere inutilmente
coordinamento verso la fine del discorso I
significa che c’è un grosso problema con
Applicazioni front-end che
bisogno di conformarsi ad un progetto di riposo che
richiede un sacco di coordinamento tra
ciò di cui ha bisogno il front-end e cosa
il debito back – end ha bisogno e, infine, se io
pensa se hai una pila che sembra
come questa tutta questa performance
non è così impegnativo come
normalmente sarebbe così lo strato client così
perché non la spina dorsale, quindi se qualcuno di voi potrebbe
utilizzare la spina dorsale
perché non la spina dorsale non risolve la spina dorsale
questo problema o risolvere questo problema che ho
significa che la diapositiva precedente dice probabilmente no
ma c’è una ragione specifica per cui no o
Braci e questi sono tutti bene
tecnologie e niente sono in realtà
dicendo dice che non puoi essere influenzato
è efficace con queste cose giuste
le persone sono efficaci con la spina dorsale
e tizzone e così via, ma il punto
è quanto del tuo budget di complessità
hai speso e hai speso così
molto che non hai intenzione di arrivare al
obiettivo che si vuole raggiungere in modo brace
simile soffre di problemi simili
anche l’angolare fa e dal mio
prospettiva davvero davvero ciò che è sbagliato
con questi sistemi è che non c’è
supporto per qualsiasi cosa tranne che mutabile
strutture dati che puoi solo costruire
un’app backbone in cima a dati mutabili
strutture questo è vero per la brace
questo è vero per angolare e e
in realtà finalmente le persone stanno accettando
il fatto che sia effettivamente un
problema di prestazioni e anche un ragionamento
il problema angolare 2 sta per accadere
avere
supporto di prima classe per dati immutabili
strutture così le cose che sto dicendo
qui ci sono cose che altri quadri
stanno capendo che questo era il design sbagliato
giusto abbiamo cotto in un requisito che noi
devono usare strutture dati immutabili
e questo è ciò che penso nei prossimi 10 anni
sta per morire se il tuo quadro
non supporta e incontra l’abilità è
probabilmente non verrà usato molto
quindi reagire reagire, uscire dalla porta
erano il primo quadro
Framework JavaScript Voglio dire che ci sono a
molte altre proprietà interessanti
su quel sistema ma il più importante
uno era non hanno fatto alcun
ipotesi su ciò che il tuo modello ha guardato
come il tuo modello potrebbe essere immutabile e
il loro rendering funziona bene per me
questa era come una rivelazione
quindi il clojurescript era interessante prima
prima dell’arrivo di reagire ma esso
era davvero più una curiosità che no
beneficio veramente misurabile e quando reagire
è arrivato era perfettamente naturale
combinare immutabile a immune immediato
Abulire strutture dati con reagire e
fu di nuovo grande l’azione di quella fiamma
grafico il grafico della fiamma reattiva che io
ha mostrato in precedenza che è in realtà più veloce
rispetto allo stesso identico programma di reazione
con strutture dati JavaScript mutabili
è più veloce con immutabilità ok
quindi se uno è un enorme da portare indietro
la semplicità è che si conosce un sacco di
la gente pensa che gli algoritmi contino
e penso che per la maggior parte di questo discorso sia così
semplicemente non è vero
i dati dominano molti dei benefici
che stiamo andando a parlare di venire solo
fallire dei dati Rob Pike ha un grande
citare questo è in realtà su C
programmazione dice che i dati dominano se
hai scelto le giuste strutture dati
e ha organizzato bene gli algoritmi
saranno sempre dati evidenti
le strutture non sono al centro degli algoritmi
programmando quasi tutto ciò che sono
parlare è scegliere il giusto
struttura di dati e lo spostamento dei dati intorno
dati semplici intorno a te otterranno un
molto valore per questo, quindi non ho
tempo di scavare nei dati persistenti
strutture di cui ho parlato in loro
passato puoi trovare i miei discorsi su questo come
così come Ritchie ha grandi discorsi
questo Lee Byron da Facebook come lui
in realtà il principale manutentore di
qualcosa chiamato immutabile J s così
Facebook in sé è in realtà il raddoppio
giù sui propri dati immutabili
biblioteca della struttura c’è una bella chiacchierata
da reagire conf che dà su
quanto sia immutabile il j / s funziona è fantastico
okay, allora che cos’è ciò che fa?
ti prende
quindi questo è Amo mostrando questo questo
è quando ho mostrato quasi ogni discorso II
una sorta di detto quando ho rilasciato il mio questo
libreria chiamata ohm che è una versione
che è una specie di legame di chiusura
script per reagire e ho detto che scommetto che puoi
la gestione dello stato annulla banalmente così dentro
qualcosa che normalmente richiederei a
programmatore per passare un sacco di tempo e a
molto pensiero penso che potresti
probabilmente lo farai in cinque decimi
linee sicuramente quattro per fare MBC e in
Infatti ti ho mostrato che potevi farlo in cinque
dieci righe per fare MBC in questo modo
signore Jack Scheidler di Ableton
Live è un programmatore dell’interfaccia utente C ++ mi ha preso
su questa sfida non aveva mai usato
clojurescript ha imparato la sceneggiatura di chiusura
tra due settimane ha detto che costruirò un
editor di canvas una grafica pixel pixel
editore e voglio vedere quanto sia difficile
sarà per avere effettivamente infinito
Annulla Ripristina
così come la riproduzione della mia applicazione
minuti di stato oltre a esportare in un
GIF animate quindi abbiamo trascorso circa un mese
alla fine sei uscito con questo
non è un’applicazione non banale è
circa duemila righe di Clojure
script e poi quante di queste righe
da due mila linee questo è un
app complessa quante di quelle linee erano
sulla gestione dello stato e annullamento
e rifacciamo questa è la fine questo è tutto il
codice questo è tutto il codice per infinito
Annulla infinito ripristina l’ esportazione di gif animate
così come lo scrubbing live del
anteprima ci sono sessanta righe di codice
nient’altro non c’è nient’altro qui
la maggior parte delle funzionalità è due o
tre righe di codice per funzione e
è perché ha appena preso il diritto
struttura dati corretta dati persistenti
la struttura gli ha dato solo quello che voleva
non c’era nessun codice per lui
per scrivere quindi ci sono altri esempi come
questo esce e ancora le persone lo sono
di nuovo se non vuoi usare la chiusura
le persone di sceneggiatura stanno prendendo j / s immutabili
lo stanno combinando con reagire e
stanno arrivando alle stesse conclusioni
okay, quindi di nuovo in quale lingua
ho già detto che seleziono il clojurescript
lì, ma ci sono un sacco di convincente
opzioni in questi giorni è un’altra cosa
questo sta davvero cambiando sul front end
un tempo era JavaScript
solo gioco in città , era proprio così
e questo non è più vero più
dattiloscritto è molto cool up
amare dattiloscritto perché ha grande
integrazione con Visual Studio è un
ottima soluzione Elm è molto interessante
è una specie di tipo avanzato
programmazione funzionale al browser
e un evento davvero interessante per gestire un modello
dardo che è una VM personalizzata ma anche essa
è una grande compilation di JavaScript
anche davvero alla moda Scala ora ha davvero
ottimo compile alla soluzione JavaScript in
Scala j / s loro è ora considerato
produzione pronta da typesafe uno dei
quelli più vecchi è CoffeeScript CoffeeScript
Penso che è stato rilasciato un sacco di un sacco di
alla gente non piaceva ma poi in abbondanza
la gente ha fatto in un certo senso CoffeeScript
convalidato che compila in JavaScript
non è una cattiva idea ciò che è divertente è ora
con il rilascio dello script Xmas 2015
che penso fosse la bozza finale
la specifica era un paio di settimane fa
le persone javascript si stanno compilando per
JavaScript persone giuste vogliono avere
zucchero vogliono la lambda stenografia
vogliono lo zucchero per le classi che vogliono
annotazioni su classi e sulla loro
metodi giusto questo è tutto ciò che
non possono ottenere da JavaScript oggi se
si desidera che la roba perché si vuole
essere in grado di scrivere programmi senza di te
sapere di essere bloccato nelle viscere di come il
vecchia versione di JavaScript sono persone
abbracciare cose come Babele che è
javascript di javascript compilation così
tutti sono stati compilati
JavaScript anche le persone che usano
javascript questo non sarà un pazzo
cosa così la cosa che mi è più familiare
con però è vicino il tuo script e
La chiusura di Google La chiusura di Google è tristemente
non è così famoso al di fuori del
La community di Google Google lo usa per tutti
le loro principali applicazioni per i consumatori
Gmail Google Spreadsheets Google Documenti
tutte queste cose usano la chiusura di Google
libreria così come la chiusura di Google
compilatore in modo da chiudere il tuo script in realtà
sposa il linguaggio di chiusura che compiliamo
il JavaScript ma è progettato per essere
ottimizzato dalla chiusura di Google
interessante sulla chiusura di Google se
stai creando app per i clienti di cui parleremo
a tale proposito in un secondo così uno
cosa che è carina con lo script di chiusura
vale la pena di valutare direi
in realtà ora chiude lo script in modo efficace
sono in testa conosci il settore
principali esperti su come fare un’interfaccia utente efficace
e UX ogni me
dati questo è ciò che tutti fanno all’interno
16 mesi tutti quasi tutti gli script di chiusura
i programmatori usano reagire e si associano
dati immutabili ora con la sua nativa reagiscono
tipo di fantastico perché qualsiasi chiusura
lo sviluppatore di script può fare lo stesso
cose che stanno facendo per il
web e tu puoi indirizzare sia iOS che
Android e va benissimo, quindi cos’è
interessante qui è quello script di chiusura
ha una storia davvero bella che è un
un po ‘diverso da ciò che il
slide precedente ad eccezione di
Scala j / s e dardo in realtà dardo ha un
buona storia, perché si può usare
anche lato server ma script Clojure
questi sono questi tre sono un po ‘
diverso perché nel back-end quando
stai scrivendo il codice del server che scrivi
chiusura e questo è server multi-thread
programmando ottieni tutto il vantaggio di
la JVM quando vai dal cliente si a
single-threaded ma abbiamo una soluzione
lì è vicino il tuo copione e io
pensa che se hai una squadra è molto bello
essere in grado di prendere i tuoi ingegneri e
dicono che si può lavorare sul back-end si può
lavoro sul front end e non lo è
davvero importerà JavaScript tu
può farlo con JavaScript ma il
il problema è che stai adottando
per nessuna buona ragione un singolo threaded
modello sul server che penso sia
personalmente penso sia ridicolo
compilatore di chiusura quindi perché ci piace
chiusura compilatore compilatore di chiusura dà
questa ottimizzazione intero programma è stato
rilasciato penso nel 2009 e lo è ancora
senza pari non c’è niente di veramente come
buono come
le persone stanno provando nel JavaScript
comunità ma la chiusura a Google
la chiusura è in realtà per svilupparsi attivamente
ed è solo vento è solo meglio
completa l’ottimizzazione del programma che
significa che fa l’eliminazione del codice morto così
può prendere l’intero codice base e
qualsiasi cosa anche se anche se includi a
biblioteca e la biblioteca ha 10.000 linee
di JavaScript se nel mio modulo
Io invoco solo una funzione in questo
la chiusura di Google library la analizzerà
e dì quelle altre novemila righe
di codice che sono in quella libreria non lo sono
usato lo cancelleremo così questo è
questo è qualcosa che voglio dire che come
per quanto non conosca JavaScript popolare
concatenare o minificare o chiudere
fa la minificazione la concatenazione
ma fa l’eliminazione di codice morto che
è molto potente, fa anche qualcosa
anche questo non è così noto che è
divisione del codice ottimale quindi lo stato
l’arte lo stato dell’arte nel
Il mondo JavaScript è di scrivere a mano i moduli
delle giuste dimensioni e poi caricarle
mano a mano sai nel modo corretto
nelle applicazioni in esecuzione è
terribile così la chiusura di Google e il 2011 ha detto
nessun modo in cui nessun essere umano dovrebbe essere coinvolto
il calcolo del codice si divide e
così Google chiude in realtà dici che
spazi dei nomi e dove devono stare ed è
ha chiamato questa cosa davvero sorprendente
cross tosse codice modulo motion dove
potresti avere una libreria molto grande e
hai due moduli che dipendono da questo
e ciò che farà la chiusura di Google è questo
dividerà il modulo condiviso e si sposterà
tutti i metodi e tutti gli oggetti
a dove effettivamente appartengono di nuovo
qualcosa che se non stai usando
Chiusura di Google non ce l’hai e
chiudi lo script che gli utenti hanno ottenuto
gratuitamente così questa è un’altra ragione per noi
come lo script di chiusura perché la chiusura
lo script genera codice ottimizzato per
queste ottimizzazioni supporta anche
es2015 commonjs e consumo di AMD e
è davvero bello quindi penso anche che lo sia
davvero importante qualunque cosa
cosa lato client stai selezionando e
stai facendo JavaScript il tuo strumento
probabilmente deve essere in grado di consumare tutto
queste cose è molto più facile queste
giorni con il webpack che potresti avere
sentito parlare di bene quindi questo è quello
pezzo parliamo di spostare i dati così
una volta che hai deciso, lo sappiamo
dobbiamo rendere le cose che abbiamo
scelto una tecnologia lato client
che si tratti di JavaScript o qualcosa del genere
JavaScript compilato quindi sei come
bene dobbiamo ottenere dati dal punto A a
il punto B in realtà non lo sono
sorpreso che ci fossero davvero
non che molte grandi soluzioni in particolare
se vuoi andare dal back – end
direttamente nei dati mutabili che è davvero
l’unica ragione per cui abbiamo creato il transito
il transito quando è stato rilasciato ha avuto molto
di una sorta di flack, eravamo come il perché
un altro formato di dati e eravamo come
esaminare la spate il tipo di
spazio di opzioni non esiste nulla da fare
da una rappresentazione JSON direttamente in
qualcosa che può essere questo è un
struttura dei dati immutabile , così il transito fa
questo è abbastanza freddo sfrutta tant
il transito della codifica supporta sia a
codifica basata su message pack e a
La codifica basata su JSON fornisce più ricchezza
tipi fuori dalla scatola quindi abbiamo pieno
supporto per se vuoi rappresentare
Interi a 64 bit che si desidera rappresentare
date non ce n’è bisogno
coordinamento tra il ragazzo di back-end
e
ragazzo di frontend per quanto riguarda il formato della data giusto
abbiamo capito questo per te che codifichiamo
la data e noi abbiamo trasmesso al
client e il client decodifica la data
nessuno è nella mano destra sai mano
il codice di analisi della data di scadenza ci fa risparmiare molto
di tempo e persone le persone che adottano
lo adoro che non ti capiti proprio in questi
a rischio di errore come faccio a analizzarlo
informazioni è estensibile così come te
conosco il tipo XML di schifo ma tu conosci il
una cosa che abbiamo perso quando abbiamo eliminato XML
era qualcosa che era estensibile così
il transito facilita l’ estensione del possibile
aggiungi tipi personalizzati e le persone fanno tutto questo
il tempo infatti è che voglio dire che c’è
per essere il modo in cui i nostri dati immutabili
il supporto della struttura funziona ed è veloce così
sai che ho passato molto tempo
facendo JavaScript e conosco una cosa o
due sulle prestazioni di JavaScript così
è il caso che in chiusura lo script lì
ce ne sono molti in particolare
in particolare v8 perché v8 è davvero
bene e le loro parti JSON sono davvero buone
possiamo effettivamente decodificare un equivalente
carico utile di transito in dati immutabili
quasi come puoi
json.parse lo stesso insieme logico di dati
ed è perché abbiamo solo il
formato di codifica che usiamo così come
abbiamo un meccanismo di caching che è
molto bene quindi non stai pagando molto
su JSON che è importante e c’è
effettivamente più opportunità di memorizzazione nella cache I
recentemente ha scritto un post sul blog che mostra
che soprattutto per te è dove tu
avrà condiviso parti condivise di
grafico potresti avere informazioni condivise
come il valore può apparire più volte
è molto facile sovrapporre il tuo
meccanismo di caching su quello che noi
già hanno e questo è perché la lettura
l’ordine di lettura e scrittura sull’ordine di attraversamento è
esattamente lo stesso e lo garantiamo
quindi per esempio in come dieci linee di codice
Ho aggiunto il mio caching nella cache degli oggetti
strato mentre immagino di codificare a
punto di geometria e lo strato di cache può
dite bene abbiamo già visto che questo è il
la seconda volta lo hai scritto e lo sarà
vota che basterà scrivere una cache
E poi un transiti propri calci di caching in
e poi lo prendi ridicolmente
cosa breve quindi questo è in realtà ciò che è
succederà dal lato della lettura quando questo
questo viene letto leggerà questo
oggetto per la prima volta
e poi lo mette nella cache il
il prossimo valore leggerà il
cosa identica e di nuovo la prossima volta
quindi se i valori di serializzazione di cui hanno bisogno
da condividere che ancora è estremamente
comune nel caso di transito UI ha un
Davvero una bella storia , perché è così
estensibile e ha di nuovo una sorta di
forti proprietà trasversali bene così
spero che tu veda il beneficio di
qualcosa come il transito se lo sei
adottando questo , andiamo alla meteora
parte che è più radicale è questo tipo
di come criticare, sai come
gente questa è davvero la parte in cui
stiamo davvero criticando il modo in cui le persone
costruisci app in modo che gli occhi siano fondamentalmente
alberi così avendo fatto la programmazione dell’interfaccia utente per
da molto tempo a dover fare i conti
gli endpoint di riposo si presentano davvero
complessità nel codice cliente perché
spesso quando colpisci un punto di riposo tu
devi colpire più di quelli che devi
colpire uno e devi andare a colpire un altro
uno e quello che succede è che spesso il
i casi è che qualunque cosa venga da quello
punto finale di riposo non è nella forma che
ha bisogno di essere effettivamente popolare il mio
applicazione così quasi qualsiasi app che tu
vedi che ce l’hai tu vedi che è in un
modo indisciplinato di colpire molte cose
endpoint e quindi si è soggetti ad errori
Ridefinire la logica per farlo entrare nel giusto
modulo che puoi effettivamente rendere così
questo penso non sia una buona cosa e in
infatti è una cosa così terribile che
non potrebbe nemmeno la mia stessa narrativa
qui sono arrivati ​​sia Facebook che Netflix
alla stessa conclusione quindi reagire comp
all’inizio di quest’anno hanno annunciato
qualcosa chiamato relay e fondamentalmente
quello che riescono a fare ora è il cliente
dice la persona che scrive l’ interfaccia utente reale
queste sono le proprietà di cui ho bisogno
non esiste un punto finale di riposo, nessun back-end
la persona dice cosa ci sarà nel
carico utile che il cliente deve determinare
quello che vogliono e la struttura che
sarà e passeranno a
descrizione ricorsiva di JSON di ciò che essi
bisogno e il server lo fornisce semplicemente
a loro che significa che non c’è rimodellamento
la logica non c’è per i loop c’è
niente di giusto tu chiedi qualcosa
dal server e tutto è pronto
per andare lì non devi cambiare il
struttura dei dati quindi se non lo hai mai fatto
guardato il grafico del reattore QL c’è a
un sacco di discorsi su di esso consiglio vivamente
è se questa cosa in particolare
è il futuro o no
come penso sia irrilevante, penso solo
è un design generale migliore Netflix
è venuto a tutti è venuto a parte
indipendentemente è venuto a loro
conclusione e hanno il loro stack
per fare questo Jafar Husain alla coda ACM
colloquio con la conferenza
la loro cosa si chiamava Falkor e Jason
grafico e avevano un riposante
api si è sbarazzato di esso che utilizzano lo stesso
tecnica in cui fondamentalmente il cliente ottiene
per aggregare dati JSON ricorsivi
struttura che rappresenta ciò che è necessario
lo passano a falcore falcore
fondamentalmente un fan fan in cosa
è un router per ogni chiave in the json
chiamano la struttura dei dati che hanno recuperato
il giusto micro-servizio e poi loro
componi il risultato e restituiscilo a
il cliente lasciando cadere il loro riposo e
adottando Falkor sono fondamentalmente
eliminato il 90% del loro codice di rete
quindi questo è questo è di nuovo tornando
a se ripensi a quello che ho detto oh
abbiamo scelto la giusta struttura dati noi
non devi fare la logica di annullamento / ripetizione se tu
scegli la struttura dati giusta e tu
dai al server la cosa e il cliente
ottiene solo per ottenere ciò di cui hanno bisogno voi
non ti serve tutto questo codice di rete
non ne ha bisogno, scompare perché
hai scelto le idee giuste per il design così grandi
il takeaway qui è che i componenti dell’interfaccia utente
dovrebbe essere in grado di definire ciò di cui hanno bisogno
qualunque cosa tu stia facendo ora è sicuramente
non è la cosa giusta e crea bug
crea complessità usa un ricorsivo
descrizione quindi ce ne sono stati molti
proposte e penso che Netflix e
Facebook è giunto alla conclusione
che non vuoi davvero un qualche tipo di
cosa normalizzata inviata al cliente tu
voglio davvero che il cliente si limiti a chiedere cosa
vogliono ciò di cui hanno bisogno nella forma
quello che volevano e il raggruppamento così è
un’altra cosa che non avevo davvero
È tempo di parlare troppo, ma entrambi
Falkor e relè supportano il batching così
puoi avere un’interfaccia utente arbitrariamente complessa
grafico e quello che succede è quello quando tu
fare la prima richiesta praticamente tutto il
i pezzi di query vengono filtrati fino alla radice
e quindi quindi fondamentalmente la radice del
l’applicazione effettua la richiesta sul tuo
per conto di tali componenti non chiedere più ottenere
per fare le proprie richieste così questo è
il tipo globale di idea di ottimizzazione
ogni componente ha il pezzo di
la query di cui hanno bisogno per comporli
il modo di eseguire il backup si invia un batch a
richiesta su
ciò significa che la tua app si avvia davvero
veloce perché stai ottenendo solo cosa
hai bisogno ed è davvero così semplice
quindi, solo per vedere un esempio concreto
perché non ho mostrato alcuna sintassi per
ciò che questo potrebbe apparire come se fossi solo andando
mostragli un fumetto che non devi usare
l’ atomico ma l’atomico è un bene
un po ‘come sbirciare in quello che sarebbe questo
sembra così atomico immutabile
database relazionale è potente
possibilità di editing che puoi efficientemente
interrogare punti arbitrari nel passato
ha il registro dati delle query di stile che sono
stessi dati che è bello ma io
non voglio che non sia né qui né là
la parte più interessante dell’atomo è
supporto qualcosa chiamato pull pull è un
è una descrizione dei dati ricorsiva , quindi qui
noi immaginiamo di avere un’entità nel
database e voglio solo il nome dell’artista
e l’ anno dell’artista così anche se quello
l’artista ha cento campi che posso
dì solo tirare questo piccolo pezzo e di nuovo
questo è dati questo non è come un sequel
stringa e perché questi dati significa I
puoi comporlo facilmente allo stesso modo
che potrebbe comporre una struttura dati JSON
quindi qui sto chiedendo che ho solo bisogno di questi
elementi e quindi potresti immaginarti
potrebbe inviare questo direttamente al punto finale
fondamentalmente lo idraterà
un JIT in una struttura JSON di qualche tipo
ma può essere ricorsiva ecco io sono
dicendo che voglio voglio abbinare i media
e questo sembra essere un album per questo
album voglio tutte le sue tracce che voglio
ogni singola traccia che quello che quello
quell’album ha e per ogni traccia che voglio
il nome della traccia e per ognuno di essi
di quelle tracce voglio tutti gli artisti
e voglio i loro nomi questo è qualcosa
che tu sia ciò che intendo
il numero uno che qualcuno dovrebbe scrivere
questa domanda è come e poi se io
devi cambiarlo come dovresti andare
indietro e riscrivi quella congiunta qui io
potrebbe esprimere questo nel client questo è
quello che ho detto e non devo scrivere
il ciclo for è questo è molto
query nidificata complessa e questo è intendo
immaginare come questo è letteralmente ogni
App per iPhone o ogni app per Android che tu
hanno ragione questo è quello che presentano e
invece di scrivere tutto questo complicato
logica di rimodellamento della logica di rete I
semplicemente descrivi quello di cui ho bisogno e posso farlo
popola le informazioni come voglio e
cosa c’è di bello in questo perché
sono dati e dati che compongono ognuno di
questi frammenti possono essere forniti da un
diverso componente dell’interfaccia utente, ad esempio
il nome dell’artista che potrebbe essere l’artista
guarda solo la visione dell’artista dice questo
un piccolo pezzo di dati è ciò di cui ho bisogno
sopra di lui c’è la lista degli artisti e quella
la persona fornisce il tipo di mappa
struttura e così via fino in fondo
in pratica puoi dividere la tua domanda in
i componenti ed è davvero bello
e di nuovo quello è definitivamente dentro
il regno di reagire e ritrasmettere così se tu
non ho guardato il grafico del relè QL
discorso che che secondo me è un enorme
rivelazione che rappresenta la tua query
direttamente sui componenti dell’interfaccia utente e
costruendoli di nuovo sulla via di uscita così
semplicità radicale non ho molto
più per dire che mi unisco spero che questo abbia
ti ha aiutato a rivedere alcuni dei tuoi
assunzioni e pregiudizi che conosci davvero
ripensare a qualsiasi elemento del tuo stack
questo crea complessità
Penso che il riposo sia davvero fantastico e
in realtà credo che la gente penserà molto
vedere come adottano cose come questa è
non come se tu fossi completamente tuo
liberarsi di reagire un riposo ma che cosa è
succederà è che penso che tu sia
andando a smantellare la Chiesa del riposo
ci sono molte cose che la gente dice
A proposito di riposo che non è solo vero
non rende le cose più semplici e il
cose che non fanno le cose più semplici I
penso che sia necessario rimuovere ed esaminare
idee non familiari ma a prova di tempo per
riduzione della complessità anche se molto
di queste cose che sto dicendo potrebbe sembrare
come la tecnologia all’avanguardia al giorno Tomic
cos’è l’atomico è l’atomico
immutabile come un dato mutabile vero e proprio
usa lo stesso modello di git git, non è vero?
una cosa abbastanza vecchia ora è una query
la lingua è basata sul registro dati del registro dati
è degli anni ’70 e tu lo sai naturalmente io
chiusura ad anello chiusura chiusure a clip
Lisp e Lisp sono molto vecchi ma molti
di nuovo un sacco di cose di cui sto parlando
circa non sono così radicali o nuovi
sembrano loro sono molto sono
idee ingegneristiche collaudate e collaudate
è tutto ciò che ho avuto
se hai qualche domanda, fallo sentire
libero di chiedere loro
tu

Please follow and like us: