Press "Enter" to skip to content

GOTO 2017 • Avoiding the Nightmare on Elm Street • Thomas Anagrius


[Applausi]
[Musica]
si ciao, sono il mio nome, sono Thomas I’m the
solo ragazzo qui che non è sul palco perché
dei miei meriti ma perché in realtà sono
pagando per questo spero spero che lo farai
resta con me comunque
e che non sto cercando di venderti
qualsiasi cosa sto cercando di dirti
qualcosa di interessante
quindi la mia prima slide qui è la programmazione
dolore e sofferenza e penso che la maggior parte
di voi annuire a quella dichiarazione in
alcuni riguardano almeno e io in realtà
cambiato il mio titolo stava evitando il
Nightmare on Elm Street to Elm oh mio dio
che cazzo abbiamo fatto dovrebbe essere
e dovrebbe essere effettivamente quello che cazzo
stavamo pensando
quando abbiamo deciso di scegliere questo
tecnologia, perché questo è un parlare di
scegliere la tecnologia quando si inizia una nuova
progetto e dovrebbe essere forse non così
molto che cazzo stavamo pensando ma
cosa stavamo effettivamente pensando al
tempo di prendere quella decisione, così è
io lavoro per provare gente e chi io oh
hanno fatto sviluppo web per il
ultimi sette otto anni o giù di lì e io ho
un mi piace molto interessato a funzionale
linguaggi di programmazione e quel tipo di
mi ha attratto dal linguaggio LMS, quindi questo è
non andare a essere si parla di Elm in
in particolare ma sarà una chiacchierata
circa come ho detto scegliendo le tecnologie
e perché abbiamo deciso di scegliere Elm, quindi chi
qui conosce Elm che è più o meno la stessa cosa
numero di persone come utilizzare il Web VR sembra
su così circa lo 0,5% della stanza va bene
perché non importa questo non è un
parlare di Ilham ma Elma ha aggiunto
Lance è che è un funzionale tipizzato
lingua giusta
è basato su ml non è un sigillo o
o qualcosa del genere che sia
convenzionale è proprio come
dattiloscritto e così via è qualcosa che
compila su JavaScript in modo che possa essere eseguito
il browser spera presto anche
webassembly è fatto da zero
ad essere un linguaggio di front-end in modo che
ha caratteristiche che approvvigiona al fare
cose ish di front-end, voglio dire che questo è
forse qualcosa di un po ‘nuovo per a
Sviluppatore JavaScript almeno lì
sono errori di runtime che significa quando
corre corre non si ferma mai lì
non lo fai non ti capita
eccezioni di runtime e dice oh no
un’eccezione di puntatore o qualcosa di simile
ed è molto veloce quindi questo è quello che
sembra che non sembri
JavaScript ed è anche in una certa misura
la gente direbbe che ha una sensazione esoterica
è come se alieno venisse qui
rispetto a quello a cui siamo abituati , ma
solo per preparare il palco come ho detto che sono io
lavoro per una società chiamata hooyo e cosa
facciamo è fare un’aggregazione del registro e
strumento di monitoraggio giusto quindi se si conosce
Splunk o qivana o ya conosciuto o strumenti
ti piace è in quella categoria
giusto ed è uh è una tecnologia
pila di scala akka Kafka e olmo
va bene e siamo stati in giro per circa
un anno quindi è una startup e abbiamo
circa 40.000 linee di olmo e questo è il
la seconda più grande base di codici Elm nel mondo
Mi è stato detto un paio di settimane fa, ehm
solo darti un’idea del genere
di problemi che abbiamo avuto questo è questo
il prodotto è giusto è un posto
dove puoi cercare la stringa di testo e
troverà i log attraverso il tuo
infrastruttura che aveva quella stringa e
puoi quindi fare manipolazioni di stringhe e
grep e arc e tutti i tipi di operazioni
su di esso per trovare qualcosa di interessante
informazioni quando la merda colpisce il ventilatore e
hai dato un’occhiata ai log
questo è quello che facciamo
così puoi vedere che c’è molto
informazioni in streaming proprio questo
questo è in realtà un relativamente piccolo
numero è solo centosettanta
duemila in cui ci troviamo facilmente
centinaia di milioni di eventi che noi
affrontare e ottengono in streaming al
front end quindi dobbiamo essere veramente veloci
e dobbiamo essere in grado di trasformare i dati
mentre scorre e così via, così mette
un sacco di esso ha messo mette un sacco di lavoro su
il front- end quindi abbiamo dovuto trovare uno strumento
ciò corrisponderebbe a quello giusto e lo facciamo
grafici e così via così la reazione iniziale
che le persone hanno quando dico a tutti noi
abbiamo costruito questa cosa in Elm oh sei tu
ragazzi pazzi wow, è fantastico
Al diavolo stavi pensando di scegliere un
nuova tecnologia come questo è come Elm
si sta andando ad avere un sacco di problemi
giusto come si assumono anche le persone
nessuno li conosce come se guardassi questo
stanza abbiamo una stanza piena di sviluppatori
e sai che due persone l’hanno usato così
bene quando si avvia qualsiasi tipo di software
progetto che dovrai fare
decisioni tecnologiche corrette e come si fa
le decisioni tecnologiche bene le considerazioni
quello che avevamo era quello che dicevo di avere
elevati volumi di dati che vogliamo fare un sacco
di trasformazioni per renderlo bello
e così via vogliamo rimanere molto
interattivo
mentre stavamo usando lo strumento ma i dati
in streaming e stiamo facendo
calcoli abbiamo avuto una squadra distribuita
avevamo una certa cultura aziendale
siamo molto geek linguistici quindi doveva
per adattarsi anche a quello e abbiamo
cruscotti come questi queste cose
sedersi sui muri delle aziende tutto il giorno
a lungo come hanno decine di questi
monitor sul muro che mostrano di sapere
ha roba va giù quanti te
sapere che le query sul database sono state eseguite e
questo è su dati completamente dinamici
potrebbe essere qualsiasi cosa quindi non vogliamo questo
per andare in crash non vogliamo un grande rosso o blu
schermo della morte sul muro giusto e
tutto è immobile oh lo sai
abbiamo dovuto
centomila visitatori in passato
settimana abbiamo anche avuto quella settimana scorsa mi chiedo
perché questo è
è solo appeso da solo che non lo fai
voglio che tu voglia che sia aggiornato
costantemente e non andare giù senza
rinfrescando il modo in cui di solito scegli
la tecnologia è che il nuovo è sempre
meglio conosco molte persone che lo faranno
dì che almeno ha ragione il normale
scenario e le aziende che ho
è stato più simile a questo lo sai
Thomas inizia a essere stato scelto come il
lead tecnologico per questo nuovo progetto imminente
che costruiremo giusto oh
è fantastico che userete
Cassandra userò i kubernetes
Userò la ruggine perché è perché
questo è fantastico e reagire a Redux
il progetto riguarda proprio così ovviamente te
devo scegliere il giusto e il meglio
strumento per il lavoro, ma come fai realmente
determinare che cosa significa meglio fare
significa mainstream significa il migliore
performance vuol dire scritta nel web
assemblaggio vuol dire che lo sai
facile da scrivere che c’è un sacco di
documentazione che si adatta alla tua cultura
che sai che è facile eseguire il debug e così via
su cosa vuol dire che è una combinazione
di tutte queste cose giuste deve adattarsi
la tua azienda deve adattarsi al progetto
e tu sai cosa stai cercando
fai ma non importa quale tecnologia sei
andando a prenderti avrai
dolori, hai intenzione di avere dolori
se scegli JavaScript, lo farai
hai problemi se lavori con WebGL
andando a soffrire se lo scrivi e
vedi ma sono solo diversi dolori e
questo fu il primo servito dal Buddha
Siddhartha Gautama mentre era seduto
sotto il suo albero Bodhi che la vita è
la sofferenza è la prima nobile verità
e tu sai che è in ogni faccia
della vita e dal momento che siamo grandi sviluppatori
parte della nostra vita è la programmazione e quindi
per estensione il primo o il modificato
la prima nobile verità è tutto
la programmazione è sofferenza per programmarti
deve soffrire è impossibile da programmare
senza sperimentare un qualche tipo di
la sofferenza nel modo giusto
l’ unica cosa che puoi scegliere è
che tipo di dolore vuoi bene?
non è una scelta molto bella ma è così
tutto quello che abbiamo ogni scelta che fai è
sta per avere trade-off è javascript
dolore a chiunque lo dica diversamente
vendendo qualcosa di giusto che non mi II
sai quando ho fatto questo parlare il primo
volta che ho avuto una lunga lista di fatti su
JavaScript ti servono solo alcuni esempi
destra Penso che Ben già portato in su
cosa ottieni quando aggiungi due array
beh, si ottiene ovviamente la stringa vuota
giusto non un numero non è uguale a non a
numero e sai che non voglio nemmeno
non voglio nemmeno andare lì e
anche il solo fatto che molti
gli sviluppatori in realtà non mi piace
JavaScript a causa di queste cose così
le persone ci saranno solo attriti
far sì che le persone lavorino con esso almeno
nella mia compagnia, ma anche Elm è doloroso
è molto doloroso, credimi, sono stato
occupandosi di esso per l’ anno scorso il
i dolori sono solo diversi
quindi il codice è doloroso in ohm
avere questa sintassi esoterica non mainstream
c’è una curva di apprendimento ripida , è così
compilato per essere in grado di correre dentro
il browser in modo da poter effettivamente vedere il
codice che hai scritto in esecuzione nel
browser che può rendere le cose dolorose
giusto è difficile scrivere prende un
molto tempo per scrivere effettivamente i programmi
ma una volta che sono ricchi corrono davvero
bene quindi c’è che non c’è molto
di strumenti di supporto perché è nuovo e
in realtà questa è la cosa principale per noi
è stato il primo ad adottarlo
è molto doloroso, giusta mancanza di
documentazione e un sacco di cose che
a vapore da quel webassemblaggio che è
anche il dolore giusto e chiunque sia giusto
diverso no in realtà è Ben Smith
vendendo qualcosa così ma quello che tu solo
che devo fare è l’avete ottenuto che hai un
modo in cui devi pensare alla tecnologia
decisioni quando hai un campo verde
come abbiamo visto il problema provare a
prevedere alcune delle cose che sei
andando al problema o alle difficoltà
che incontrerai e troverai un
tecnologia che corrisponde a quella
giusto quindi pensateci come a
strategia aziendale non so che tu sia
tutti gli sviluppatori hanno ragione, ma dovresti farlo
responsabilità per la vostra azienda quando
facendo non solo aggiungere un nuovo quadro ma
pensa che questo avvantaggerebbe davvero
la mia azienda alla lunga pensa quindi
è una strategia a lungo termine ma che cosa
le aziende devono anche da ricordare è che
mantenere gli sviluppatori felici ed entusiasti
sulle tecnologie che funzionano
anche questa è una strategia, forse
in realtà assumendo i migliori talenti sarà
solo loro verranno solo nella porta se
in realtà hai qualcosa di eccitante per
loro a lavorare su così per il nostro problema o
per il nostro prodotto il problema era tutto
quelli che ho elencato prima e proviamo a
abbinarli a ciò che Elm fornirebbe
ha corretto molte trasformazioni di dati
bene è un buon linguaggio funzionale giusto
le trasformazioni dei dati sono un po ‘come
i linguaggi funzionali funzionano molto bene
ci sono alti volumi di elementi di dati
come estremamente veloce molto interattivo
bene è estremamente veloce siamo un
squadra distribuita una cosa sul tipo
le lingue è ciò che offre
documentazione per il diritto allo sviluppatore
quindi quando invece di scrivere molto
prosa si può in realtà solo annotare
con un tipo e il compilatore lo farà
lamentarsi se lo stai usando male e
essere una squadra distribuita non seduta
accanto al ragazzo che si sta lavorando con
c’è molto valore nell’avere tipi
in quanto abbiamo attraversato l’elemento
non l’avrei ottenuto per JavaScript
la cultura aziendale , come ho detto, era la lingua
Nerds quindi è stato un ottimo compromesso per noi
e cruscotti che corrono tutto il giorno
non crash perché non ci sono
runtimes eccezioni quindi il più grande dolore
che abbiamo avuto nell’ultimo anno
sicuramente essere early adopters essere un
early adopter significa che quando incontri un
problema sei la prima persona in
mondo chi incontra questo problema giusto
non ci sarà nessuno che lo sia
scritto su di esso su Stack Overflow
non ci sarà, lo sai
Ho blog su questo devi capire questo
cosa fuori di te e che richiede tempo
e può farti sapere che puoi sederti
con uno stupido piccolo insetto per settimane e
allora spero che ti stancherai
dopo, ma tu sai che penso
di penso di entrare in cose come
questo come investimento e in finanziario
investimento c’è c’è un concetto
chiamato la curva J e questo significa che
quando entri e investi molto presto
in una tecnologia o in un’azienda come a
avvio come qui stai per perdere
soldi per i primi anni sta andando
costarti qualcosa ma quell’iniziale
l’investimento si trasformerà dopo un po ‘di tempo
di solito in investimenti finanziari è
anni per noi speriamo che sia ora che siamo
sopra la parte peggiore ormai un anno
sembra che stia arrivando per noi
ma abbiamo raggiunto il nostro punto basso qui
Ottobre 2016 quelli erano tempi bui noi
questo era quando quando Elm che è un
linguaggio evolutivo abbiamo capito bene
deciso di tagliare circa la metà delle loro caratteristiche
e aggiungine alcuni nuovi e sfortunatamente
quella metà che hanno tagliato via sono stati i
quelli che stavamo usando così abbiamo ottenuto un
figura abbiamo dovuto capire quale sia il
l’inferno da fare e quelli erano alcuni difficili
alcuni mesi difficili ma siamo fuori dal
tar pit ora e siamo felici e siamo
entusiasta della nostra scelta sai che otteniamo
un sacco di buona pubblicità solo di essere in grado
parlare di essere il secondo più grande
Elb codebase nel mondo e un sacco di
le persone sono entusiaste del nostro progetto e
il nostro prodotto solo perché è scritto
e quindi ecco che così uno dei
cose interessanti se abbiamo tempo quanto
tempo hai lasciato tutti e 15 minuti
bene, quindi ne userò solo circa cinque
così puoi andare a casa e dormire uno dei
cose interessanti che si ottiene a destra ci sono
sempre pro e contro uno dei professionisti
che ottieni con Elm è che ottieni un
viaggio nel tempo
minacciare il debugger che viaggia nel tempo
e almeno lo pensavamo
questo è quello uno dei punti di forza
che diciamo che tipo di ah abbiamo bisogno di questo
perché lo vogliamo questo è il motivo per cui abbiamo scelto
loro e circa due settimane di
progetto dice sì ma non quando tu
chiama JavaScript e abbiamo dovuto perché
sai che non tutto è implementato
in Olmo eppure dobbiamo fare un
progetto del mondo reale, quindi non puoi usarlo
oggi non fa una buona dimostrazione
Naturalmente l’hanno implementato da allora
funziona oggi quindi vediamo qui
codifica dal vivo per la vittoria vediamo se è così
funziona così sto iniziando la nostra applicazione in
modalità di debug e questo significa in realtà
esso si può vedere oh no che in realtà
una pessima posizione per il debugger
essere lassù puoi vedere qui che tu
prendi questo piccolo questo piccolo widget
all’interno dell’applicazione e se provo a
usa la nostra applicazione un po ‘e ottieni
alcuni risultati e clicca qui e andare in
campi e vedere quali sono i dati che abbiamo
disponibile per questo evento e poi andare
oltre alle impostazioni e puoi vederlo
è il conto alla rovescia quaggiù
quindi se provo ad aprirmi dovrei davvero
guarda il mio schermo piuttosto che questo
schermo che è molto più facile quindi se ci provo
per aprire questa finestra del debug in realtà
mi mostra esattamente cosa è successo
attraverso il tempo che ho usato il mio
applicazione ogni singolo stato
transizione ogni singolo clic ogni
è disponibile un singolo aggiornamento dei dati
e questo è qualcosa chiamato evento
sourcing giusto significa che tratti
ogni evento ogni messaggio come qualcosa
che deve essere messo in coda e
poi elaborati dall’applicazione e
questo mi permette di fare cose come questa così
puoi vedere mentre sto viaggiando
tempo
l’interfaccia utente si aggiorna di conseguenza e io posso
fermarsi in un dato momento e guardare
a va bene quali dati erano disponibili cosa
ha fatto quello che ha fatto il mio stato dell’applicazione
guarda come e così via che è estremamente
potente immagina una situazione in cui tu
avere un cliente per il tuo nuovo prodotto e
c’è come ah si conosce tutti gli altri
Mercoledì quando vado nelle impostazioni
pagina e fai clic su questo particolare pulsante
non succede niente, piuttosto che scrivere
quella descrizione possono solo dire oh
debug e quando hai finito di passare attraverso
questo processo fai clic su Esporta così
quando poi aggiorno e loro lo hanno inviato
file per noi quindi dico import e
spero di poter trovare il file giusto
qui va bene e siamo tornati
e posso vedere esattamente quello che hanno fatto
esattamente i problemi che avevano io ero
molto eccitato per la prima volta ho visto che
quindi non l’ho fatto, quindi voglio dire che c’è
c’è sempre qualcosa di pericoloso con il freddo
caratteristiche pure um una delle cose
che si ottiene in un nome L linguaggio è
che ottieni un tipo molto potente
inferenza sul codice e mi sono seduto per
sai di essere uno sviluppatore front-end e
avendo sviluppato per molti anni il
modo che di solito codifico o esperimento
con la mia applicazione è proprio come il
VI ragazzi hanno appena detto che vorrei scrivere
qualcosa e poi andrò in
il browser e l’avrei controllato a
lavoro e poi mi piacerebbe provare qualcosa di diverso
ha funzionato ora e come funziona?
e sperimentare con esso e così via ma
da quando ho lavorato a Elm, l’ho fatto
Ho avuto giorni in cui mi sono seduto per sei ore
e nemmeno iniziare il mio browser
lavorando su un’app Web e qualcuno lo farebbe
tu dici Oh, potresti oh, sai, potrebbe?
vieni e vedi questa fantastica funzionalità
che ho sviluppato e detto e poi ho
prova a mostrarli nel browser e cosa
OH Non ho avviato il server oggi
lo sai che non lo faccio
pensare uno sviluppatore di front-end vuoi
sapere normalmente funziona in questo modo ma così tu
fidati del tuo compilatore e forse a
un po ‘troppo questo è tutto ciò che ho per oggi
Ho qualche domanda solo urlare o urlare
non urlare nel microfono mio
la domanda è che ho sentito cose buone
dell’olmo e di persone molto importanti
in comunità ma va bene, ma vediamo
un sacco di innovazione attorno a es pure
e se qualcuno ha bisogno di intervenire in dodici
o fondamentalmente non particolarmente
adilyn ma programmazione funzionale di per sé
nel contesto di JavaScript e front-end
quanto buoni investimenti consideri?
album intendo perché stai dicendo Elm
è in forma bene a causa di quelle bontà
e lungo la linea se guardiamo dicono pochi
anni javascript sta per ottenere di più
probabilmente quella bontà nativamente bene no
JavaScript non sarà mai in grado di fare molti
delle cose che puoi fare gnome
semplicemente perché è una lingua diversa
e ci sono diverse assicurazioni e
e così via intendo la maggior parte dei punti di forza
come non avere eccezioni di runtime tu
non potrebbe mai avere in JavaScript ma sicuro
Intendo gli aspetti funzionali e così via
si innestano su JavaScript ma
tu sei un molto ampio e
lingua principale, se vuoi
qualcosa di più specializzato per a
caso d’uso particolare, allora potresti
guarda qualcosa di simile, intendo te
non devi basare il tuo intero prodotto
su Elm, a destra, puoi solo fare
una pagina o anche io lo so che Elm
Lang calma tutto l’ Olmo che hanno
come il widget di accesso nell’angolo
quindi puoi semplicemente puoi fare un po ‘
cosa e prova a vedere se questo funziona
il tuo applicatore o per la tua azienda
giusto ma c’è un apprendimento ripido
curva sicuramente associata ad esso
il mio contesto era moralmente parziale
toccando su CoffeeScript anche per
esempio mm-hmm molti lo considerano forse
solo nelle cose testuali è quello che è
così javascript ottiene nativamente quelli
bontà e dire che CoffeeScript è una specie di
obsoleto quindi intendo, sì, la cosa è
quello che puoi puoi dire di tutto
lingua giusta qualsiasi Turing completo
linguaggio in cui puoi fare qualsiasi cosa in te
sapere perché non provare a scegliere qualcosa che
è più appropriato per l’attività in corso
e ovviamente non conosco la tua compagnia
ma se hai una certa categoria di
problemi se forse una lingua è
più adatto per quella categoria al
fondo in fondo ciao
il bello sembra essere interessante ma io
può vedere come la maggior parte dei più recenti
quadri che vengono da Facebook per
esempio stanno risolvendo gli stessi problemi se
avete voi tre documenti per esempio voi
ottenere il debugger che viaggia nel tempo o
stato di rollback oh sì, intendo che è questo
non è qualcosa di unico sì, intendo il
i concetti che hai in redux e
e reagire provengono da Elm, intendo il
concetti da cui sono stati ispirati
Elm ma voglio dire che non è qualcosa di unico
ma ma ho scritto in un JavaScript
vuol dire che puoi sbagliare
va tutto bene e poi se lo fai se tu
fare trasformazioni di stato in reagire correttamente
quando imposti qualcosa su un componente
piuttosto che farlo attraverso riduttori
allora non hai che non ne hai
assicurazioni bene ora hai un
Flusso di Facebook, se probabilmente lo hai
controllato
si ti permette di
in pratica usa il tuo a6 esistente
codice compatibile e annotarli con
tipi sì, così fa tipo di inferenza
il che significa che non hai intenzione di ottenere o
avere meno probabilità di imbattersi in
eccezioni di runtime ci yeah ma tu
non ho ancora niente da fare come vedresti
il futuro dell’olmo bene, penso che tu lo sappia
il futuro dell’olmo io non ci sto provando
convincerti ragazzi a usare l’elemento tutto ciò che sono
cercando di convincerti a farti sapere
buone decisioni quando si inizia nuovo
progetti e se sai usare
dattiloscritto è la cosa giusta allora vai
per quello se lo sai penso che il
paesaggio nei prossimi anni lo farà
cambia molto a causa del lavoro di Ben per
esempio che avremo molto
di tutta una serie di lingue diverse
in esecuzione sulla piattaforma web così noi
non dovrei scavare troppo in profondità con
JavaScript intendo javascript no
andando ad andare via alcuni dicono che è un male
Qualcuno dice che è una buona cosa, giusto
ma ma non andrà via ma
comunque penso che dovresti prendere in considerazione
guardare altre alternative come pure
giusto è tutto quello che è il
la gestione dello stato è integrata con il
linguaggio se sì come o è un separato
biblioteca o c’è una struttura in giro
che dovresti probabilmente implementare a
una particolare interfaccia o così è il
gestione dello stato una parte della lingua
beh si e no intendo il linguaggio e
è il modo in cui viene usata la lingua
tipo di opere insieme per formare quello
non c’è un non c’è non c’è
pacchetto speciale o un quadro o
qualsiasi cosa tu abbia bisogno di aggiungere è come
utilizzando Elm è davvero Barebone solito
c’è non c’è un sacco di cose che
deve essere aggiunto hmm abbiamo una finale
domanda qui e riguardo al Dom
aggiornamenti perché credo che se lo hai detto
è stato ispirato da nessun albero di reazione era
ispirato da L così ti piace
dal momento che hai lo svedese giusto scusa, si
ok, ma se ne hai così tanti, immagino
aggiornamenti stupidi perché i dati cambiano
e poi vuoi avere tutto
super performante come si esegue Dom
manipolazioni basate su
così come si fa pro che è un duro
domanda quindi come si esegue Dom
manipolazioni basate sullo stato bene solo
come reagire elm produce un’ombra Dom
che si confronta con il precedente
giusto quindi è lo stesso tipo di concetto
lì possono fare molte scorciatoie
perché ed è per questo che Elm è così così
veloce è come un fattore cinque rispetto a
reagire o almeno l’ultima volta che ho controllato
lo sai che è stata una settimana fa così tanto
roba non può accadere da allora in poi
JavaScript destra si sa, ma, ma, ma
cosa possono fare da quando è
un’altra lingua che possono fare a
molte ipotesi che non puoi fare
e reagire a cose che sono cambiate
perché si può controllare molto di più
strettamente così saltano molte cose
reagire anche se vorrebbe solo
non può perché è in esecuzione in
JavaScript e questo è il mio punto
giusto che lì solo per il
linguaggio non importa quante caratteristiche e
così su quello che aggiungi non puoi mai ottenere
fuori da questo hmm ok grazie
[Applausi]

Please follow and like us: