Press "Enter" to skip to content

GOTO 2016 • Building an App Using JS/TypeScript, Node, Electron & 100 OSS Components • Erich Gamma


[Musica]
Buongiorno
quindi è vero che lavoro su strumenti per molti
molti anni
giusto così Eclipse e ora con il tuo codice
e devo dire che a volte ne ho avuto un po ‘
depressioni durante lo sviluppo di strumenti
perché preferirei essere un figo pieno
stack lo sviluppatore web ma continuo a lavorare
strumenti, ma io in questo discorso mi piacerebbe
mostrare il motivo per cui io sono ancora entusiasta
strumenti e qual è stato il viaggio alle spalle
questo codice di Visual Studio quindi il mio obiettivo di
oggi è non convincerti che tu
dovrebbe trovare i suoi modelli che tu
vedere un’unità il mio obiettivo di oggi è che tu
usa dal codice studio e scrivi un
estensione per una macinatura così questa è la mia
piano malvagio nascosto quindi cominciamo
così come hai menzionato, ho cambiato lavoro
cinque anni fa ero un illustre
ingegnere presso IBM poi ho detto loro che andavo a
Microsoft poi è diventato estinto
il mio ingegnere presso la IBM aveva quattro mesi
rompere durante questi quattro mesi è stato un
uno dei più grandi momenti della mia vita
perché ho avuto il tempo di imparare
Tecnologia web JavaScript tutto questo
e pensavo di saperlo tutto ma ero così
felice di avere quattro mesi per impararlo
giusto impara JavaScript per programmare davvero
impara le strutture e così via
ottimo quindi ho finalmente iniziato
Microsoft e poi ho avuto il mio lavoro
descrizione nella mail 2011 ed è stato molto
semplice one-liner right e vision new
i paradigmi erano sullo strumento di sviluppo
quello avrà tanto successo quanto le idee
essere per il desktop facile, quindi noi
iniziato come una piccola squadra a Zurigo giusto
quindi ho una specie di squadra di 10
sviluppatori lì ti sei davvero mescolato
Millennials senior old boys è davvero
bello quindi la sfida per noi era come come
facciamo lo facciamo bene come possiamo riuscire a
che la grande Microsoft con questo
ambiziosa visione ambiziosa e ciò che noi
ha detto che vuoi farlo come a
start-up che significa se costruiamo come
un prodotto
ogni anno vogliamo spedire qualcosa
okay e questo è fondamentalmente quello che abbiamo fatto
abbiamo iniziato a pensare a cosa
vuoi fare nel browser che codifichiamo
ovviamente sai che vuoi guardare il tuo
il codice sorgente nel browser
vuoi guardare la cronologia del tuo codice
vuoi confrontare i ladri e così via
questa è una delle prime collaborazioni che abbiamo
qualsiasi diritto in Microsoft
viene chiamata la squadra del prodotto virginale
partnership che sceglie di lavorare
insieme avete fiducia l’uno nell’altro così
questa era una specie di Eros per l’online
dove abbiamo la colorazione della sintassi
questa cosa tutto il calcolo del browser
proprio allora prima che lo fosse davvero
forse anche il 2012 abbiamo iniziato a lavorare con
il team dattiloscritto e questo nel nostro voi
si vuole coprire nel browser è
i parchi giochi rappresentano un ottimo scenario per
lo sviluppo online che vuoi
sperimentare con la lingua senza
dover installare qualsiasi cosa e il compito
un parco giochi era veramente grande per noi
scopri cosa puoi fare in un browser
quando viene visualizzato non solo il codice ma
anche diventando intelligente intelligente
supporto per lavorare sul codice come
intelligenza giusta, quindi questo è un po ‘
la prima volta ci siamo davvero addentrati
implementato intelligenza che significa che tu
sapere che il codice viene analizzato nel
browser si crea un AST nel
browser e si può anche eseguire il codice in
il browser c’è un grande trampolino di lancio
per noi, perché abbiamo imparato molto su
come mantenere e modificare un reattivo anche
abbiamo bisogno di roba intelligente, e il
lezione imparata qui non abbiamo mai eseguito
qualsiasi cosa nel thread dell’interfaccia utente a quel punto
abbiamo usato se Chris scrivesse pesantemente
ogni volta che qualcosa va nell’interfaccia utente noi
spingerlo che è di lunga durata, lo spingiamo
ad un lavoratore web così che era una grande lezione
da qui così avanti un’etichetta sul nostro modo di
la startup non era un deliverer ma noi semplicemente
abbiamo detto che dobbiamo alimentare il cibo per cani
altrimenti non saremo in grado di incarnarlo
così fuori quello che abbiamo iniziato ad essere utilizzati erano
editor che abbiamo costruito per sviluppare il nostro
strumenti di destra questo è stato circa sei mesi
nel progetto che è stata una grande cosa
e un’esperienza divertente incredibile proprio una volta
inizi a usare te stesso
le tue stesse rughe lo trovi anche tu
limitazioni quanto è divertente
ti ha minacciato caratteristica che è possibile utilizzare
un’ora più tardi a destra questo è il
funzione hai avuto cinque anni proprio noi
tipo di potrebbe davvero usare le nostre cose e
è per questo che sono così appassionato di
strumenti perché puoi divertirti come te
sviluppare bene perché può usare la tua roba
continuamente così è stata la prossima spedizione
con onedrive è lo scenario uno
adotta solo il codice quando ce l’hai
replicato online da qualche parte proprio così tu
avere la modifica della colorazione della sintassi e così via
non un sacco di servizi linguistici profondi
un altro prodotto interessante era che noi
coinvolto in peggio della f12
strumenti per sviluppatori sei un po ‘
spaventato per quello
perché questo non era il tipico
scenario dello strumento di sviluppo online del browser
si trattava davvero di vedere la fonte
codice negli strumenti di sviluppo
giusto e ciò che ci ha spaventato è stato
avevano un impianto in C e C ++
il che significa che la nostra tecnologia web è stata
ha confrontato le prestazioni con il nativo
codice che spaventa un po ‘e anche
quello che è Curtis hanno avuto molto interessante
scenari a destra con codice miniato e
codice javascript minificato ha un po ‘brutale
caratteristiche per l’editor di testo a destra
perché hanno una linea molto lunga e
molte delle ottimizzazioni che puoi fare
con la virtualizzazione quando hai un
file di grandi dimensioni di testo non si applicano quando il
le linee sono molto lunghe proprio perché tu
non può virtualizzare orizzontalmente così nel
fine è stata una grande esperienza per noi
che direi imposta l’inizio
Punto di partenza per concentrandosi sul proprio rendimento
notiamo qualsiasi cosa facciamo con il nostro editore
se funziona con la tecnologia web deve farlo
essere persone veloci non scuse che usano il web
tecnologia giusta non avrei alcuna passione
a proposito di questo no
nel 2013 la prossima cosa che abbiamo spedito
era al di là di un editor era uno strumento che
autorizzato a modificare siti Web online in a
browser che era nei tuoi siti web
chiamiamo questo Visual Studio online Monaco
la bella lezione da qui è che otteniamo
utenti da diverse piattaforme come da
Mac o Linux, vengono e usano il
strumento e hanno iniziato la codifica in esso
è stata una grande lezione per noi, ma quello che lui
anche visto come se volessi fare duro
lo sviluppo del codice ha anche il browser
le sue rughe a destra hanno più latenza e
quando ha avuto la scelta tra
sviluppando in esecuzione i due a livello locale e
correndo nel browser siamo andati spesso
di nuovo a correre a livello locale, quindi questo era
tipo di lì per quattro anni che noi
cresciuto sempre in modo startup
abbiamo sempre consegnato ogni anno e
quindi ciò che è interessante è Microsoft
ha iniziato il cambiamento e questo è stato dritto se
da quando sono con Maxim da cinque anni e
è stato davvero bello vedere tutto il
cambiamenti che avvengono proprio al cambiamento
successo da correre su Windows solo eseguire
dappertutto
il cambiamento totale quindi era l’altra cosa
il riconoscimento che non tutti vogliono
utilizzare correttamente Visual Studio se lo si desidera
usare un buon linguaggio come C sharp e
librerie o framework come asp net
allora non puoi presumere che tutti
vuole usare Visual Studio così
la transizione è stata solo concentrandosi su
studio visivo incentrato su come abilitare
diavolo opere per utilizzare lo strumento che a loro piace
vogliono scrivere su piattaforme diverse
poi il terzo cambiamento è stato dal muoversi
lontano dal semplice spostamento di un compilatore
il compilatore nella libreria e l’esposizione
la propria API che abilita questo nel tuo
incarico per Ike per cui vuoi correre
Ad esempio un forte un’altra piattaforma in
un altro strumento e questa API aperta è
abilitato che all’ultimo grande passo a
Microsoft è stata una transizione da completamente
diritto proprietario ogni volta che controlli
si ottiene un po ‘di pelle con l’open source
semplicemente controllato la transizione a
abbracciando davvero pienamente l’ open source no
solo contribuendo ad esso, ma anche
consumarlo bene e questo è stato grandioso
cambiamenti che ci hanno aiutato
e la cosa bella è se guardi
questo è un esempio di tutto questo
transizione destra è una rete SP
quadro e vedi un po ‘ il tutto
stack è open source a destra e
inoltre è cross-platform, quindi questo lascia
una sfida interessante e cioè
come supportate gli strumenti per questo
nuova piattaforma giusta e questo è esattamente
dove abbiamo deciso di fare il perno, lo eravamo
su una traiettoria per lavorare su a
IDE basato su browser, quindi ora cosa ho fatto
decidere a questo punto dato tutto questo
cambiamenti e la necessità di cross-platform
editor di strumenti abbiamo deciso di ruotare da a
annuncio basato su browser su un ID desktop che utilizza
ancora la stessa tecnologia va bene questo era
una cosa importante e anche la cosa bella
che questo è stato riconosciuto giusto se tu
ha usato le notizie HEC come punto di riferimento per open
Riconoscimento dell’origine allora lo vedi
Mac hanno avuto molto popolare la sua
annuncio sul singolo open source
net e open source in Visual Studio
codice open source nel compilatore c diesis
e interessante tutto questo apre il nostro
l’annuncio è stato classificato più in alto di tutti
l’amministratore delegato cambia proprio tutto l’amministratore delegato tale
e Adele diventa CEO Steve Ballmer a
andare in pensione che mostra il tipo di interesse
nella trasformazione di Microsoft e Terrence
è attualmente in corso quindi io
accennato che ora questo era il tipo di
libro che leggiamo al momento e quello
ci ha ispirato così la domanda era gente
per perseverare , cerchiamo di investire di più
e fidati dell’IDE basata sul web o siamo noi
disposto a fare un cambiamento e deciso a
fare un cambiamento giusto e il cambiamento è stato
osiamo vogliamo sviluppare uno strumento che
gira sul desktop è multipiattaforma
quale tecnologia web ci dà ed è
davvero concentrandosi su ciò che chiamiamo questo
anello interno destro anello interno è ciò che voi
fare come uno sviluppatore giorno dopo giorno giusto
si modifica compilare il debug test
controlli le modifiche che erano a
concentrati e tu non vuoi davvero concentrarti
su questo così in un modo puoi dire che abbiamo preso
le parti principali di un ID che lascia tutto
il bagaglio dietro di noi concentrandosi sul
codifica hardcore quello che fa 7 per 24 quando
ti sviluppi come quando lavori come
sviluppatore e ormai è tutto aperto
fonte quindi è una specie di decisione che abbiamo avuto
da una parte abbiamo avuto gli ID come
eclissi d’ altra parte che hai
editori come una sublime parentesi atomica e
quello che abbiamo detto abbiamo cercato di trovare un dolce
posto tra queste due aree proprio io
non ho dimenticato la freschezza di
eclissi ciò che ottieni in intelligenza e
il refactoring ci piace ma non l’abbiamo fatto
anche non dimenticato quanto tempo ci vuole
inizia queste cose su come quanto quanto
in testa devi iniziare qualcosa di nuovo
non puoi semplicemente aprire una cartella tu
avere un file di progetto o spazio di lavoro
e così via e quello è stato il bello
i redattori sono gli editori di destra
velocemente iniziano la tastiera veloce
centrato giusto perché era un grande
lezione Non ho mai lasciato la mia squadra dove siamo noi
hanno davvero questi sviluppatori millenari
sono cresciuti con il web loro
cresciuto è sublime e tu sei stupito
quanto velocemente hanno ragione perché loro
conoscere la tastiera è anche solo editori
lavora su file e cartelle in basso sopra di te
apri la cartella e ridi e
inoltre supportano molte lingue giuste
non ha fatto nulla di così ambizioso come un IDE
dice bene senza intelligenza
non dovresti nemmeno venire da noi un editore
ti danno la colorazione forse per molti
lingue per tutto il per il
lunga coda di lingue usando il telefono per
sviluppo web ma forse non vanno
sempre così in profondità forse se ne vanno
solo profondo per alcune lingue che era
una lezione interessante interessante e
Sì, mia moglie sta chiamando lei vuole
prendi una macchina e Timon non è lì
mi dispiace per quello, quindi sono un po ‘io
devo rimuovere il telefono lo farà
distrarmi così dall’altra Harriet IDE
hanno capito il codice che è
una cosa interessante che puoi andare
definizione trovi riferimenti che puoi
debug puoi costruire ma anche fare molto
più diritto di integrare strumenti di modellazione
per integrare i designer in qualsiasi modo
provare ha avuto questa visione tutto
eseguire nella stessa shell quali editor
non ho ragione se la Modifica no
sai cosa devi andare al comando
linea e questo è esattamente quello che abbiamo detto
quello che vuoi fare vogliamo trovare il
meglio dall’editor leggero veloce
Tastiera centrato ma si vuole non
dimenticare la cosa più cool che abbiamo avuto in
Eclipse o in Visual Studio come quando
arriva alla comprensione del codice o al debugging
questi sono i due due punti giusto
ha cercato di trovare un’alternativa sul web
sviluppo la sfida è a
strumento integrato verticalmente che deve
approccio per ogni quadro o pacchetto
strumento di creazione del gestore che si tenta di integrare
è molto difficile stare al passo con il
tecnologia proprio uno sviluppatore web loro
trattare con i gestori di pacchetti che trattano
con i corridori compito come gulp grunt
si occupano di framework bundlers e
così via ed è molto chiaro se si tenta di
integrare verticalmente tutto ciò che sarà
sempre in ritardo e anche il diavolo
obiettivo opposto non sono interessati
in tutto integrato vogliono
avere la libertà di scelta quando si tratta di
flussi di lavoro quindi mi piace mostrarti dove siamo
sono a con quello e voglio rapidamente
ti mostro in qualche modo quindi voglio dire che è um
com’è facile, per esempio, fare
sviluppo c-sharp su un Mac incluso
eseguendo il debug di tutto questo stick del loop interno
giusto quindi andiamo a uno spettacolo e io cosa
è
andiamo mi dispiace ho pensato che hanno dimenticato il
linea di comando ma io ho qui così ho solo
per aprire sulla cartella destra che è lui
ha avuto un corretto è ciò che amiamo noi solo
apri una cartella e in questo caso vedi
l’ avvio è tutta la tecnologia web
in questo caso è una cartella che
generato un programma c-sharp che ha
alcune descrizioni si avvicinano a un file JSON
che capiamo bene, quindi wireless
esce alla rete facciamolo
va bene
Sarò intelligente per ricordarlo e lo farò
collegalo
beh, comunque , mostriamolo un po ‘
programmazione quindi l’idea è ora che facciamo
ti diamo file di testo corretti
file ma lo rendiamo intelligente per modificarli
quindi qui facciamo del materiale qui e
facciamoci un po ‘di spazio e così
giusto così è C sharp su un Mac che vedi
così ottengo l’intelligenza
i parametri suggeriscono quindi facciamo qualcosa
più interessante piace fare un po ‘
diritto di refactoring estraiamo questo
cosa in un nuovo metodo, rinominiamo il
metodo
e cerchi un elfo ha cose simili
cose divertenti che non hai avuto nella
passato come noi chiamiamo questo Colin sono loro
totalmente sempre dirvi quante
riferimenti che hai puoi rapidamente
navigare fino a che è dinamicamente
aggiornato proprio quando cambio il nome che ottengo
scarabocchi ottengo una lampadina che posso aggiustare
così gentile della funzionalità te
aspettati dal codice intelligente giusto così tu
voglio essere produttivi ma non volevamo
per finire così diciamo anche nel
editore ti fai errori che voglio
esegui il debug in modo da aggiungere anche un debug
supporto in modo facciamolo
Ho configurato un debug di configurazione di avvio
la cosa viene compilata e se il
le divinità demo sono con me sì, mi credevo
disabilitato che va bene
oh non ho detto proprio il punto dispiaciuto
non mi piace troppo questo momento va bene
è già successo in fondo siamo noi
Supporta il debugging , non voglio se
Non ricorderei il comando di
lo scaffold da zero la mia vita sarebbe
sono stato più facile
ma partiamo da quello che vedi
fondamentalmente questa è l’ idea giusta per te
non sono un editor ma l’editor ha molto
di intelligenza e l’editor aiuta davvero
tu con quello che fai 7 per 24 come a
programmatore quindi diamo un’occhiata un po ‘
cosa c’è dietro giusto così come facciamo?
quello e tu hai visto in basso a sinistra noi
avere questa piccola cosa di fiamma e questo è
questa è l’ icona di Omni a destra
e Omni Sharp è un progetto che ha ottenuto
iniziato a consentire questo tipo di
scenari consente di utilizzare C sharp
sviluppo con qualsiasi editor che si desidera e
il trucco è cosa C fa Omni shop
muove il cervello della lingua in
un processo server separato che è il
solo server affilato che puoi connettere
da diversi editori e questo
ti permette quindi se ti piace il sublime
puoi usare lo sviluppo C sharp da
sublime se ti piace nelle immagini – tu
possiamo ancora fare ciò che non prendiamo
via la visuale dallo studio visivo se
ti piace, ma questo è un buon esempio
per come l’apertura e le scelte te
vuoi dare gli sviluppatori proprio a te
voglio dare agli sviluppatori quello che possono
usa lo strumento che vogliono sulla piattaforma
vogliono così solo ora è acuto
guarda più da vicino cosa c’è dentro Visual
Studio è davvero open source in azione
giusto se guardi quello che hai
al suo interno si trovano tutti i componenti open source
alcuni di essi sono implementati da
Microsoft, ma anche noi siamo sul
spalle di giganti proprio così il tutto
shell che ci permette di riutilizzare il web
la tecnologia sul desktop è l’elettrone
l’elettrone giusto è una fonte aperta
componente da github che è ora a
versione 1 con una comunità molto attiva
l’elettrone usa il cromo come il
motore di rendering e utilizza il nodo
API per darti accesso alla piattaforma
risorse che JavaScript non fornisce
accedi al file system e ai processi
e l’elettrone usa l’API del nodo per dare
tu che quella nota non solo dà un bello
Stile classico API per file system e
processi per i quali apre anche la porta
usando il diritto dell’ecosistema dei nodi ricchi
che volevamo anche che fosse il nodo elettronico
tipo di fondamento l’intero codice
base che è oggi 350.000 linee di
codice è realizzare a macchina siamo
cambia che parlerò un po ‘
sull’evoluzione e l’ ultimo
componente è l’editore di Monaco che è
è stato sviluppato dalla mia squadra e anche da Valona
diventa open source, quindi l’elettrone è web
tecnologia HTML CSS JavaScript è aperto
fonte ed è anche multipiattaforma
a destra con l’elettrone arriva un po ‘ Nativo
menu se si guarda questa applicazione qui
a destra sembra un’app nativa perché
una barra dei menu anche se è tutto sul web
la tecnologia non sembra che tu sia
nel tuo browser, in pratica, fondamentalmente
lascia che la tecnologia web sfugga al
browser e ottenere la piena potenza al largo della
desktop nei documenti nelle barre dei menu e
così su che è davvero bello ok allora come
hai sviluppato così abbiamo iniziato cinque
anni fa con una piccola squadra era la squadra
abbiamo avuto qualche JavaScript hardcore
sviluppatori proprio così e ovviamente noi
ha iniziato tutto in JavaScript ed è stato
davvero divertente da avviare correttamente JavaScript
sviluppare significa che fai una modifica premi f5
vedi il cambiamento ottieni questo feedback
loop proprio questo ciclo di feedback rapido che
rende tanto più produttivo, tanto più
feedback otteniamo il meglio è così
uno dei modelli realizzati nella mia vita
l’ unità J giusta ti da un feedback su come
il codice sta facendo JavaScript ti dà
feedback mentre fai progressi ma che cosa
hai trovato è giusto tanto più quanto più
codice che abbiamo scritto più lentamente abbiamo capito bene
sentivo un po ‘come motoseghe da giocoliere in
particolare quando si arriva a 100.000 linee
di codice sta diventando sempre di più
impegnativo a lavorare con questo codice di base
e anche il tipo di JavaScript ne ha alcuni
stranezze giuste
la cosa buona oggi è lo script 6 di ACMA
è davvero un grande passo avanti quando
viene fornito con JavaScript ma questo delta
tra javascript la guida definitiva
a sinistra e javascript il buono
le parti sono abbastanza grandi proprio così
è per questo che ci siamo divertiti tanto quanto noi
divertiti con la programmazione di javascript
giusto paura come sopravvivere a questo
grande progetto e può mantenerlo per
anni giusti quella fu la sfida
la cosa buona è allo stesso tempo forse
quello è il deport principale dei dolori che abbiamo avuto
giusto così i dolori che abbiamo avuto è a questo
punto non c’era un sei coscritti là
non c’erano moduli che dovevi inventare
che stiamo usando schemi di namespace
non c’erano classi non c’erano
promette bene ma usa le librerie per
quello e se quello che ci ha spaventato di più
è che non puoi refactoring il tuo codice
giusto una volta che hai 100.000 righe di
codice e si desidera rinominare una funzione
o migliorare un’API è solo spaventoso
perché non riesci a trovare i riferimenti
non hai informazioni di tipo giusto tutto
la cosa bella che le idee moderne danno
tu sei basato sull’avere tipo
informazioni su quello che sta succedendo
refactoring intelligence e così via
quello che vuoi evitare è quello nostro
il codice diventa di sola lettura che eravamo
paura di destra avevamo un grande codice
base sappiamo che non abbiamo capito bene il
la prima volta dovrai riscriverlo noi
ottenere sempre nuovi requisiti così
quello era davvero un punto spaventoso per noi
sei il punto di paura per noi che sapevamo
altri non useranno il nostro componente e se
vogliono usare il nostro componente devono
provenire da un’API ma come documentare l’API
come si fa a farlo a destra appena
mantenere un file XML sul lato che
non è mai aggiornato, quindi fai commenti
che inoltre non si aggiornerà mai così
è molto difficile documentare il
descrivere un’API e quale data avete
per passare in una API in particolare con
JavaScript che spesso ti dà molto
Api fluide ha ragione
puoi argomenti opzionali che puoi passare
in una funzione o una stringa e a seconda
su quello fa qualcosa di intelligente come fare
hai catturato e descritto così
la cosa buona è allo stesso tempo di noi
ha iniziato il nostro progetto
una nuova lingua da Microsoft
emergere che a quel punto è stato chiamato
strati che ora si chiama tab script
e tu eri su noi eravamo su alcuni dei
i primi ad adottare questo linguaggio che
significa anche che abbiamo avuto questo fantastico
prova che hai un pezzo di codice
e solo il compilatore barfs e poi tu
passare ore per scoprire come puoi riscrivere
il codice che il compilatore può digerire
ma è stato davvero fantastico che potesse
lavorare con loro fin dall’inizio tipo
di iniziare a usare dattiloscritto come
il linguaggio è davvero cresciuto con noi
giustamente cresce il nostro sviluppo e questo
ha chiuso il nostro codice base, quindi quale dattiloscritto
ti dà è un tipo statico opzionale così
puoi se vuoi e annota il tuo
parametri e variabili con tipi
che apre la porta agli utensili noi
utilizzare da ID come l’intelligenza
refactoring e così via, dal momento che è possibile
annota i tuoi tipi di codice e puoi farlo
in un modo molto flessibile, giusto io
lo script ha un tipo molto interessante
sistema che è fatto per descrivere questo
librerie JavaScript fluide che ha
generici ha doc di tipizzazione strutturale
digitando ha interfacce per descrivere
struttura che ti permette davvero di definire
API e protocolli API per
codice JavaScript esistente che è
meraviglioso
infine ti danno anche di più
sicurezza giusta una volta che hai il tipo opzionale
informazioni scriviamo inferenza che è
sulla glassa ma non devi digitare
tutto c’è un tipo potente
inferenza qui in dattiloscritto che ottieni
più sicurezza con cui trovi la tua ortografia
errori e così via in modo da ottenere solo te
sentirsi meglio e più veloce una volta che si inizia a
sviluppare uno script di tabella e l’ultimo
caratteristica interessante di dattiloscritto è
ti aiuta a colmare il divario tra dove
la specifica è e dove è sbagliato
gli ambienti a termine sono proprio oggi noi
avere un coscritto uguale sceneggiatura sei a destra
ma non tutte tranne sei sono le caratteristiche
supportato nel nostro ambiente runtime
browser o un nodo ma può dattiloscritto
scarica compila il codice di sei script di Ekman
Due
Ecch Muscat five e ti offre funzionalità
da domani oggi, giusto, questo è un altro
bel pesce che ci piace su tab script
e questa è fondamentalmente la storia come noi
è cresciuto così LX dal mio team darà un
Parliamo questo pomeriggio di come davvero
è cresciuto il co-paga e le sfide noi
ho affrontato l’unico punto che voglio fare
qui che V come una squadra abbiamo gradualmente
dattiloscritto adottato per prima cosa
inizialmente ci siamo solo immersi le dita dei piedi
utilizzando dattiloscritto un sottosistema siamo
definito con i tipi ma come siamo cresciuti noi
davvero ampliato per usarlo di dattiloscritto
e oggi siamo dattiloscritti al 100%
codice base che è un 350 o 4 e
migliaia di righe di codice che non contiamo
più perché ce ne sono così tanti
processi che ti mostrerò più avanti
cosa facciamo architettonici o ‘e così
è stata una grande storia per noi
perché abbiamo ottenuto i copays su larga scala
e JavaScript e il fatto che possiamo
mantenerlo da cinque anni e noi
ancora andare avanti a velocità veloce a destra
spediamo mensilmente quando spediamo nuovi mostri
le caratteristiche mostrano un po ‘ quanto potente
è così parliamo di un argomento che ho trovato
interessante perché anche come si collega
per eclissare quali sono le estensioni giuste
una volta che abbiamo reso il codice disponibile per ultimo mentre a
anno fa la richiesta numero uno per noi
sono state le estensioni di supporto che abbiamo cercato di ottenere
nella prima versione ma abbiamo rapidamente
notato questo è tutto a destra arrivando
con una buona API arrivando ad un buon
la storia di estensione era troppo corta noi
ci ha dato sei mesi per l’anteprima di
l’applicazione desktop basata su elettroni
sfruttando la nostra tecnologia web così abbiamo avuto
per eseguire il backup per la prima anteprima
un anno fa, ma poi vogliamo davvero
rendilo giusto per il cibo ottobre così
sei mesi dopo IV ci ha dato altri sei
mesi per venire con l’estensione
storia e il sistema di plugin ora
confrontando questi due scrittori di eclissi
Eclisse
Amo ancora Eclipse destra Eclipse era un
buon viaggio, quindi abbiamo avuto questo
divisione che abbiamo costruito a
da zero come plugin tutto
è un plugin anche noi pensavamo che Java sia cool
tutto è pianificato in Java, giusto
anche in te vuoi scrivere una lingua
supporta una lingua C ++ hai scritto il
l’integrazione in C e Java non fa
senso giusto fa male in qualche modo a destra voi
scrivi il tuo parser C ++ in Java e
lo provi sperando bene di trovare
qualcuno che usa la tua roba impiantare
Java Eclipse anche a questa idea come tutto
ID hai questa vista centrata sulla shell
giusto tutto in una shell
che ha ancora il problema non di più
roba te se metti in un guscio il
l’avvio più lento diventa il più pesante
la cosa diventa così sono molto orgoglioso che
posso usare la mia slide del plugin Eclipse dal
parla da dosh 5 ora 10 anni fa forse
ma questo è il modello giusto in Eclipse
tutto è un plug-in e il plug-in
definisce i punti di estensione e l’API che
significa l’ API generale di un Eclipse se
sei uno scrittore di estensione è la somma
di tutte le API è esposta dai plugin
questo è tutto abbastanza impegnativo di quanto mi
avere un’API coerente se ci pensi
è giusto perché qualsiasi cosa tu implementi
ha anche esposto alcuni riscaldatori
API l’altra cosa da eclissi è pigro
attivazione che è una buona cosa che
sai se hai mille cose
installato non avrai sempre bisogno di questi
migliaia di stesse cose hanno istanziato quando
si inizia così è per questo che anche noi vogliamo
per mantenere ciò giusto, quindi vogliamo continuare
l’attivazione pigra ma tu vuoi
cambia il modello delle clip tutto è a
plug-in e anche le estensioni vengono eseguite nel
lo stesso processo del nucleo di destra di Eclipse
questa è stata una profonda differenza
ed è per questo che abbiamo detto che vogliamo muoverci
ad un altro modello in cui isoliamo
estensioni vogliamo proteggere il nostro nucleo
quindi non importa quale sia la tua estensione
il nostro core è ancora attivo e funzionante per un
editor questo significa che l’utente può
esegui sempre se sicuro
se si dispone di un’estensione che esegue un
ciclo infinito proprio allora per quel motivo
siamo partiti dal modello di clip dove
tu dici solo che l’Iran si estende nell’interfaccia utente noi
passare a un modello in cui diciamo di avere un
host di interni separati che ospitano
estensioni a destra e la casa di estensione
è un contenitore che ha perso estensioni e
comunica con l’interfaccia utente con il rendering
i processi di processo mostrano qui usato attraverso
qualche meccanismo RPC
questo significa anche annotare il codice esistente
è totalmente incapsulato, qualunque sia
corre nel processo di rendering è quasi
opaco a un’estensione a meno che non esponiamo
attraverso l’RPC ed esporre un’API per
così questo è il tipo di credo
cool differenziare differenziato da
eclissi che ci dà una maggiore robustezza
e anche migliori prestazioni di avvio
perché le estensioni vengono caricate in a
processo separato al momento dell’interfaccia utente
già installato e funzionante destra in modo che sia
tipo di vantaggio qui così
host di estensione è un processo di nota quindi noi
costruire sulle spalle del nodo e noi
consenti che puoi riutilizzare i moduli delle note
quando scrivi un’estensione che è
molto bello è possibile implementare in
JavaScript o dattiloscritto abbiamo un’API
che mostrerò in un secondo che è
descritto a dattiloscritto in modo molto fluido
è un’API molto conveniente e noi
avere questa meta informazione come la
plugin XML di Eclipse è un pacchetto
JSON giusto perché XML che non vuole
chi vuole usarlo più
Jason è il formato che preferisci nel
zona umida quindi è quello che sosteniamo così
prima di andare in demo voglio farlo velocemente
Dì ciò che questa parte importante della nostra API
vogliamo che con il codice tu diventi profondo
l’integrazione della lingua giusta è il nostro obiettivo
andare oltre la colorazione della sintassi per
molte molte lingue quindi vuoi abilitare
che puoi scrivere la bella esperienza
con intellisense vai a definizione veloce
corregge i riferimenti in linea ed è per questo
trascorriamo molto tempo nella nostra API per venire
con astrazioni che ti permettono di
fornitore di lingue a
buona esperienza linguistica
e se guardi la nostra estensione
ecosistema il nostro mercato non lo trovi
solo supporto per la colorazione per molte lingue
ma trovi davvero un linguaggio profondo e profondo
supporto per molte lingue, quindi come fare
lo facciamo
c’è un modello che ho cercato di provare
ricorda come parlare in modelli ma
l’idea è semplice abbiamo questo fornitore
modello che l’editor deve ottenere
alcuni dati dalla lingua al fine di
mostra per istante Ellison ha ragione, quindi cosa?
abbiamo come modello sei tu come un
estendere il tuo un Chester un fornitore
questo viene poi richiamato più tardi quando il
l’editor ha bisogno dei dati da te come aleggiare
giusto registrate il nostro provider una volta il
L’ID quando si passa il mouse su di esso chiamerà
torni indietro e dì che mi restituisci un
app le nostre informazioni
giusto questo è lo schema che usiamo per tutti
tipo di caratteristiche del linguaggio come
l’intelligenza va alla definizione
diagnostica e così via piuttosto che
Parliamo solo di questo esaminiamo
un po ‘e vediamo dove
sei così ora creo un’estensione
da zero e ora vedi anche questo
quello che abbiamo detto la combinazione tra
riga di comando ed editore proprio noi
utilizzare uno strumento open source per scaffolding
generatore di yeoman che è un’impalcatura
che si estendono scrivendo moduli e questo
crea molto si crea un’estensione I
può scegliere quale lingua che voglio voglio
utilizzare lo script di tabulazione in questo caso lo chiamo
passa il nostro preventivo okay lascio quel congedo
l’editore hai un Marketplace
sapere come con tutti i tipi di estensione
giorno del sistema tu non devi avere un
mercato che consente agli utenti di trovare
e installarli in modo che ogni e2 sia il mio
nome dell’estensione Non voglio il cancello
repository e spero di arrivare a NPM è
meglio ora bene tiriamo giù tutto ciò che è
necessario, quindi lo facciamo
e non voglio usare il codice stesso
Voglio usare la versione demonio che
Parlerò tra un secondo del codice
addetti ai lavori e tu hai qui la nostra estensione
ha alcune meta informazioni ne ha alcune
fonte di file alcune prove proprio così la meta
l’informazione è il pacchetto che Jason fa
dacci un po ‘di spazio ne ha un po’
informazioni sui dati che abbiamo detto noi
voglio supportare l’attivazione pigra così noi
definire le effemeridi dell’attivazione
eventi che permettono a un’estensione di dire
quando vuoi diventare attivo in questo
caso supponiamo di voler fornire un
al passaggio del mouse che diventa attivo quando si modifica
Codice JavaScript, quindi posso dire sulla lingua
JavaScript voglio essere attivato come
estensione va bene così è e non lo faccio
maniaci dei contributi quindi passiamo
per il codice e l’ estensione quindi non c’è
un nuovo aggiornamento che farò più tardi così
questo è il prezzo da pagare per essere acceso
il bordo sanguinante ma tu lo vuoi così
come ho detto e ora vedi un po ‘di
esperienza di codifica giusto, quindi vogliamo
scrivi un’estensione per il codice vs che abbiamo
questo spazio dei nomi fa un parassita descritto in
tab script che significa che abbiamo
intelligenza per l’API che voglio
un registro a: fornitore hover e qui voi
guarda ora il modello che usi
tuttavia questo fornisce un modello per
tutto per i due punti documenta a
informazioni di riferimento sulla formattazione e così via
ma in questo caso voglio farlo
il nostro fornitore va bene e voglio registrarmi
è l’API che prende una lingua
si vede tipo di ThisIs questa API I fluente
posso dargli solo una stringa o posso dare
è un oggetto e supporta dattiloscritto
questi sindacati sono giusti, quindi dico bene io
voglio fare JavaScript JavaScript e io
voglio dargli un provider hover che io
non ho ancora
okay, ovviamente ho un errore e ora
Voglio implementare il nostro provider e ora
puoi vedere come si programma in tocco
sceneggiatura destra presento il nostro provider
e lo scriverò ora in modo che ottenga
l’intelligenza va bene così ho digitato il nostro
fornitore di essere un codice vs il nostro provider
perché se lo faccio e quando lo faccio ora
creare la scheda oggetto che lo script dirà
me hey ti manca una proprietà giusta
così mister proprietà fornire al passaggio del mouse che
è il callback che viene chiamato dal
editor giusto così come forniscono comunque
Fornisco tuttavia che ho selezionato
creare una proprietà e ora che cosa fa
bisogno così posso ben cosa è che ho
informazioni di tipo completo anche io faccio
JavaScript o tab script posso andare a
definizione e posso vederti sul
come un fornitore ha bisogno di un documento
la posizione e ciò che restituisce è
o a: hover
o aggiungi animali che è la nostra astrazione
per una promessa, così di nuovo vedi
questa API fluente puoi comunque tornare
direttamente o se hai qualche cosa di alleggerimento
corone ti restituisci una promessa a posto
il codice quindi forniamo semplicemente la nostra funzione
e return vs code tuttavia no new BS
codice come è meglio
che di nuovo è questa API fluente e posso
o restituire una stringa di segno o solo a
stringa quindi facciamo ciao
da Amsterdam, quindi l’idea è ora
ogni volta che si passa il mouse sopra il codice JavaScript
si dovrebbe vedere un arricchito la nostra, che
ti dice anche ciao da Amsterdam
quindi dal momento che il debug è fallito l’ultima volta
gli ha dato un altro colpo giusto per mostrarti
un’attivazione pigra che ora imposterò a
breakpoint nella mia estensione standard iMac
e solo essere attivato quando ottengo a
File JavaScript giusto così l’ho lanciato
quindi qui intendo inseguire il file nulla
dovrebbe succedere, ma una volta che vado in un
file javascript ottiene la mia estensione
attivato e sono nel debugger e io
ottenere tutte le funzionalità di debug che tu
usato per scrivere puoi passare il mouse sopra i valori
e cose come quella espressione
valutazione e così via, continuiamo
e controlla le nostre cose scusate e vedi me
non ho comunque raggiunto un ciao
da Amsterdam lo rendono leggermente provvisorio
o interessante e tornare ad esso e
forse prendi qualche citazione interessante da
in rete ho solo un frammento qui
Inserisco lo snippet di codice che andrà
a un servizio che andrà a un servizio
e perché va il servizio sono
online usa una promessa qui ora il
fornitore non gira direttamente la potenza
ma una promessa che la promessa ha due
gestori risolti e ricontrollati e tu
vedere quando arrivano i dati da questo
servizio di codice risolviamo la promessa
creare l’hover e restituire la promessa
giusto così è un po ‘come tu
contribuire in modo sincrono alla nostra API e
consumare l’API salva un errore giusto HP
manca, quindi importalo e basta
si dispone di un frammento di esso che HTTP
dovrebbe essere tutto buono, riprendiamo
e vedi che ora abbiamo il
vestiti più ricchi e io sempre
nervoso quali otteniamo perché alcuni
di loro non sono troppo per tutti così
Alejo ci sono solo due tipi di
i linguaggi di programmazione quelle persone
sempre puttana e quelli che nessuno usa
Mi piace quello che voglio anche sperare di fare
prendi un Java. No, prendiamolo
a quel punto torniamo alle diapositive
ma te ne sei andato l’idea giusta così
è che si sviluppa è molto fluente
sperimentare completamente scritto tipo script tu
ho ottenuto l’intelligenza in un nuovo JavaScript tu
otterrebbe la stessa intelligenza
esperienza perché anche dattiloscritto
alimenta l’ esperienza JavaScript e
grazie a questo ora abbiamo un sacco di
estensioni ma voglio parlare con
prossimo pezzo qui che parla di una volta
hai l’interfaccia utente giusta come fai davvero
guidare un linguaggio che ha un ast quello
ha intelligenza e così via e questo è
quello che facciamo qui è che ti hai visto
avere questa prolunga con tOSU
estensione ciò che ho mostrato prima come il
intero fornitore ma in questo caso
tutto accade dentro le estensioni in
JavaScript ora ho bisogno di volere un ricco
linguaggio come C ++ o Java o qualsiasi altra cosa
Se non si desidera scrivere il parser e la
AST tutto in JavaScript uno script di tipo
giusto e anche tu puoi abilitare te
possibile utilizzare gli stessi server di lingua per
diversi strumenti quindi per questo motivo noi
dal nostro tubo flessibile di estensione ancora un altro
indiretta a un processo del server di lingue
giusto ti ho mostrato con omni sharp
right omni sharp è un linguaggio c-sharp
servizio su capire stand ti dà
il cervello di c-sharp e il suo bambino dentro
c-sharp il cocea come la lingua go
servizio che implementa go e usa per andare
strumenti da riga di comando Python utilizza il Jedi
motore di intelligence che è impiantato
Python ma ottieni il punto giusto
voglio davvero suddividendo le cose
molteplici processi che ti permettiamo
può usare la lingua di scelta per
implementa la tua estensione come quando tu
implementa il C ++ che scrivi
impianto C ++
o una ruggine che è anche uno dei
estensione come il supporto profondo è
implementato nella ruggine stessa e nel modo
come parliamo tra un processo semplice
Carico utile JSON e abbiamo persino definito
protocollo comune che ti permette se tu
basta scrivere un nuovo server per allungare
usa il protocollo di conteggio che non hai nemmeno
avere a che fare con il cliente qui e
qui perché abbiamo fatto un generico
impianto di questa API provider che io
ti ha mostrato questo protocollo comune
che è tutto anche open source su github
è il nostro protocollo in linguaggio di codice okay e
ora come sono in realtà ho due separati
elabora ciò che è un processo separato
consente a diversi editor di fare leva
questi processi e voglio rapidamente
mostra quello per sublime così dove tu hai
sublime qui ho iniziato ora questo è un
non è quello che voglio quindi forse facciamolo
basta vedere così siamo in sublime e io
ottenere l’intelligenza e questo è alimentato da
lo stesso server di lingue utilizzato da
Codice di Visual Studio che ti dà tipo
tipo di script tipo di intelligenza di script
l’intelligenza scenica va bene e anche loro ottengono
parametro finisce proprio questo mostra il tipo di
anche come siamo aperti abbiamo ragione
dei server di lingue che puoi
integrare in qualsiasi editor che si desidera e io
penso che questo mostri anche questa bella apertura
vogliamo che vogliamo andare a posto, allora, noi
andato all’open source non lo farò
alcuni punti sull’open source così è
la stessa lezione ancora da destra eclissi
più sei trasparente più
feedback che si ottiene che è la la cosa
proprio allora proviamo davvero a farlo come a
team di sviluppo vogliamo essere come
trasparente e come ricompensa si ottiene un sacco
di feedback quindi documentiamo il nostro processo
documentiamo la nostra tabella di marcia che documentiamo
piani di iterazione sono tutti visibili tutti
su github all in issues e uno dei
cose che abbiamo fatto di recente noi
abilitato canali di feedback giornalieri proprio così
quello che abbiamo fatto in Eclipse ogni mese
fatto una pietra miliare di persone in grado di usarlo
e ci ha dato un feedback che è bello giusto
ci hanno seguito e ci hanno aiutato a fare
le cose meglio ancora lo facciamo ancora noi
viaggio ogni mese ma quello che abbiamo iniziato
facciamo una o due settimane fa apriamo questo
canale verde che è l’ insider
canale che è un canale di aggiornamento che
ottiene aggiornamenti giornalieri in modo da poterne avere due
prodotti installati fianco a fianco questo
tavolo e all’interno di uno, ma l’interno
di uno ottiene aggiornamenti giornalieri che significa se
vuoi davvero seguirci che vuoi
prova l’ ultima funzionalità che vuoi lavorare
con noi per migliorare un personaggio
arrivare al canale interno e ottengono
aggiornamenti giornalieri destra vs codice supponiamo auto
aggiorna così sarai automaticamente
aggiornato alla stessa versione vs
il team di sviluppo usa e ha a
team di sviluppo hai un interesse
diritto di avere un ambiente stabile così
per questo motivo io uso quello verde
perché voglio mostrare davvero con il
l’ultimo e anche mostrare il
fiducia che ho nel nostro quotidiano
aggiornamenti e ciò che è bello su questo siamo noi
può davvero diventare ancora più reattivo
giusto così oggi quello che abbiamo avuto questa settimana
succedendo abbiamo avuto un tweet alle 3:00
alle 13:00 proprio il tweet ha detto il
ladro di porte sono rotte abbiamo creato un
problema e la correzione è arrivata verso le sei
ore dopo destra e poi la persona
uscito aggiornare una nuova versione e potrebbe
verificarlo entro sei ore proprio questo è
tipo del ciclo di feedback davvero al
il prossimo livello giusto e questo è quello che tu
mi piace davvero così l’open source ce l’ha fatta
facile per gli sviluppatori che ora consumiamo
142 componenti open source che è
molto spesso scriverlo in un sacco di
contabilità perché anche se sei aperto
fonte devi sapere quale altro aprire
componenti di origine utilizzati per
crediti adeguati in un avviso di terze parti
è archiviato e anche noi manteniamo un centro
database come Microsoft mantiene un centro
database che utilizza il prodotto che si apre
componenti di origine quindi l’idea è di
Certo se on è l’open source
perdita di sicurezza dei componenti o qualsiasi altra cosa
non posso andare nel database e scoprirlo
quali prodotti devono essere riparati così là
è un sacco di contabilità che devi fare
ma costruiamo alcuni strumenti per questo e
oggi siamo in grado di spedire mensilmente
con 140 componenti open-source a destra
prima che tutti questi processi fossero fatti
Papà nave forse una volta all’anno ma noi
davvero avuto modo di restringere il campo che si
può spedire mensilmente ed essere ancora conforme
con la contabilità open source e
rende anche più semplice per i contributori
quindi quando fai un contributo al
all’ambito via co-paga o ad altro
max di co-paga con cui hai una corrente
il potenziometro dell’accordo di licenza che lo farà
verifica no ha solo aggiustato il tuo commento
fai riparare alcuni refusi che poi non hai
fare un sacco di spese generali che puoi fare
la richiesta pull se rendi significativo
cambia quindi non è più necessario inviare un fax
contratto firmato è tutto online e tu
può firmare che l’utente accetta il calcolo
Accordo di licenza per computer quindi il bello
cosa è ciò che impariamo è giusto se tu
se rendi il tipo open source in a
cadenza veloce hai bisogno di strumenti ma se tu
avere questi strumenti in atto si può davvero
essere piacevole e può rendere tutto un gioco da ragazzi
Quindi, in chiusura di quello che mi piacerebbe avere
mostrato che oggi è davvero il
trasformazione che Microsoft ha fatto
attraverso l’esempio di Visual Studio
codice a destra che è un codice open source
editor gratuito funziona su qualsiasi piattaforma è
estensibile ha un ricco sistema di estensione e
il compito a casa che mi piacerebbe dare
a te va a casa installalo e pensa
di un’estensione fresco e pubblicarlo
il mercato ok con che mi piace
codifica vicina e felice
tu

Please follow and like us: