Press "Enter" to skip to content

GOTO 2014 • BFFs TypeScript & JavaScript • Martin Schray


quindi lavoro per una compagnia
di Microsoft chiamato stiamo cercando di essere
la prossima grande cosa di nuovo con cui sono stato
micros
12 anni sono stato con la compagnia a lungo
abbastanza per vedere alcuni alti interessanti e
Downs e il mio ruolo in Microsoft potreste
dì qual è il tecnico senior
Evangelista, il mio ruolo è provare
creare interesse creare consapevolezza prima
di tutti creano interesse e, si spera
spronare le persone a utilizzare effettivamente alcuni di
le nuove tecnologie che abbiamo
che si tratti di lingue come dattiloscritto
o programmazione di ambienti come visual
studio o addirittura edificio per il nostro ultimo
piattaforme come Windows Phone e Windows
8 di cui parleremo davvero oggi
dattiloscritto così solo per iniziare
sai JavaScript è fantastico
le funzioni chiusure il linguaggio dinamico
il modo espressivo che puoi e scrivi
codice in esso sono tutti fantastici lì
sono alcune cose nella lingua però
che desideriamo di avere e quando parliamo
a proposito di dattiloscritto oggi vedremo che
abbiamo un tipo di approccio standard
fare cose che non sono radicalmente nuove
quindi se dici buone lezioni ci sono
non nuovo ed eredità che non lo è
orribilmente nuovi e moduli sono stati
è vero, ma vedremo quando saremo noi
entrare in Scrip di tipo un po ‘di più
profondamente è il fatto che siamo un po ‘ di
noi tipo di avere un approccio standard per
facendo questo solo essere completamente chiari
JavaScript mi ​​piace è fantastico
buono ma una delle cose che un sacco di
la gente ti dirà che è su larga scala
JavaScript JavaScript su larga scala
lo sviluppo può essere difficile in questo momento
parlare quando vedo una grande scala che siamo
parlando di 20.000 50.000 centinaia di migliaia
duecentomilatrecento
mille righe di codice è probabilmente
difficile in qualsiasi lingua, ma in JavaScript
può essere particolarmente difficile perché alcuni
delle cose che potresti aspettarti
avere qualcuno in una lingua che potresti
vedere come in c-sharp o come Java
namespace sai che si possono essere
implementato in modi ma non fanno parte
della definizione di base del linguaggio stesso
la lingua è incredibilmente flessibile
dinamico e incredibilmente flessibile così tu
puoi definirli che non fanno parte del
linguaggio stesso e quindi questi elementi qui
non sono direttamente da me, sono
da un team di Microsoft che lo ha fatto
ha un progetto JavaScript di 150.000 linee
e questi sono come sono emersi
c’è preoccupazione
e usano effettivamente dattiloscritto
sotto le coperte ora ma loro se
conosci la gamma di Erich del
Gang of Four lo schema ideato da lui
in realtà conduce la sua squadra e la sua squadra è
la sua costruzione di un progetto o costruzione a
progetto chiamato Monaco e questo è venuto da
la sua squadra è una delle sfide di
trattare con grande base di codice grande e
crescente codice di base in javascript è il
bisogno di venire con questo tipo di
modelli proprio lì certamente
si avvicina alle classi e a due moduli
e gli spazi dei nomi una delle sfide
lo sai che francamente lo sono
molti approcci per sfidare le classi
e moduli uno spazio dei nomi e ciascuno di essi
ha la loro unicità risultato questo
uno ha tratti che è abbastanza bello
piace usarlo e una delle cose
che hanno visto e la loro base di codice era
dovevano pensare in anticipo a come
stanno andando a strutturare il loro codice
e una delle sfide per loro
davvero era nel modo in cui in realtà
strutturato quel codice giusto iniziarono
molto dinamico spostando la propria base di codice
facendo grandi progressi ma cosa
hanno visto quando ti raggiungono
20.000 30.000 40.000 righe di codice
le cose sono diventate molto più difficili per loro
gestire una delle altre cose e io
penso che questo sia vero per qualsiasi lingua
Non sto cercando di offendere nessuno così
il codice JavaScript refactoring può essere
difficile qualsiasi linguaggio di programmazione si decomponga
nel tempo ci sono cambiamenti nel
nuove strutture linguistiche di base
le funzionalità diventano disponibili nel
lingua che dici hey voglio che voglio
in realtà iniziano a usarli e quindi agiamo
dobbiamo riflettere attivamente
o un codice una delle cose che il
gruppo di sviluppatori di sviluppatori e questo
il team ha detto che con JavaScript
progetti è un po ‘ come il codice di intaglio
in pietra perché quando arrivi a cinquanta
migliaia di righe di codice quando vuoi
refactoring diventa particolarmente
sfidando proprio tu lo sai
diciamo che si desidera cercare
qualcosa chiamato nome beh potrebbe essere un
parametro e potrebbe essere un locale
variabile e potrebbe essere globale
portata giusta e quindi solo facendo un enorme
tipo di ricerca e sostituzione non lo è
necessariamente un ottimo modo per gestirlo sì
sei sicuro che la nostra disciplina è un’unità
prova ma ci sono ancora alcune sfide
a quel codice così refactoring può essere difficile
e questa squadra l’ha visto davvero dentro
Internet Explorer c’è quello che noi
chiama strumenti F12 e quelli sono strumenti che
essenzialmente ti aiutano a guardare il traffico
andando tra te e il browser come
così come ti fai fare il debug sul tuo
Erano le applicazioni JavaScript
scrivendo l’editor che ti permette di guardare
il codice in là che supporta
codice minificato e così per loro è diventato
questo momento di bene abbiamo un
modifica significativa del refactore esterno
la nostra base di codice perché ora stiamo andando a
supportare queste linee molto molto lunghe e
erano davvero felici del fatto
che usano il dattiloscritto mostrerò a
piccolo esempio di che in un minuto che
potrebbero usarlo per refactoring in modo sicuro
perché capisce la differenza in
portata delle variabili che avevano dichiarato
finalmente una delle cose che hanno parlato
era una specie di api di per sé
può essere una sfida per mantenere le API
in sincrono quando hai la documentazione
questo è separato dal codice giusto
qualsiasi cosa ti avvicini al codice
meglio ogni volta che hai qualcosa
separato dal codice
implementazione dal reale
documentazione che può rendere più difficile
mantenere sincronizzate le API e questa è una delle
le cose che vedevano com’erano
facendo il loro sviluppo, in modo che cosa è
dattiloscritto lo slogan di marketing credo
è la lingua per il drop su larga scala
Lo sviluppo di JavaScript in realtà non lo è
diteci molto su di esso scaviamo dentro
che un po ‘più lontano è
essenzialmente un superset tipizzato di
JavaScript che compila in basso
JavaScript quindi una delle cose che è
interessante di questo sai che ho avuto
persone diverse mi chiedono come sai
hey è questa una specie di abbraccio e
estinguere cosa non sai javascript
è la lingua del web in cui la otteniamo
Microsoft stiamo scrivendo i nostri strumenti
alcuni dei nostri strumenti in questo progetto
Monaco è un browser e sai immaginare
uno studio visivo ma immagina che funzioni
in un browser che è il tipo di progetto
Monaco sta cercando di avvicinarsi così siamo
utenti di JavaScript che puoi effettivamente
scrivi JavaScript di Windows 8 nativo
Le app di Windows 8 che utilizzano wind j / s così siamo
grandi utenti JavaScript la cosa interessante
su questo voglio dire se ci pensi
perché ti piace javascript i motivi
ti piace è che c’è un numero
Per ragioni che probabilmente ti piacciono, ma tu
sa che esegue in qualsiasi browser qualsiasi host qualsiasi sistema operativo
tipo di corse ovunque è il linguaggio di
il web e la cosa bella di
dattiloscritto è che in realtà non ti fermiamo
dal fare ciò giusto è essenzialmente
ribaltiamo una diapositiva qui nel at
la fine della giornata quando esegui il
il dattiloscritto del dattiloscritto è veramente
un’illusione fase di progettazione, se si vuole che
ti dà una forte digitazione mentre tu
in realtà sto facendo sviluppo quando tu
eseguire il compilatore che effettivamente fa
tutti vanno via e fuori dall’altra parte
spara JavaScript così è
completamente compatibile con JavaScript
JavaScript in realtà vuole così dattiloscritto
per aiutare abbiamo visto quelle sfide in precedenza
abbiamo parlato fornendo opzionale
e la tipizzazione strutturale, quindi vedremo qui
negli esempi che guardiamo è quello
fornendo alcune annotazioni si può molto
rapidamente iniziare a ottenere alcuni benefici da
digitando non sono classi e moduli
unici o nuovi non li abbiamo pensati
quello che abbiamo detto, ma quello che cerchiamo di fare
è formalizzarli nella lingua e
cosa viene effettivamente prodotto e cosa
stiamo facendo rispetto alle classi e
i moduli che lo standard ECMO 6 sta cercando di essere
ratificato nel dicembre 2014 e lo siamo
effettivamente allineato con esso e il prossimo
rilascio di dattiloscritto che sta per
essere un punto uno o due punto O
decidere in base a cosa decidono
chiamarlo è in realtà tutto per ottenere
dattiloscritto da allineare direttamente al
Equus sei standard in aggiunta c’è
interfacce che ci permettono il nome
tipi di oggetti e quello che vedrai è quello
sì, possiamo implementare esplicitamente
interfaccia se sei un lavoro familiare o
hai familiarità con c-sharp potresti essere
familiare con questi tipi di concetti
ma quello che vedremo è che sì posso
lo faccio esplicitamente in JavaScript, ma io
può anche tipo lasciarlo capire
dalla forma di ciò che ho descritto
che è un’interfaccia e vedremo come
che in realtà funziona così in JavaScript
chiaramente ha un sistema di tipo che non lo è
manifestare per eseguire il tempo che è dattiloscritto
cercando di fare è di rendere che il tipo
sistema visibile in fase di progettazione e codifica
tempo e poi come ho detto
evapora quando esegui effettivamente il
il compilatore quindi in sostanza il dattiloscritto è un
formalizzazione statica di JavaScript
runtime dinamico e tu lo sai
essenzialmente si sposa per prendere
JavaScript le buone parti si aggiungono
digitando per aggiungere strumenti a esso e in
Alla fine si finisce con solo JavaScript
quindi se ci sono domande là fuori
le righe di hey sai che questo è gentile
di fresco è solo una cosa di uno studio visivo
la risposta è il linguaggio dattiloscritto
stesso è open-source il dattiloscritto
compilatore e strumenti il ​​servizio linguistico
se tu sei open source e loro hanno
stato integrato negli strumenti come
IntelliJ
e resharper come plugin che lo usano così
sono disponibili per essere utilizzati è possibile
tirali dentro, non è così
studio individuale ma non è necessario
essere utilizzato in esclusione dello studio visivo
e infatti c’è un impegno da parte di
la squadra con tutti gli strumenti che sono
sono disponibili in Visual Studio
disponibile anche open source così nel mio
opinione la cosa bella di dattiloscritto
è se pensi a tipi Christa
tipi di typescripts in generale
sono tutti dentro o fuori a destra prendono C
sharp o Java in sostanza si ha un
digita fortemente il sistema e sai che lo è
su di esso è una specie di binario è acceso o
fuori a destra e poi guardi
javascript hai un sistema che è
incredibilmente dinamico e essenzialmente di tipo
il sistema è solo una prova del runtime
che tipo di script ti permette di fare è
essenzialmente hanno un quadrante dove puoi
dì sì, ne prenderò un po ‘
JavaScript ho intenzione di lanciarlo in a
dattiloscritto corre dritto e poi
se voglio aggiungere alcune annotazioni di tipo I
può farlo così la chiave da asporto
dattiloscritto scorre attraverso il dattiloscritto
il compilatore produce JavaScript quindi alcuni di
le cose che darò un’occhiata qui
e so che sei come arrivare ad alcuni
il codice lo farà così alcune cose lo faranno
guarda la tipizzazione strutturale e il tipo
inferenza quindi sì, posso digitare esplicitamente
qualcosa e quindi posso dire il tipo I
può fare un incarico di un numero o
stringa e quindi può inferire il tipo ma
vedrai in realtà che fa il
la lunghezza del sistema di tipo dattiloscritto
fa davvero un bel lavoro o
il servizio linguistico fa davvero un buon lavoro
di iniziare a dedurre tipi da cosa
L’ho detto che ci consente anche di lavorare
con generici se usi Java o C sharp
di nuovo i generici ti permettono essenzialmente
per descrivere tipi specifici e garantire
che tipi specifici stanno scorrendo in e
fuori da parametri o collezioni e
cose fantastiche funziona con esistenti
librerie e cosa vedrai qui sotto
le copertine è che c’è un file chiamato
qualunque sia la libreria denominata DTS è e
è tipizzazione essenzialmente definita e
ci sono librerie di tipi per oltre 400
Librerie JavaScript jbase backbone
nodo knockout possiamo nominarli ma loro
sono essenzialmente questo è totalmente
gestito dalla comunità non lo è
gestito da Microsoft finalmente il bello
parte un’altra interessante parte, credo
i tipi di questo tipo abilitano un bene
esperienza di utensili no no
ti permettono di produrre prove
codice perfetto possiamo ancora produrti
Conoscere male il codice in modo fortemente digitato
ambiente ma quello che fa è dare
un certo livello di verifica alcuni
livello di assistenza e da una attrezzatura
prospettiva ti permette di fare cose come
refactoring di completamento di dichiarazione e
questi tipi di cose sono quindi dattiloscritti
usa Microsoft sì, quindi Visual Studio
online ha circa 150 mila righe di
codice dattiloscritto avevano un esistente
Implementazione JavaScript che hanno
in realtà lo versò e loro presero un
tipo di approccio alla macchina dove loro
essenzialmente ha scritto i propri parser
verso l’altro usato alcuni documenti Java per
crea dattiloscritto il progetto Monaco
la squadra ha davvero iniziato con il dattiloscritto
circa il dieci percento perché hanno iniziato
codifica circa lo stesso tempo come dattiloscritto
la squadra ha iniziato e quindi sono a
sono tutti in ora a cento
percentuale di dattiloscritto in circa cento
e cinquantamila linee e puoi vedere
il loro lavoro lo vedremo un numero di
luoghi, ma uno dei posti che vedrete
si prova quando j / s quindi quando jess è il
libreria javascript che se vuoi
crea app native per Windows 8 che puoi utilizzare
e puoi vedere il progetto
Il progetto di Monaco è emerso se guardiamo
la vista CSS o JavaScript qui come
così come l’output attuale controlla questo
è un’altra cosa che Microsoft ha fatto
open source ed è disponibile e vedi
la scheda sorgente lì puoi effettivamente
scaricalo quindi sull’editor attuale
esperienza che vedi in HTML e il
CSS e njs sono effettivamente forniti da
progetto Monaco quindi un altro interessante
cosa hai 12 strumenti dietro Internet
Explorer lo usa compilatore dattiloscritto
servizio di lingua dattiloscritto tutto scritto
in JavaScript o tutti scritti in
dattiloscritto che compila in basso a
JavaScript e sono sicuro che la lista continui
da lì quindi lo stiamo usando così l’idea
che classifica questi moduli di interfaccia
ti permettono di non parlare solo di scrivere
buon codice è di avere
struttura per strutturare effettivamente il tuo
codice base in modo da classi interfacce moduli
non sono necessariamente nuove idee, ma lo sono
un approccio standard per farli
si stanno allineando con l’immersione natale
mikek mio script sei standard e
supporta sistemi di moduli popolari come
sistemi di tipo GS e AMD comuni così
questo non è un qualcosa che abbiamo ricostruito
una delle altre cose interessanti
questo è quando ECMO 6 è ratificato e
dattiloscritto supporta lo sai che lo farai
essere in grado di capovolgere un interruttore dice sì
script di Natale compilato sei ma di default
verrà compilato un piccolo codice di produzione
che viene eseguito in un browser di script di natale tre
così avrai tutti i benefici del
roba linguistica senza dover
hai la tua intera base di codice e tutto il tuo
gli utenti si muovono francamente così da una comunità
punto di vista la fonte del progetto
disponibile su codeplex che è il genere di
il nostro ambiente open source c’è 170
Forks un certo numero di gran numero di
richieste di funzionalità e in realtà siamo
prendendo la richiesta di pull ora siamo ancora il
mantenuto eredi del dattiloscritto o
il pastore è se lo farai
linguaggio dattiloscritto ma in realtà siamo
molto impegnato nella comunità su entrambi
richieste di funzionalità e prendere una spinta
richiesta sui quadri che ho fatto io
menzionare che ci sono oltre 400 librerie
sono disponibili undef inizializzato per
sai knockout no jquery ecc e come io
menzionato poiché questo è open source e
sai che è scritto?
che la compilazione non è un JavaScript è
è collegato a un numero di IDE
inserito in un numero di build e
ambienti di esecuzione e supporta
anche ambienti di test unitari
andiamo a una demo in modo ho intenzione di
inizia con Visual Studio e io sono giusto
inizierà con un nuovo file nuovo file
qui quindi non avvierò un progetto
Sto solo per iniziare un nuovo file e io
sappi che tutti voi adorereste guardare
io scrivo perché sarebbe un po ‘
equivalente a guardare la vernice secca e come
puoi vedere quanto sto digitando bene
ora voglio soprattutto guardare è più difficile
digitare quando sei in piedi di te
pensa di nuovo di darmi un po ‘di
credito ma piuttosto che fare un mucchio di
digitando fammi iniziare con l’esempio qui così
questa è una sorta di funzione per nome e
vedrai che prende in qualsiasi e noi
affettare il any in modo che potessimo effettivamente dedurre
un po ‘di quello che sta succedendo qui, ma
andiamo avanti per un secondo e
così vedrai che ne abbiamo preso in
e non ne abbiamo qui e abbiamo te
Conoscere un e qualsiasi che è restituito il
risultato ovviamente non è così per te
potrebbe sostenere che la funzione stessa sia
tornando in qualsiasi modo non possiamo davvero dire
tu fai qualcosa di saggio, bene te
non ci hanno davvero detto niente di niente
saggio ancora ma andiamo
iniziamo il percorso di fare un po ‘
un po ‘di lavoro sul tipo qui così sono
andando a dirlo che sto passando
qualsiasi array e cosa vedrai subito
il pipistrello è ora è un passaggio al passaggio del mouse su
esempio, ne sto effettivamente prendendo un po ‘
informazioni che potrebbero aiutare
completamento delle istruzioni quindi è una matrice
che ho e quindi quindi il risultato
è una serie di ogni facilità che io sono
ritorno e il metodo restituisce un array
di tutto ciò quindi potremmo dire il
ordina per nome restituisce effettivamente un array
di così tanto un po ‘di tipo
informazioni che stai effettivamente vedendo
siamo in grado di farlo scorrere attraverso tutto il
modo attraverso questo metodo ovviamente no
metodo gigante se dovessimo guardare il
funzione di questo metodo che vedrai
è che chiamiamo sort e noi siamo
passando in due elementi individuali da
quella matrice e confrontandoli e basati
sul loro nome proprietà così chiaramente
se proviamo a usarlo senza realmente
passando in un nome di proprietà non lo siamo
sarà in grado di ordinare qualsiasi cosa
diamo un’occhiata a come potremmo fare
qualcosa di interessante con un’interfaccia
quello potrebbe realmente fortificare questo
e assicurarci che ciò che stiamo superando
è ciò che ci aspettiamo e in realtà è valido
iniziamo col dire l’interfaccia qui e
noti il completamento è una specie di
bello e chiamerò la mia interfaccia
entità e sto per dire che il mio
entità voglio dire che la mia entità
ha una proprietà nome in esso e voglio
vai avanti e specifica un tipo
informazioni qui, quindi ho intenzione di dire il mio
l’entità ha una proprietà name e
capita di essere una stringa facciamo in realtà
un oggetto letterale qui usando quello che sono
dirò le entità VAR e colon così sono
dicendogli che è specificamente di
tipo entità e che sarà uguale
a un oggetto letterale qui e cosa
noterai che in realtà sono
ricevendo un po ‘di feedback da
Visual Studio qui cosa mi sta dicendo
sta dicendo ehi tu sei questo sei questo
interfaccia hai implementato questo
interfaccia chiamata entità e quella e
quello a cui è associata una proprietà
questo nome chiamato va bene, è carino
e tu vedi che ho colpito lo spazio di controllo
e ottengo il completamento automatico, così mi dice
c’è questa cosa chiamata nome che io
può effettivamente usare e sto per dire
il nome è uguale a bob buono
chiamatelo un singolo Bob andiamo ok
così posso anche tornare indietro e ho potuto
ovviamente aggiungo altre cose al mio
interfaccia potrei dire che c’è un prezzo
associato ad esso che capita di essere a
numero e si nota immediatamente questo
quasi subito dopo aver digitato le cose
un po ‘correttamente che la mia entità ora sia
dicendomi hey tu non sei in realtà
implementato correttamente di più è anche necessario
un prezzo da associare a te grazie
per avermi fatto sapere che lo farai
vedere i miei prezzi 595 così uno degli altri
le cose che potrei fare è che potrei definire
un oggetto chiamato in magazzino e potrei dire
in magazzino è un booleano e ovviamente il mio
il mio oggetto letterale qui mi darà un
errore ma potrei anche fare qualcosa di simile
questo e dire che il mio in magazzino è in realtà
non richiesto è facoltativo e quindi se io
in realtà fornire uno così se dico qui in
magazzino o guarderò a quello di completamento automatico
lo adoro se dico che è uguale a 100 per
esempio vedrai che ottengo un errore
perché perché lo sa attraverso il tipo
di nuovo l’inferenza o confrontandola con
l’interfaccia che conosci lo può immagazzinare
in realtà non può essere un numero necessario
essere un pallone quindi potrei semplicemente dire
hai ragione lo renderò un vero e
quindi è molto felice di nuovo ok, quindi abbiamo
visto un’interfaccia vediamo davvero
cosa possiamo fare con questa interfaccia per
migliorare il nostro metodo qui così uno dei
le cose che abbiamo detto è stato il nostro metodo
una serie di n facilità e stiamo usando il
nominare la proprietà in modo da poter essere carina
argomentiamo rapidamente se non abbiamo un nome
proprietà su ciò che ci pagano in quanto è
non andando a lavorare orribilmente bene così io
potrebbe dire che invece sta andando a
prendi una serie di ante e poi
te ne accorgerai subito dopo
in realtà ottenere un errore perché, perché ora
sa abbastanza bene abbiamo detto alcune cose
inizialmente so se ho mostrato questo ma io
so che è un array xan in modo che io possa ottenere tutto
i metodi dell’array che lo accompagnano
e posso selezionarli e come effettivamente
seleziona il metodo per esempio che posso ottenere
tutti gli argomenti per andare così bene
questo è quello che sembra fantastico e
si nota che effettivamente ha contrassegnato il
fatto che ho usato confrontare locale quando
quando ovviamente intendevo il confronto locale
ecco quindi se inizio a digitare vedrai
che il completamento avverrà se lo scriverò
ovunque vicino alla volontà corretta
in realtà mostrami locale locale locale
confrontare e potrei usare quello così è
tipo di belle oops ci andiamo bene così
c’è un confronto locale quindi il mio tipo di sistema
sai che ha già aiutato un po ‘
Ho già capito un po ‘
cose che stiamo andando storte, ora facciamo
in realtà provalo così, per quello che sto andando
andare qui e fare è che sto andando a
dì VAR p art e teschio dei nostri prodotti
è uguale a faremo una serie di loro
e ti dirò cosa imbroglia
perché tu probabilmente non lo farai
guardami digitare so che è davvero
impressionante il modo in cui ti dico ma
comunque va bene così quello che ho
ecco ho una serie di prodotti e
noterai che succede implementare
l’interfaccia ora non l’ho esplicitamente
dì che questi prodotti lo implementano
interfaccia ma mentre ci passiamo sopra, lo farai
vedi che in qualche modo sa il fatto
è implementato ha stringa e prezzo
che sono due pezzi che interfacciano il
facoltativo in magazzino non c’è ovviamente
perchè non ho fornito in magazzino e anche io
avere alcuni dati aggiuntivi l’ID Let’s
in realtà vediamo se riusciamo a farlo funzionare
quindi quello che faccio è afferrarlo, ho appena aperto un
file in Visual Studio ma in realtà
dirigetevi verso il campo da gioco dattiloscritto
ora perché ogni lingua
le specifiche dovrebbero avere un parco giochi
che puoi giocare ed è una specie di nuovo
cosa da fare qui, quindi ho intenzione di andare oltre
al parco giochi ho intenzione di andare avanti
e sbarazzarsi di quello che c’è lì dentro
il nuovo codice ora prometto che questo
cosa era in realtà stava facendo JavaScript
e lo vedrai abbastanza chiaramente
che la mia interfaccia è completamente
evaporato non esiste nel
Lato JavaScript e si nota che il
digita le informazioni per nome dicendole
di che tipo era completamente?
evaporato e quindi siamo appena usciti
semplicemente JavaScript, ecco cosa c’è dentro
nel parco giochi effettivamente prende cosa
digiti sul lato dattiloscritto e
scorre attraverso il linguaggio dattiloscritto
server e compilatore produce JavaScript
dall’altra parte quindi salveremo
la nostra spada
è uguale per ordinare per nome e
ci vuole un argh che ho intenzione di digitare entità
passiamo semplicemente i prodotti e vediamo cosa
pensa ai prodotti okay quindi lo farai
vedi qui che sa che siamo
passando un oggetto con queste proprietà
l’ID prezzo nome che ne esce
vediamo che abbiamo perso qualcosa
lungo la strada qui sappiamo solo che
è un array di entità che viene restituito ma
abbiamo perso le caratteristiche di cosa
era lì e torneremo a quello in a
in secondo luogo, vediamo se possiamo
ottenere questo per eseguire quello era un po ‘quello che io
prometti di farlo documentare quel corpo
lì HTML è uguale a e diciamo
JSON ingannatore JSON ragazzo se potessi digitare
oggi sarei pericoloso per me stesso
allenarsi al tipo la prossima volta
Il punto Jason si stringifica e in effetti lo faremo
in realtà passerà in ordine, non lo faremo
dargli un’anima sostitutiva per inviare null e
diremo che usiamo per schede o quattro
spazi lì per la spaziatura e con qualsiasi
la fortuna è che premiamo e funziona ok così
eccolo ed è ordinato per nome così
martella molti più giocatori
va tutto bene, è bello quello che può
facciamo per tipo di rettificare il fatto che
abbiamo iniziato con un si sa sorta di
vista dettagliata di ciò che stiamo passando
qui, ma quello che finiamo con è solo un
array di entità ben si scopre che è
essendo guidato dal fatto che siamo
passando in un’entità e stiamo perdendo
qualcosa lungo la strada in modo che possiamo
effettivamente utilizzare generici qui per fornire
più informazioni sul tipo e ora possiamo dire
è ordinato per tipo T così qualunque oggetto
lo dai in realtà lo assicurerà
implementa quell’interfaccia e dirà
che ci vuole un tipo T come argomento
quando l’ho fatto quello che noterai ora
si sta lamentando del nome lo fa
impediscimi di eseguirlo
è una delle bellezze di javascript
cerca di fare la cosa giusta e e
spesso lo fa, ma quello che mi sta dicendo è
hey nome è in realtà qualcosa che è
non starai con te, hai detto niente
l’oggetto può entrare qui ora è ciò che tu
fondamentalmente mi ha detto e in effetti qualsiasi oggetto
non ha necessariamente un nome
proprietà e in realtà è giusto, quindi cosa
Io voglio fare è in realtà dire che
estende T così da mantenere il più giovane
c’era o estende l’entità che dovrei dire
mantiene il più giovane che fosse lì dentro
e oltre a ciò passa tutto
il modo in cui ora, se guardiamo
entrando sappiamo ciò che sta arrivando
sappiamo che cosa è se dovessimo
vieni qui e cambia il nome di uno di
questi così non sei più tu
avviso subito il compilatore sta dicendo
hey non puoi in realtà il parametro tu
fornito in realtà non implementa questo
interfaccia di entità che mi hai detto
stavano per implementare così è gentile
di figo oh una delle cose che ho promesso
vorrei mostrare diciamo che ho un
la variabile locale ha chiamato name here is
uguale a ABC o qualunque cosa io digiti lì
e ho un nome qui sull’entità quindi
ovviamente uno come uno più globale
come ambito locale se anche nel
parco giochi dattiloscritto se vengo nel
campo da gioco dattiloscritto e dì rinomina
simbolo che noterai che ora potrei
dì qualcosa come il nome dell’entità e
sa che non ha cambiato il locale
versione di esso qui ha cambiato il
quelli appropriati qui perché è quello
intelligente così refactoring c’è molto
più facile quando ha quel tipo di scopo
e capisce cosa sia realmente il codice
significa a un certo livello quindi prendiamone uno
facciamo un ultimo esempio qui
torniamo allo studio visivo e io sono
andrà avanti e basta sbarazzarsi di
quel codice e ho intenzione di prendere un
ordinamento generico in modo da poterlo ordinare
qualsiasi cosa quindi diamo un’occhiata a
bello scivolare questo qui, quindi in pratica
quello che sta dicendo è sort da prende qualsiasi
il tipo T prende una matrice di quelli come a
è un dato di fatto che sta per prendere un
callback che ritorna in qualsiasi e
alla fine ritorna
quel tipo di array di quel tipo lo affetto
ed ecco la mia spada Sto andando avanti e
afferrando il mio, sto chiamando il metodo
Sono stato passato a prendere la chiave
di ciascuno degli oggetti che sono passato e
poi faccio un confronto e li restituisco
così posso ordinare così qui quello che posso fare è io
posso dire e potresti averlo notato
piccolo che è un’espressione lambda lì
in realtà non è qualcosa che è dentro
la lingua di nuovo in te nota che lo è
appena sostituito con una funzione inline
fondamentalmente il pezzo interessante è quello
le espressioni lambda sono in realtà
implementati in alcuni browser e sono
mirato ad essere in sei lingue ACMA
standard che uscirà a dicembre
quindi dovresti essere in grado di usarlo effettivamente
loro e dovrebbero passare attraverso se tu
avere una collana se si compila il codice per
ECMO sei così noterai che lo sono
ottenere una lamentela qui perché ora
ordinare sta dicendo che stai passando
io una delle cose di cui hai bisogno, ma anche io
basterà questo il callback in sostanza
Vado a cercare , quindi vado a vedere
Punto X partiamo dal prezzo certo e poi
stiamo andando a visualizzare quella lista ordinata
fuori così ordinando il prezzo novantacinque
centesimi fino a cinquecento dollari
sembra abbastanza buono dovrei essere in grado di
Certo quindi di dire che voglio ordinare
diciamo che il nome è uscito sicuramente e
ci sto ordinando per nome, quindi di nuovo
dattiloscritto tutto ciò che facciamo
dattiloscritto alla fine della giornata arriva
come JavaScript ed eseguito nel file
normale ambiente JavaScript
uno sguardo alle classi in modo Sto solo andando a
sbarazzarsi di quello che posso dire di classe
definire un punto di classe
e posso dire che ha una X che è a
numero e un perché questo è un numero che vedi
essendo generato in tempo reale quindi no
sorpresa lì una volta che ho fatto quello che posso
in realtà dire che VAR p è uguale a nuovo
punto e vedrai che in realtà possiamo
crea sempre una nuova istanza di punto
aiuta se lo fai bene ci andiamo
crea una nuova istanza un punto e quelli
le variabili che ho dichiarato sono disponibili
per me quindi c’è la X che gli darà un
guarda il valore di 10 c’è il valore di y
gu a valore di 20 ora come buon linguaggio
designer e programmatori siamo probabilmente
guardando questo e dicendo che davvero
dovrebbe usare un costruttore su questo Martin
cosa stai pensando che hai ragione così
Andrò avanti e passerò quegli argomenti
e tu ora noti che si lamenta
perché il fatto che non abbiamo un
versione del costruttore che accetta
argomenti bene possiamo possiamo facilmente
crealo così posso tornare qui e
posso dire che il costruttore aiuta sempre se
lo si scrive bene
ancora meglio quando ottieni il completamento
lì e posso dire che ha una X.
che è un numero intero mi perdoni un numero a
y che è un numero e poi lo farò
implementarlo rapidamente molto rapidamente lì
andiamo, posso dire che questo punto X è uguale a X
il passo y è uguale a y nessuna sorpresa
lì posso definire i metodi su di esso sicuro
perché non così potrei dire la distanza ed è
la matematica che le radici quadrate di sicuro questa volta x
volte quindi ho intenzione di inventarlo
qui per un po ‘di tempo questo che Y e
chiudo che ci andiamo e posso anche fare
qualcosa come una specie di interessante così dentro
essence xey sono proprietà pubbliche
qui quindi posso semplicemente sbarazzarmi di
loro e nella mia dichiarazione costruttore I
può effettivamente dire che voglio che siano
pubblico e si nota sul generato
lato codice va avanti e lo fa
fondamentalmente la stessa cosa che ero
facendo dove ho questi come pubblico
Proprietà ora posso anche fare qualcosa
come questo che in realtà non fa parte di
JavaScript allo stesso modo dicendo questo
interessante quindi ho un colore che è
una stringa che non vedi ancora io sono
Ti credo, ma se poi dico questo
il colore dell’anatra è uguale a leggere vedrai
che come fai tu così bene te
stai dicendo bene, gee Martin, posso andare
avanti e digitalo bene, ma puoi
l’editor è in realtà abbastanza intelligente ora
ti sta dicendo che non lo è
disponibile per te e posso andare avanti e
dì sì, lo so che è davvero lì che sono
andando a digitare in qualsiasi modo e posso
in realtà noterai da questa parte che è
effettivamente generato ma stai ricevendo un
errore che viene fuori dall’editor fondamentalmente dicendo
è inaccessibile perché è privato
ok così per il poco tempo che ho intenzione di fare
prendi un po ‘di codice e collegalo
ecco una implementazione più completa di
classe
Non so se è in realtà più
completo o no forse alleato forse è
lo stesso controllo V quindi un po ‘di più
ad esso come una statica che vedrai come
beh, ma la cosa interessante credo
ora vuoi che diciamo che vogliamo
per rendere questo un modulo così posso dire
modulo e chiamiamolo hai detto e
ancora questo è un parco giochi non lo è
significava davvero essere un editor completo ma
ha caratteristiche che sono un po ‘
bello quindi posso afferrare questo pezzo di
scrivi qui e pronuncia il codice del formato
formattalo bene, ora te ne accorgi
che sto prendendo aria qui e
si potrebbe dire che è bene a causa della
Infatti non è un nome nomi in modo efficace
distanziati martin e vedrai se no
quello non è ancora al suo posto
lamentarsi perché perché non ho esportato
non è esportato, quindi cosa vedi
il lato generato se hai guardato il genere
dell’approccio standard che le persone
difendere la costruzione di una classe che abbiamo depositato
questo approccio è l’approccio che
stanno inseguendo nell’ECMO sei
standard e quindi niente di orribile
unici sono un’estensione interessante
di questo credo che se lo farai se noi
guardato stiamo andando avanti e
esportare un’altra classe qui sta per
essere 0 punto 3d e si estenderà
punto oops
rimettilo a posto dove andava tutto bene
estende i punti
Credo di dover dire che è una classe
eccoci
okay e ho bisogno di dargli un costruttore
e sarà pubblico x di nuovo uno
numero pubblico perché Michael un numero e
pubblico z tutto bene e ho avuto modo di darlo
un corpo è per questo che non stava facendo
qualsiasi cosa da te lì mi interessa e guarda
come oh sembra una goccia a / n che è
perchè è infelice, ora andiamo adesso
vedrai qui è che abbiamo davvero
questa è l’unica volta che vedrai
dattiloscritto genera codice che non hai
scrivere è fondamentalmente un helper di 45 linee
per impostare la classe assicurandosi
sono state copiate le catene prototipo
tutti i dati statici che hai definito
in realtà copiato e così è quello che quelli
sono quindi e posso dire
hmm
va bene andremo questo giro qui
piuttosto che avermi fatto il debug
ci andiamo così vedrai la nostra classe noi
in pratica chiamiamo il super con XY così
costruttore apparente e si vede che
tipo di implementazione nel codice in cui ci paghiamo
il super come argomento e andiamo avanti
e chiamalo così che è un po ‘come noi
gestisci le classi che hai visto interfacce
potresti dire okay, è fantastico
sei tipo di copertura del browser II tipo di
roba ma cosa succederebbe se davvero lo facessimo
qualcosa con questo in un nodo facciamolo
in realtà guarda così se dico file
nuovo o effettivamente aperto file scusami e
ho intenzione di aprire un file che sto per
selezionare il server su TS e questo è veramente
Semplicemente conosci l’implementazione del nodo qui
mi sta dando un errore qui perché
mi sta dicendo che ho bisogno di compilare
la bandiera del modulo dash che faremo
qui tra un momento questo è il riferimento
al file DTS del nodo e quindi se i
effettivamente guardato per esempio creare
il server ha fatto clic su di esso sono stato io
so se lo mostro davvero, quindi lasciami fare
in realtà mostrarlo va alla definizione qui
è il no DTS e mi mostra per creare
server i diversi server di creatività
sovraccarichi bene ce n’è solo uno così
crea il server qui e gli argomenti
che ci vuole, ecco dove è la battitura
le informazioni provengono da e come è possibile
vedi sto lavorando sul nodo qui se lo sei
familiarità con la nota posso solo dire HTTP
punto e ottengo ottenere il completamento che è
abbastanza carina, quindi puoi usare a
un paio di approcci diversi
modulo due moduli comune GS o uno di
l’AMD si avvicina ho anche un cliente
che ho creato qui ho intenzione di andare
avanti e aprilo velocemente è un file
mentre sono qui, lo afferro
directory copia quella directory e io sono
andando ad aprire la fuga con questo
comando aperto e ho intenzione di aprire ciao
a TS
ci andiamo bene quindi guarderemo
entrambi quelli essenzialmente il cliente
importa il codice che ho appena scritto nel
server crea un istante quel server
e ascolta sulla porta il server se noi
effettivamente guardato alla sua attuazione
va avanti e ascolta e invia a
messaggio indietro e fa eco al messaggio
è stato inviato così e se si guarda il
vai a comandare in fondo è solo un lotto
file ed esegue il compilatore dattiloscritto
gli assegna il flag modulo per GS comune
e poi percorsi dove non ho GS
installato e viene eseguito in modo che in realtà
dai un’occhiata a quello oops così un cd in onda
per prendere quella directory oops più io
chiuso lì andiamo io vado a prendere
questa directory qui e ho intenzione di
incollalo lì, siamo stati davvero
utile se avessi fatto un CD di fronte a quello
va bene quindi sono in questa directory lì
è solo per dimostrare questo inizio a GS sono
andare avanti e sbarazzarsi della GS
file che sono lì solo così puoi vedere
che ciao dalla distanza che sei
sedersi potrebbe essere difficile, quindi i file GS
se ne sono andati ho intenzione di andare avanti e correre
Compilatore dattiloscritto di tsc solo così è possibile
vederlo con i suoi argomenti della riga di comando
bene ho intenzione di andare avanti e correre andare
e quello che vedrai è che in realtà
compilerò il mio progetto e ascolterò
porta 1337 così ora se lo colpisco da
il mio sistema qui vede qui localhost 13-3
quindi sono stato qui prima ovviamente e
yay org che è bello in modo che possiamo utilizzare su
il client possiamo usarlo sul server
la squadra di Monaco che ho citato ha un
implementazione che viene eseguita sul nodo su
il server ha un mucchio di codice che è il suo carico
nel browser hanno lo stesso codice
base ma in realtà vengono compilati con
Flag AMD per il nodo GS stuff che viene eseguito
sul server corrono con il comune
GS flag sul client, quindi ce ne sono alcuni
stesso codice base due diverse compilazioni
che è una specie di uno
un modo per gestirlo ok, quindi vado a
uccidere questo ragazzo tutto bene così ultimo ma non
meno importante è che potrebbe essere interessante
effettivamente dare un’occhiata a un esistente
progetto e quindi potrei dire di nuovo
progetto ho intenzione di creare un vuoto
asp.net web project chiamalo vai a con
certo perché non ora non salvi quelli che sono
sto per dire che è un progetto vuoto
quindi in pratica ho le ossa di un io
avere una soluzione se si ha familiarità con
studio visivo Ho una soluzione
fondamentalmente è proprietà nei riferimenti a
librerie in una configurazione web e c’è
nient’altro in esso andiamo avanti e
importa un esempio molto semplice, quindi sono
andare a farlo era il controllo ulti bene io
probabilmente dovresti mostrartelo così se tu
tasto destro puoi dire che voglio aggiungere un
nuovo codice o elementi esistenti aggiungiamo
alcuni articoli esistenti quindi è una specie di a
super breve scenario di oh ho
progetto esistente ho un esistente
progetto che in realtà voglio versarlo
finchè qui vedrai che ne ho uno
fantastico dove venire
Ho un super semplice non ho bisogno del
File TS Ho bisogno della pagina HTML come
bene, quindi porto questi ragazzi così
qui ho un super super semplice
pagina web, quindi includo il mio
JavaScript un file JS e fondamentalmente
è per il calcolo dell’indice di massa corporea così
altezza e altezza in pollici e peso
in sterline così solo usando un po ‘di molto
semplicistico nessun foglio di stile o altro
chi ne ha bisogno in un giorno come questo allora
abbiamo effettivamente il file JavaScript JS
vedrai che ha fondamentalmente due
funzioni ha fondamentalmente due funzioni
in esso le due funzioni sono una cosa sola
calcolare il BMI e un secondo che
è quello di prendere l’input fondamentalmente farlo
convertito e impostare il risultato e
visualizzarlo in un in un tag div che è sul
la pagina va bene, quindi se voglio davvero
dattiloscritto 25 questa cosa posso solo
tasto destro del mouse e posso dire rinominare
e posso semplicemente cambiare l’estensione a
TS e noterai che dice che sei
cambiando estensione e potrebbe diventare
inutilizzabile o sei sicuro di volerlo
cambiarlo lo faccio totalmente e poi dice
hey ho notato che hai un
progetto dattiloscritto ti piacerebbe
fornire informazioni per le librerie così
c’è un gestore di pacchetti di torrone e
in pratica vedrai che sta cercando
per diverse librerie che potrei usare
vedrai il tag dattiloscritto del colon
quindi ecco uno per jQuery sicuro perché no
andiamo avanti e installiamo quello ed ecco
uno per Bing Maps è sicuro che non lo usiamo
adesso ma perché non installarlo e
poi angolare oh c’è un altro popolare
quelli che usano angolare potrebbero usare alcuni dei
roba vincolante che fanno in angolare
sono stati gentili, quindi cosa farai
vedere è che ora ho uno script
directory e nel loro angolare e
noterai che ha DTS così
essenzialmente ciò che sta fornendo c’è
le descrizioni per il tipo
definizioni per angolare e se io
guarda il mio progetto qui lo vedrai
in realtà mi sta dando alcuni avvertimenti
a destra di tutto quello che dice
quella
non super doloroso ma il valore della proprietà
non esiste sul tipo elemento HTML ok
è bello sapere che non siamo tutti in HTML
elementi quindi posso semplicemente dire il valore del nodo
e diventa di nuovo felice e poi io
potrebbe davvero venire qui e dire hey
sai che mi piacerebbe chiamare questo ragazzo e io
piacerebbe davvero sapere il fatto
che sto passando un numero e quello
questo ragazzo prende anche un numero e in effetti
tutta questa faccenda restituisce un numero okay
non è carino, quindi fondamentalmente
corre lealmente Lintz sotto le coperte
più tutte le orecchie sono fantastiche
Sono davvero contento di questo, quindi è così
in realtà tirando dentro per qualche motivo io
non ha configurato correttamente questo progetto
tirando orecchie addizionali dal
le librerie sono aggiunte che è veramente
fantastico quindi sto per finire la discarica
quei ragazzi veloci
certo dovrebbe ridurre il numero di
errori in ogni caso, in realtà posso farlo una volta
Ho fatto che posso effettivamente eseguire questo
quindi se seleziono la pagina HTML e facciamolo
basta impostare un punto di interruzione qui per divertimento
vedrai un paio di cose prodotte
una cosa che noterai è quella
al momento non sono un file GS I
non pensare che ci sia mostra tutti i file
al momento non è un file GS in
questo progetto se vado avanti e faccio il
costruisci quello che vedrai è che crea
un progetto GS per me crea un file GS
per me e in realtà è così
viene eseguito crea anche un file di mappa
e in quel file di mappa effettivamente viene mappato
tra il codice dattiloscritto che hai e
cosa è stato effettivamente generato e cosa
ciò che ti lascia in effetti fare è essere
in grado di eseguire il debug è fantastico 74 anni
Wow più e più di linee di codice per
mi sono liberato anche di questo
va bene e c’è il mio progetto e se io
inserire i dati qui penso a un punto di interruzione
ovviamente questa è una bugia che non lo so davvero
pesa 160 sterline ma sai quando sono
essere registrati diciamo che lo sono
in realtà davvero super sano e lo farai
vedo che effettivamente passo attraverso il
debugger posso vedere che in realtà no
ottenere un valore da quel campo di testo per
qualche strana ragione e come ho detto c’è
in realtà una mappa che mappa il tuo codice a
digita gli script in modo che il debugger possa
in realtà corro così lasciamolo qui prima
il gong colpisce così è il dattiloscritto 100
lo studio individuale è integrato proprio come
C sharp e VB continuerò a farlo
lo spedisco anche con lo studio visivo
disponibile per il download e
l’inclusione nei tuoi strumenti potrebbe essere questo
i tuoi strumenti preferiti lo supportano già
abbiamo visto una lunga lista di strumenti
effettivamente supportarlo nel PDF che
avrai con la sessione ce ne sono alcuni
ottima informazione che è disponibile quindi se
hai se hai studio visivo e
qui nel 2013 l’aggiornamento include
dattiloscritto nella casella dattiloscritto onder di
parla di lui è il progettista della lingua
di C e dattiloscritto fa a
grandi chiacchiere su build circa un mese fa
Erich gamma parla molto bene
costruire JavaScript su larga scala
c’è anche un’applicazione in dattiloscritto
dattiloscritto che Lang dot org dove ero
giocando nel parco giochi c’è
dattiloscritto e codeplex se lo si desidera
vedere che aspetto ha la fonte o fare una
la forchetta o una richiesta di pull ci sono
sicuramente digitare per uno dei più popolari
librerie che potresti usare e poi
c’è quando Jess che è un altro aperto
offerta sorgente per Microsoft che è
essenzialmente Windows nell’API di Windows
disponibile tramite JavaScript è così

Please follow and like us: