Press "Enter" to skip to content

GOTO 2015 • Swift: New Paradigms for iOS Development • Marc Prud’Hommeaux


quindi ci piacerebbe il tè ora questo
mattina papito qui oggi che è molto
linguaggio
quindi con la riduzione del peso il mio nome è Marc
de Vaca codice di scrittura in qualche forma o
un altro per 30 anni con cui sono cresciuto
visto e logo e poi evoluto in
Pascal e alldata hanno chiamato un divertente tappo
giorno per vedere un c ++ e perla e mosso
attraverso il mondo java e vecchio più acuto
esporre vedi la retina lì per vedere
e poi ho iniziato a lavorare su spin
e ho scritto e preso non corrisponde
per mac e iOS
quindi la risorsa funziona su di te
capacità al mondo la migliore serie web
l’anno scorso la conferenza degli sviluppatori Apple
WWDC di nuovo in cui valeva la pena di dati
che è uscito dal popolo britvic 10
non poteva essere finalizzato fino all’estate di
l’anno scorso e la versione che erano in corso
in questo momento quello che ti ha portato lì era ancora a
persone di lingue molto giovani per cui scegliere
show dance con chiunque qui in realtà
Virginia era con uno due tre quattro
cinque
diciamo che l’attenzione è così mobile
iniziare con una vera resistenza
panoramica di alto livello della sintassi Swift
e come è simile a
quindi ho intenzione di presentare attraverso il
li leggerò ancora per poterli ordinare
un rapido riassunto della lingua
in realtà piuttosto difficile da leggere nel
luci piano, ma ho intenzione di così in ogni caso
dare lezioni che è molto simile a
classi di lavoro o dei loro sviluppatori java
anche qui ci sono filtri per gli squali, quindi a
pochi così sembrava come un sacco di voi che
sospiri completati fanno finta di essere familiare
con ultimo basato sulla lingua straniera così
la classe junior è la banca e ha
le parentesi graffe di parentesi graffe stanno usando
Skinner da tracciare
lasciando uscire e bloccare il codice che hai
proprietà sulle tue classi e
visualizzatori e hai metodi e
e tu hai tutte quelle cose
fondamentalmente seguendo lo z nu de facto
quel nuovo difetto sarebbe di lunga durata
Di fatto, gli impatti degli standard c ++ saranno a
molto più familiare alle persone che alle persone
chi dicono di venire all’obiettivo-c quello
ha tutte le altre parentesi graffe così per
quegli oggetti vedono programmi là fuori
questo è un rapido esempio di come potresti
implementare la stessa classe nell’obiettivo-c
di nuovo veramente difficile da leggere ma m ma
ha tutte le interfacce e
implementazioni e intestazione separata
aree e se non sembra familiare
non ti preoccupare perché si
probabilmente non dovrò mai sapere nulla
come Swift è il sostituto di Apple
per l’obiettivo-c andando avanti così abbiamo
ho un sacco di programmatori java ec TR
anche qui da dove verrò
qui su fuori farò riferimento
le cose relative dicono javis intatto quando
Parlo della sintassi di Swift perché
quello sembra essere il dominante il
paradigma dominante quindi un avvio molto veloce
Vado a questo è un esempio di a
classe veloce e questo esempio di un Java
classe e sono fondamentalmente linea per linea
identico l’unica grande differenza che
puoi vedere è il tipo in Java e in
la maggior parte delle lingue procede
identificatore e in Swift arriva il tipo
dopo l’identificatore, ecco qua
questo account VAR e seguito da un
array di account in Java hai lista
di conti seguiti da account e a
specifica che è una variabile che hai avuto
parola chiave bar allo stesso modo per funzioni e
metodi che hai
e Java hai il tipo di ritorno è un
pollici e hai questa funzione di tenuta
tutti questi metodi che vanno al
sfida e aggregati e numero di
centesimi nel conto e i ritorni
alla fine quasi esattamente lo stesso con
frusta tranne il tipo segue il
identificatore della funzione ma tu hai
hai trovato alcuni rapporti di fissaggio alcuni
fascino e tu aggreghi tutto
i conti e rendilo così carino
roba standard sembrava di conoscerla
l’auto sembra molto familiare a quasi
tutti qui così sai il grande
differenze l’altra grande differenza è
noterai una mancanza di punto e virgola
e Swift sai che i due punti sono
opzionale ma non richiesto e poi questi
parole chiave di funkin bar e l’identificatore
seguendo il tipo che segue il
identificatore fornito dalla funzione VAR
parola chiave quindi ce ne sono alcuni a
pochi miglioramenti moderni specialmente finiti
obiettivo c hai hai generici
sei in grado di dire che il tuo array è
andando a contenere solo stringhe sono in grado
per parametrizzare i tuoi tipi così sai
qui puoi aggiungere annunci alla mia lista di
stringhe ma non è possibile aggiungere un debito a
questo è in realtà nuovo per l’obiettivo-c
programmatori ovviamente il resto del
mondo come le lingue compilate ha tempo
da quando è stato adottato un generico, hai il tipo
inferenza quindi piuttosto che dover dire
sai bene c’è un certo numero di tipo
int N è uguale a 1 array di stringhe
il dizionario di stringhe per raddoppiare
basta dire na uguale a 1 stringa come array di
aree colpite di serie di valori così
digitando abbastanza bene per ogni volta in a
mentre la sua rottura che si rompe o
è lento in modo da poter sempre optare per tutti loro
messo dal tipo ma per la maggior parte
non è mai richiesto di avere optionals così
se si desidera consentire ad un valore di accettare
null o mulino nel linguaggio di Apple voi
basta specificarlo con il punto interrogativo
è normale qualsiasi tipo può essere un
tipo opzionale per cui dici di dare il tipo
di questa è una stringa da seguire con a
il punto interrogativo sarà incolto o lo sarà
essere mondi o se sai se io non te
non posso assegnarlo a zero quindi è carino
fantastico per le persone che siamo stanchi
delle loro eccezioni del puntatore nullo, lo farai
mai ottenere
Non capirò mai quel problema e anche tu
avere qualcosa di abbastanza veloce abbastanza veloce
accesso di null senza dover
noiosamente passiamo attraverso e controlliamo ciascuno
il valore individuale per null puoi dire
va bene il proprietario del conto no e
se non poi passare attraverso il deposito di
il conteggio e se non poi ottenere l’importo
quindi otterrai un valore int tale
il valore potrebbe essere nullo se qualcuno di quelli
i valori intermedi non erano ma se lo sono
non allora puoi procedere anche a notare
non senza parentesi attorno tutto il
se affermazione hai due poli Swift
introduce un sacco di nuovo tipo come io
mostrato prima di avere il tipo di classe
ma hai anche due poli che sono a
uno o più valori istantanei in modo che tu possa
hai due int puoi avere due stringhe
puoi avere un sacco di cose diverse
le tuple sono eterogenee, quindi dai
avere una stringa doppia e un account o
qualunque cosa tu voglia, così come con
tutti i twit prima che possiamo digitare le tuple possono essere
usato come argomenti per funzioni o ritorno
valori da funzioni che tutti i tipi possono
essere mescolato con tutti gli altri tipi così tu
sapere che le funzioni non sono limitate a
prendendo solo singoli oggetti o
primitivi possono prendere e restituire a
sia la prossima parte interessante sono le enumerazioni
la numerazione zar è una caratteristica piuttosto potente
di Swift che è un argomento abbastanza ampio
ma li hanno anche loro in grado di farlo
enumerare i singoli valori separati voi
può anche avere oggetti associati di
enumerazioni e hai una ricca serie di
abbinamento di modelli che può essere fatto
con loro hai funzioni funzioni
sono ciò che ti aspetteresti quando loro
esistono all’interno di una classe, quindi lo sono
solitamente indicato come metodi, ma
le funzioni possono essere gratuite o possono essere
possono essere tu puoi essere costretto
all’interno di una classe e puoi effettivamente averlo
funzioni che contengono altre funzioni
Lo mostrerò a breve
quindi le funzioni possono anche avere un valore predefinito
i parametri che possono avere possono avere
parametri con nome così non hai
il problema dove quando hai 50 anni
argomenti non si sa ciò che il
argomenti a cui puoi usarli
comporre le funzioni di ordine superiore a
la funzione può accettare una funzione è lì
un argomento o retrocedere i risultati come
una funzione sono molto potenti che puoi
anche per alcuni, funzione coreana
insieme limitato di funzioni che è il
capacità di una funzione di essere parzialmente
applicato in modo da poter chiamare il primo
l’argomento di una funzione lo assegna a a
variabile e poi chiama successiva
argomenti successivi quindi questo è uno di
i primi esempi di avere Swift è un
multi-paradigma del linguaggio multi-paradigma
è un po ‘come un termine generico
questo significa che ci vogliono alcune idee
il mondo accademico dal più
lato della programmazione funzionale di ciò che è
sta succedendo adesso e lo integra
con l’industria più dominante
mondo orientato agli oggetti quindi Java è un
linguaggio aggressivo orientato agli oggetti C
sharp è un po ‘meno aggressivo
perché ha un supporto molto più carino
pignoramenti e e cose simili
quell’Obiettivo C si è mosso lentamente
dall’allargamento dal
mondo imperativo orientato agli oggetti per a
mentre molte di queste idee hanno
evoluto in Swift e nel primo
esempio di un paio di esempi che hanno
di come sia un multi-paradigma
linguaggio che hai anche ad hoc
polimorfismo che è spesso noto come
sovraccarico dell’operatore in modo da poter avere
operatori che sono passivi di classe
funziona con due cose che mostrerò a
un rapido esempio di ciò quindi ecco un
esempio di una funzione e tutto questo
la funzione richiede due stringhe e
prende s1 s2 e restituisce un valore booleano
valore e ciò che sta tornando è se
o meno la prima stringa è inferiore alla
seconda stringa che è inferiore all’operatore
è di per sé una funzione che sta dicendo che va bene
questo ho intenzione di confrontare in ordine alfabetico
e se il primo è a è inferiore a
Ho intenzione di tornare vero altrimenti lo farà
return false e quindi hai questa matrice
il tipo di pelliccia ci sta dicendo che questo è un
array di stringhe e puoi ordinare il file
array e ciò che si passa è
ordinato prima di quale è la funzione
ci troverebbero lì che è un esempio
di come una funzione sia essa stessa a
prima classe
puoi prenderlo puoi trattarlo come un
variabile puoi passarlo lì dentro
puoi passarlo ad altre funzioni che puoi
sarà davvero poco vestiti sopra il
variabili d’ambiente quindi se hai un
funzione dove c’è una variabile
definito sopra lo conserverà
proprietà che raggiungerà il possesso di
quella variabile per tutta la vita
con la funzione che potrebbe svenire
dell’ambito locale che puoi definire
funziona in linea quindi questo esempio dove
piuttosto che avere una funzione separata
là fuori e passando in questi ricci
bretelle e poi questa piccola sintassi divertente
dove sto dicendo che questi sono i due
argomenti che sto portando alla spada
funzione e quindi tutto ciò che faccio è l’esatto
la stessa cosa di prima è un passaggio nel
se s1 sia o meno alfabetico ma
ha bisogno di s2 e poi tornerò con il cane da mucca
coda di cane e per andare ancora più lontano possibile
trattano effettivamente l’operatore stesso come a
funziona così così questo è un operatore che
è definito per due stringhe utilizzando ad hoc
polimorfismo per dire ok, qual è il
qual è il parison elettrico di questi
due stringhe posso solo passare qualsiasi argomento
qualsiasi operatore che accetta a due di
qualunque valore sia inserito nell’array e
restituisce un booleano e posso usarlo come
il mio argomento per ordinare in modo da poter definire il mio
proprio cosa pazzesca che mette a confronto solo il
numero di lettere nella parte in
array e in questo caso sarebbe uguale così
e l’ ultimo valore tipo di valore aggiuntivo
quello che definisce sono camion immutabili
e questa è una caratteristica davvero eccitante
e la funzione che sto per fare
concentrati per il resto di questo
parlare e poi ci sono un sacco di altri
caratteristiche ci sono controllo degli accessi
potrebbe avere metodi protetti privati
utilizzando il namespace in modo da poter avere il tuo
proprio modulo in un singolo spazio dei nomi di nuovo
qualcosa che il resto del mondo ha
lo ha avuto per molto tempo, ma è nuovo a
obiettivo-c sì, ponte verso l’esistente
librerie oggettive-c è davvero
sono importanti tutte le librerie di Apple
scritto in obiettivo-c che hai
conteggio di riferimento automatico che è
come la gestione automatica della memoria, ma non
abbastanza buono ma molto GC ma molto
Più veloce
avete protocolli di interfacce che chiamano
loro un’interfaccia Apple li chiamano
e vedi e il feesh sono fondamentalmente
dicendo che qualcuno dei miei tipi di valore sta andando
per conformarsi a questo contratto che tu
definito hai categorie che è
fondamentalmente prendendo lezioni e aggiungendo cose
ad esso senza dover sottoclasse e
ha un sacco di altre funzionalità e queste
conosci molto bene
Introduzione di Apple ai video Swift che io
Incoraggiamo caldamente chiunque a cui guardare
WWDC meno qui sono un po ‘
datato alla lingua stessa è cambiato
un po ‘da allora ma nel complesso è davvero
è davvero un riferimento fantastico e
ci vuole solo un ora due sonnellini
guardare così è stato un super veloce
panoramica di Swift da circa 10.000 piedi
è un linguaggio davvero accessibile
soprattutto per le persone che stanno arrivando
l’ecosistema delle mele per la prima volta
alcune altre lingue hanno davvero familiarità
La sintassi di stile csharp di Java lo troverà
davvero facile da mettere in piedi e funzionare
con esso trattandolo come una routine
auditorium per la lingua che è
perfettamente bene molte persone lo sono
scrivendo il culo le loro app in questo modo
adesso ma quello che sto per fare
concentrarsi su adesso è il tipo
di cui non ho parlato molto su quale sia
il supporto di valore immutabile che Swift
così definiamo le nostre definizioni ute
significa usabilità e immutabilità
può cambiare qualcosa di immutabilità
significa che è immutabile tutto
le lingue hanno un certo grado di
immutabilità ad esempio in Java è possibile
dichiarare un velo di variabile come finale
significa che non sarai in grado di
cambiarlo da lì in avanti e vedere il
contro e tu conosci gli altri obiettivi
opticon in Swift dichiari qualcosa
come mutabile se dici che è meno così
c’è una parola chiave VAR che dice questo
può cambiare, lascia vuol dire che non può
cambia così più che non ti è permesso
per farlo se dichiari a sinistra così
colpisce essenzialmente il primitivo
non è esattamente come te
ti aspetteresti che nel
in altre lingue e questo è fondamentalmente
mutabilità quindi parliamo di valore
tipi quindi una struct è un tipo di valore come
opposto a una classe è il tipo di riferimento
un tipo di valore non è condiviso potrebbe sembrare
come uno sceriffo non è in realtà condiviso
tra più proprietari quindi l’unico in assoluto
un proprietario di tipi di riferimento del tipo di valore
sono condivisi al contrario che una classe può avere
più persone che lo possiedono correttamente
ora e più persone sono
interagendo con loro così in Java alla fine di
le lingue c’è una distinzione
tra primitivi e oggetti anche
anche se le persone doppie chiamano tutto
l’oggetto non è proprio vero che hanno
primitivi e primitivi si comportano nel
allo stesso modo in cui la nostra intuizione si è evoluta
aspettarsi che si comportino in cui sono stato
oggi l’ ho firmato a 42 e poi a me
avere un altro int che ho firmato per I e
poi incremento II cambia quello che Jay
non è solo così
il setto funziona in tutte le lingue
Ho mai usato qualcuno che abbia mai sentito nominare
una lingua che non funziona con te
ho avuto il puntatore a un I posso vedere
allora puoi cambiare il valore sottostante
ma non puoi davvero cambiare puoi
in realtà cambia I in un modo condiviso
ad altre persone allo stesso modo ne hai un po ‘
grado di immutabilità per gli oggetti così
per le classi puoi sapere qui
avere un animale e assegnare il cibo al
animale
quindi dici che ho un animale finale qui
e puoi assegnare bday e cose del genere
che puoi cambiare il sottostante
proprietà di chiamare animale
immutabile non ne fa magicamente nessuno
le proprietà interne di quelle cose
immutabile forma di una forma superficiale di
immutabilità ciò che la finale dice è quella
essere o un non può essere riassegnato a nulla
quindi una volta che l’hai assegnato subito
non essere autorizzato a cambiarlo così è
tipo di aa livello molto semplice a
forma di gruppo di immutabilità e interruttore
funziona esattamente allo stesso modo con il loro
tipo di riferimento con le loro classi con
i loro oggetti quindi se dico ok, lascia che sia
un nuovo cane animale e quel cane ha un tipo
questa è una forza e io dico lascia B
è uguale a così b è ora lo stesso animale I
cambiato il tipo di B ora cambio il tipo di A
a mucca e poi il tipo B sta per
cambia la mucca come te
probabilmente lo aspetteresti
ecco la classe e qui c’è una struttura
e l’ unica differenza tra questi
due cose sono le classi di parole chiave e
le strutture sono intenzionalmente progettate per
sembra molto simile per cui è ottimo
essere in grado di provare a saltare dentro
tra loro due ma è quasi
ingannevole in quanto si può vedere al
molto in basso il comportamento è estremamente
diverso se ho una variabile animale
colpito e assegno b giorno e cambio
Il tipo B cambia tipo
non cambia magicamente da sotto
tu lo è è è essenzialmente copiato
quando hai cambiato i compiti così
abbiamo i tipi di valore e abbiamo
i tipi di riferimento e le somiglianze
tra i due sono che possono entrambi
contiene proprietà in altri campi
o elementi che possono vedere i metodi che sono
chiamate funzioni e twist ma sono
essenzialmente metodi che non possono avere
inizializzatori possono comportare un protocollo
implementiamo interfacce ma a differenza
classi che non possono ereditare da ciascuna
altro quindi il mio animale di classe non poteva
non hai un’idea intrinseca quindi un oggetto
in grado di confrontare se bloccare o meno
le porte sono semanticamente uguali
usando qualunque cosa accada nel tuo laboratorio
forniture come a cade la mia chiave
Java e protocollo disponibile importante
vedere efficace ma oltre ad avere
uguaglianza semantica hanno altri linguaggi
il documento di identità intrinseca il
qualità così tua oltre a cercare un
puntatore in Ottomani puoi fare un lavoro
in tutto il paese non c’è
interessante in qualsiasi pacchetto di valori è
come dire era l’identità il
l’identità è definita dalla valle a
che Valentine contiene o dal set di
una foglia o struttura di melone compiuta
e distruzione altri tipi di dati non lo sono
condiviso tra tutti coerenti e loro
sono la mancanza di condivisione che li rende adatti
tutti gli Stati Uniti vs in bello così fai
quel giorno è bello questo è quello
sto facendo qui è una distruzione, facciamolo
è bello e creare un nuovo
cane animale che posso collegare un pisolino così
quanti modi in cui si lascia esattamente
lo stesso come un int voi
cambi di nuovo in realtà non lo sei
cambiare l’unità sottostante 440
tonni del numero intero in cui sei in realtà
cambiando il tuo vero ricopia di
invertendo ad un altro infortunio lo stesso
cosa succede con il tempo del tempo
avere una gerarchia di valori individuali
e ogni volta o qualsiasi tipo di decisione
lì copia una copia così il tuo esempio di
un po ‘ma non leggere questo ok quindi diamo
un po ‘più in profondità qui come
abbiamo un scratcher posteriore e tu hai un
elenco degli account che non mi resta che
addizionale in un forno a microonde di tutto questo
holding di funzioni e tutto ciò che sta facendo
è questo usando cuochi tipo di fantasia
malattia ho detto andare 3-2 il conteggio raggiunge
i conti tornano al numero di centesimi a
la città e poi ridurla o piegarla
aggregando insieme è essenzialmente a
un modo di dire a una sola riga quasi
finendo maleodoranti
insieme al ritorno il risultato attuale
e poi ho questa struttura dell’account
che ho definito che è il conto stesso
conta come due campi ha un odore e il
numero di 10 così ho bisogno di tornare e
esercito creativo di coccole, mi aggiungo al
elenco dei ragionieri banca altra copertura
Dave più sicuro grazie e poi noi come
attivo e controlliamo le partecipazioni del
e hai l’appendice in basso e poi
i record conti della banca al
molto primo indice Dustin penny dal mio
dalla mia schiena perché era il letto
e cena a cena e Men Holden’s
ha introdotto i portacolori in generale con
li ha introdotti in modo da poter avere un molto
risultati sorprendenti che sembrano molto belli
Volando prima lacrosse potrei anatra faccia
in questo modo una banca arriva in Europa qualsiasi cosa
le disponibilità bancarie di esso se invece io
calciato da 81 che ho aggiunto registrare il
conti bancari che dovrebbero essere esattamente
gli stessi conti bancari dell’Europa
l’attività negativa ha un senso improvviso
le disponibilità bancarie rimangono invariate è ancora
quel 1050 quando dovrebbe scendere a
senza e questo è piuttosto ingannevole
da somiglianze sintattiche sabbiose tra
classi questo processo può essere per alcuni
grado di contusione ma è molto
conveniente in particolare molto potente
l’ accesso per sintassi che loro
a condizione che menzioni prima dell’argomento
di sorgenti di estasi di cui fa riferimento
tipi progettati per stimolare il tipo di valore
quindi sembra che siano belli ma
non sono solo classi come
qualsiasi altra cosa tu sia questa classe
tutto il loro casino è definito in modi
che lo impediscono dal sottostante mutato
forza ma il cervello dell’Alleanza è un
singolo minuto in mare ed è solo un
puntatore a una serie di unità
i valori conosci l’altra linea
comunicazione potrebbe in teoria essere
cambiamo siamo le molle di Swift che sono
veri e propri tipi di riferimento o
implementato come colpi in un’ambasciata
devo tagliare un mucchio di licenza di fondazione
hai scritto che hai una rabbia e tu
avere dizionari questi sono la palla
in 25 anni lo farà
la prossima data è per questo che tutto il
standard e questi sono tutti in uno è
meno ha reimplementato un sacco di quella roba
per la loro fondazione separata
libreria così lo script è costruito da solo
libreria standard e si integra con
il linguaggio oggettivo c che puoi usare
le molle oggettive che ottengono il tuo
classi o molle veloci uso dello scanner
quale articolo nei suoi tipi di riferimento e
ha lo scoppiettio sul valore
è Rebecca tutto in questi boschi
vicino alla biblioteca è istruttivo ce ne sono alcuni
classi nominali ma per lo più non lo sono
quelli dell’utente finale utilizza tutto
c’è tutto il vostro raise suo dizionario
otto imposta la molla sono tutti valori
e così arrivano così profondamente
copia semantica passi un array trenker
di danza o qualsiasi altra cosa a una funzione di
quella funzione aggiunge qualcosa ai dati
pronto e poi tornare al chiamante siamo
pronto a fare ora non lo farà
in realtà diverse lingue diverse
avere modi diversi di fare cose come
proibire le collezioni da modificare
come in Java hai una collezione
elenco non modificabile penso che tu abbia il
stessa cosa in c-sharp anche se penso
potrebbe esserci una sintassi più bella in
obiettivo c hai lezioni parallele
hai nsstring hai NS mutabile
stringa di array NS e anitha mutabile
array in Swift hai dichiarato a
elencare come costante nel qual caso lo farà
sii conosciuto immutabile o dichiari il
variabile nel qual caso sarai in grado di
mutilo localmente ma nel no
circostanze in cui si passa una scala a
elenco di stringhe o un elenco di qualsiasi cosa o
un dizionario di qualsiasi cosa a un altro
funzione sarà quella funzione in grado di
mutila ed è un vero fondamento
fondamento molto potente su cui
sfruttare il proprio uso dei tipi di valore
perché tutti i contenitori integrati che
userete per quelle cose
andando ad essere conforme a quello
semantica dell’immutabilità quindi cosa è
ciò che effettivamente è il vantaggio del valore
tipi che in realtà non ho ottenuto
Ho appena parlato di come si comportano
quindi ho intenzione di andare oltre quello che credo
essere i quattro principali vantaggi pratici
benefici per l’utilizzo di tipi di valore
sono comprensibili sono testabili
sono paralleli e sono così portatili
prima di espandermi troppo sono tipi di valore
Voglio fare un passo indietro e dire che lo sei
non scriverò mai il tuo intero
app che usa puramente valori non lo è
questo non è haskell, non è vero
adottare un approccio completamente funzionale a
app perché eseguire per creare un
applicazione mobile o per il
desktop e mac
devi integrarti con le classi e
questo significa che devi sottoclasse gli altri
classe e cose così così alcuni
la percentuale della tua app è sempre in corso
usare i tipi di riferimento e questo è
sarà vero per il futuro inevitabile
ci sarà X percento che è un
questo è un riferimento in y% che può essere un
valore ma quello che puoi fare è che puoi
compartimentalizzare le aree del tuo
applicazioni e li implementa puramente
come gerarchie di tipi di valore e il
il posto logico per fare questo sarebbe dire
il modello della tua classe come se tu avessi
un modello di documento che puoi serializzare
e salvare è un ottimo punto di partenza
pensando a come può essere
implementato come una serie di valori
piuttosto che una serie di riferimenti
ma è un non è limitato in alcun modo
alla modella è solo che spesso è il
posto più intuitivo che piace alla gente
inizia a pensare così qui dentro e io sono
iniziare a utilizzare il termine modello per
significa la parte della tua domanda
questo è scritto puramente usando i tipi di valore
così per superare la mia tangente tornerò
per il valore dei valori prima di tutto sono
comprensibile e che cosa intendo per
comprensibile è che i valori possono essere
pensato come dati mentre gli oggetti possono
spesso è pensato come una combinazione di
dati e comportamento in generale se
hai un modello basato sul valore puro
eseguire operazioni su quel modello è
non avrà alcun effetto collaterale con
il resto del tuo sistema che è
fantastico per essere in grado di ragionare
il tuo codice perché sai che nessuno
è in grado di andare per essere in grado di
cambia un valore che possiedi, non importa
quale altra parte del tuo sistema passi
in giro in modo da non solo avere sicurezza
hai la capacità di ragionare di più
chiaramente sul tuo codice perché lo sai
che le cose non ne avranno
effetti collaterali quando li passi in giro
se hai un modello di un account e tu
passa a qualcuno che non devi preoccuparti
che stanno per rovinare il proprietario
o qualcosa in nella funzione che
hai chiamato e poi lo hai recuperato e
tu e tutto ad un tratto lo stato ha
cambiato in qualcosa che tu sei
confuso e turbato da e questo
la comprensibilità porta alla testabilità
quando hai una specie di isolato
Rete
di tipi di valore e molto facilmente eseguito
eseguire casi di test su di esso perché tu
avere una parte compartimentalizzata del tuo
sistema che è isolato dal resto
di esso in modo da poter avere interi moduli
sono sequenze di valori e puoi
hanno interi casi di test che stanno eseguendo
indipendentemente da qualsiasi tipo di chiusura
sovrastruttura in modo da non dover
preoccuparsi di fare cose come beffarsi a
server solo così puoi sintetizzarne alcuni
valore di connessione sottostante nel tuo
modello non è possibile avere uno di
quelli perché non lo farai
utilizzando qualsiasi tipo di riferimento nel modello
rete in modo da poter essere sicuri che il solo
le cose che potrebbero rompere i test sono
cambiando i test stessi o il
modello che è davvero buono per mantenere
il tuo sistema diviso in individuo
componenti isolati che è di per sé
fantastico per mantenere la complessità di
il tuo sistema da spirale fuori
controlla un sacco di volte in cui sai quando
quando le applicazioni di riferimento e
i sistemi stanno crescendo iniziano
abbastanza semplice e una sola persona può
motivo su come tutto sarà come
flusso e come cresce e come una rete
diventa più aggrovigliato e spaghetti
come diventa sempre più di un
una battaglia in salita e tu sai che ho guardato
in passato molte applicazioni crescono
germinare da cose molto piccole a molto
grandi cose e basta vedere il
percentuale di tempo che la sua creatività
contro la manutenzione solo ridursi al
sai che stavo lavorando a
Oracle per un po ‘e così tanti
quelle applicazioni sono solo novantacinque
per cento delle volte le persone stanno cercando di
risolvere i problemi e cercare di mantenere le cose da
far saltare in aria la testabilità è davvero
importante e lungo le stesse linee di
le strutture di testabilità sono intrinsecamente
parallelamente puoi passare qualsiasi parte del tuo
modella su qualsiasi thread e non hai
preoccuparsi sempre che non ci sia alcun tipo
di condizione sollevata o di chiunque passi
su qualsiasi suggerimento perché due persone
non puoi possedere lo stesso oggetto ora che fai
bisogno di ripensare a quello che stai andando
a come farai cose che farai
usare funzioni molto più pure dove
si passa in un tipo di valore che si esegue
qualche mutazione su di esso e tu lo passi indietro
o nell’esempio del codice multi-thread
tu spedisci qualcosa usando una mamma
parametro si esegue una serie di
operazioni su di esso o calcoli e
quindi i risultati di quel modello che poi
viene passato in una specie di sai
meccanismo di callback in opposizione al passaggio
un puntatore a qualcosa che si aspetta il
cosa per operare su quel puntatore e
quindi solo essere in grado di accedere al valore
direttamente quindi c’è molto a
diverso modello di programmazione che viene utilizzato
quando paralizzi il tuo specialmente
quando paralizzi il tuo modello ma dentro
generale con tipi di valore ma il
i benefici non sono più fantastici
Devo ragionare su discussioni e tutto
i problemi relativi con
sincronizzazione e serrature e e
le prestazioni multi-threaded stanno per
essere l’unico modo in cui i computer sono
diventerà sempre più veloce nel
nel prossimo futuro non possono fare il processore
più veloce in modo che migliorino nel complesso
prestazioni aumentando il numero di
processori e ciò significa che l’essere
in grado di scrivere robusto e veloce
il codice multi-thread è solo essenziale
per molti campi della concorrenza
applicazioni e l’ultimo è
portabilità ora non voglio dire io
non intendo comunque implicare che Swift sia
stesso portatile oltre a te lo so oltre
in esecuzione su Mac e iOS che non lo fanno
esiste su Linux ed esiste su Windows e
è molto improbabile in qualunque momento presto ma
ciò che significa è l’isolamento di a
rete di valori porta a una sorta di
portabilità intrinseca perché puoi essere
molto fiducioso che puoi serializzarlo
fuori e puoi tradurlo puoi farlo tu
sappilo mandarlo per dire il tuo server di nodo
come JSON o puoi puoi caricarlo
per piacere al tuo Scala conosci il server o
qualcosa e sto lavorando a un sistema giusto
ora sta facendo esattamente questo ed è un
piacere di lavorare perché puoi farlo tu
sai se stai lavorando con altri
lingue che hanno qualche supporto per
tipi di valore come le classi di casi di Scala
puoi davvero andare avanti e indietro
tra i due i due sistemi
con molta facilità e puoi evolvere
il tuo modello con un sacco di questi così là
sono molto più intrinsecamente portatili
che usare piuttosto che usare i tipi di riferimento
questo è quello che credo di essere i quattro
grandi benefici che possono avere quei valori
fornire la vostra domanda e per
lo sviluppo va avanti come dico
Swift stesso è una lingua molto eccitante
e c’è un milione di milli
componenti interessanti ad esso ma è
anche davvero molto accessibile che puoi
puoi davvero iniziare specialmente se
hai uno sfondo in Java o C sharp
e puoi sapere come guardare alcuni video
e fondamentalmente inizia subito ma
Penso che la parte veramente eccitante
su Swift è che sta davvero iniziando
per portare alcune delle idee dal
mondo di programmazione funzionale e uno di
quelli si stanno concentrando di più sull’uso
valori immutabili e meno su meno che su
tipi di riferimento, quindi con quello che prenderò
alcune domande se ce ne sono state inserite
tramite l’app

Please follow and like us: