Press "Enter" to skip to content

GOTO 2016 • Model-Minded Development • George Fairbanks


bello essere qui mi piacerebbe iniziare
ringraziando un paio di persone prima di tutto
conferenze per avermi qui e anche
a Simon Brown per l’invito specifico
anche io dovrei ottenere delle scuse dal
in primo luogo perché la traccia di
i relatori qui sono stati molto forti
mi sto divertendo, spero ragazzi
devo e quindi sto solo per dire se
niente ha alcun senso è perché io
dormito seduto su un aereo ieri sera
e anche a differenza degli altri discorsi se dico
qualcosa che semplicemente non ne produce
senso o se io se ti perdo ragazzi
per favore basta alzare la mano e chiedere a
domanda perché preferirei il tutto
la cosa ha senso quindi aspettare fino alla fine
per chiarire le cose va bene così in qualche modo
puoi pensare alla forza di un’idea
in relazione alla tua capacità di
non vedere mai più il mondo allo stesso modo
come una buona idea significa che non puoi
come guardare le stesse cose e e e
e vederlo allo stesso modo di nuovo così io sono
intenzione di mostrare qualcosa che
spero che tu abbia visto molte volte prima
e useremo questo come test
okay e in realtà il test è per me
perché se riesco con successo se io se io
penso che l’ idea sia davvero buona e posso farlo
con successo sai dirlo allora tu
i ragazzi non saranno mai in grado di vederlo
scena nella tua vita quotidiana allo stesso modo
di nuovo bene così la mia domanda per voi e
questa è la parte più facile
cosa stai vedendo qui sì, ma cosa?
le persone stanno facendo questo?
anche si ok quindi ho intenzione di saltare
ad esso posso dire cosa sarebbe questo ciò che io
stava provando a fare era mostrare la gente in a
questo è il software di programmazione del software
persone che programmano ok, donna ok quello era
la risposta è la prima e stiamo andando
per vedere di nuovo questa immagine e io
spero la prossima volta che vedi questa immagine
lo vedrai diversamente da te
all’inizio, quindi voglio parlare
a voi su un’idea che chiamo modello
sviluppo mentale grazie a Rebecca
io per uscire che è un ritorno a un
prima parla così mi piace parlare
i modelli io uso i modelli ovunque non puoi
davvero fare
architettura senza parlare
modelli sembra a posto modelli del
modelli che stai usando modelli di
sistemi che hai, ma naturalmente
usiamo modelli di tutti i tipi di altri luoghi
le persone hanno usato tutti i modelli
modo di tornare indietro di 200 programmi in ritardo
Giusto 60 anni per avere modelli di dominio
provenendo da questo c’è un set specifico
di modelli nella progettazione guidata da un dominio dove
un modo particolare di costruire sistemi ok
quindi non ci sono modelli dappertutto
per menzionare gli stili particolari di
programmando che tipo di incarnare il loro
i propri modelli di come dovresti fare le cose
ok, quindi modella i modelli ovunque così quando io
di ‘ alle persone a cui sono molto appassionato
esprimendo i modelli nel mio codice e
rendendo tutte queste cose visibili e
ne parliamo con gli altri
programmatori non posso davvero usare nessuno
di queste cose individuali, io così solo
voglio un termine generico chiamato modello
lo sviluppo mentale è questo che parla
riguarda e credo che i modelli
dovrebbe essere un’attività di prima classe in cosa
lo stiamo facendo è l’idea generale
dietro tutti quelli specifici ma che cosa
intendo per un’attività di prima classe
immagina che stavi chattando con uno
dei tuoi colleghi e lui dice che non lo fai
davvero bisogno di avere modelli come prima
attività di classe che ha un perfetto perfettamente
processo che usa ogni giorno per scrivere
software che probabilmente ha sentito da
qualcun altro e va qualcosa di simile
questo raccoglie le tue esigenze scrivi a
caso di test sta per fallire modificare il
codice in modo che il test passi e poi
Riformatta il codice per rimuovere la duplicazione
chi ha sentito qualcosa come questo processo
prima di allora quante persone pensano di loro
seguire un processo che è qualcosa di simile
questo ok forse venti per cento persone così
non il primo era come novanta
per cento delle persone aveva sentito parlare
e forse il venti percento la pensa
seguilo bene, quindi la preoccupazione sarebbe a
lo scettico potrebbe dire che il refactoring del
la duplicazione del codice del tetto è la stessa cosa
come lo sviluppo di un modello e
Io vado a cercare di convincervi che
non è proprio la stessa cosa ok così io
penso che abbiamo bisogno di modelli forse tutti qui
pensa che tu abbia bisogno di modelli perché indovina
quello che sei venuto a parlare che ha modelli
nel titolo giusto avresti potuto andare
da qualche altra parte quindi come possiamo convincere
qualcuno che è scettico nel modo in cui io ordino
di sentirsi dire alle persone che è così
se sei in una compagnia
e la tua azienda sta provando esclusivamente
fare tutto il denaro che possono
Un solo giorno c’è una sorta di breve termine
problema a lungo termine proprio nel corto
termine ti stai concentrando su una cosa
ma a meno che tu non abbia il lungo termine in
mente per esempio concentrandosi su RD o altro
degli altri modi a lungo termine della tua azienda
può fallire a meno che tu non abbia un occhio sul
a lungo termine così come a breve termine
sei un po ‘fuori di equilibrio e lo sei
andando a non andare avanti va bene, questo è il mio
gut sentire e non mi sento in questo modo
argomenti molto buoni ma in qualche modo si sentono
così con il software giusto è questo se
Mi concentro esclusivamente sulla consegna
caratteristiche ma non ho questa idea
Sto costruendo modelli su come roba
lavori siano loro modelli di architettura o
modelli di dominio o quant’altro che il mio intestino
sento che stiamo sacrificando
cercando di ottenere qualcosa ma siamo
non ci arriverò perché non lo facciamo
avere quell’equilibrio ok ma non credo
questo è molto persuasivo, lo penso
già funziona solo sulle persone
erano predisposti ad esso così voglio
argomenti abbastanza solidi
ecco come esprimerei il modo in cui io
approccio a un processo software che è
diritto centrico del modello che ha un
versione di prima classe al posto di
passando dall’ottenere un nuovo requisito a
scrivendo un caso di prova, prendiamo invece un
guardare quel requisito e dare un’occhiata
e vedere se sfida nessuno dei
modelli che ho intendo in tutto il
tutto lo stack, sai come sono
fare test nel modo giusto che ho
l’architettura nel modo giusto è questo e
curiosità interessante del dominio che io
non ho visto prima e tu dici guarda se
questo non sfida nulla di ciò che sei
come va bene grande nessun problema vado avanti
e fallo come il vecchio processo e
Lo codice tutto ok ma se lo fa
sfidarlo devo rivedere la bottiglia
okay ha senso ok quindi per
sostenere questo punto di vista ho intenzione di darvi
due argomenti nel corso di questo discorso
e spero che tu possa usarli
spero spero che tu sia convinto da
loro e poi se vuoi convincere
altre persone che usano i modelli spero che tu
può usare queste cose il primo è quello
la programmazione è la costruzione della teoria e questo
forse non è un termine che hai incontrato
era relativamente nuovo per me e il secondo è
quella programmazione è una specie di
cognizione distribuita ancora un altro termine
potresti non aver sentito che sto prendendo in prestito
entrambi questi termini da altri posti
quindi la prima programmazione come
la ricostruzione del vincitore del premio Turing Peter
naur ha scritto un saggio che è fantastico
questo è il paragrafo di apertura e vorrei
potrei scrivere in modo chiaro e conciso
come questo forse se vinco pronunciando una parola io
posso posso farlo o forse mi piacerebbe fare
funziona in senso inverso , leggerò
dovrebbe essere la programmazione delle quote correttamente
considerato come un’attività da cui
i programmatori formano o ottengono un certo
intuizione una sorta di intuizione una teoria di
le cose a portata di mano questo suggerimento è
in contrasto con ciò che sembra essere il
nozione più comune della programmazione
dovrebbe essere considerato come una produzione di a
programma in certi altri testi che è un
scioccante iniziare con un saggio a destra
perché dice che la programmazione non lo è
riguardo alla scrittura di programmi ok quindi scaviamo
in questo e vedere cosa potrebbe questo
forse significa che fa riferimento a un
filosofo che sta cercando di dire cosa fare
intendiamo quando capiamo qualcosa ok
e in realtà è una specie di
domanda interessante e per inciso io
trova le domande filosofiche
nello sviluppo di software tutto il tempo
è davvero sorprendente ma discusso
di sapere che contro sapere come
Immagina di avere un figlio e tu lo sei
cercando di farli capire
Inoltre cominci con questo
proprio loro memorizzano alcuni tavoli ad alcuni
punto che passa alla conoscenza di come
e tu hai una teoria generalizzata di
Inoltre è dentro di te che funziona
attraverso numeri che non hai mai visto prima
e la chiamiamo teoria ok e per il
scopi di questo discorso assumiamo solo
che teorie e modelli sono
ok intercambiabili così che cosa vorrei che
sembra che tu avessi un software
sviluppatore che capiva un sistema ok
una teoria generalizzata di un sistema come
opposto a uno che ha appena avuto un mucchio di
fatti memorizzati sul sistema ok così
facciamo due sviluppatori uno che può
segnalare fatti sul sistema come dove
questa funzione è implementata e possono
vai a trovare il modulo dove è
implementato contro un altro che può
darti quello che ti piacerebbe davvero
che è questa improvvisata chiacchierata di gesso e
puoi dire parlami di come
i lavori di sicurezza e sarebbero una specie di
come tagliare una fetta attraverso il programma
e inizia a spiegare quello o potresti
dì tu sai che tipo di esibizione
le cose ti preoccupano e vanno
oh ok lascia che ti parli di questo e
a loro piace che tu possa farlo spontaneamente
direi viste del sistema
che il secondo sviluppatore ha un molto
ricca teoria del programma che sei
rivelando attraverso le tue domande e
che stanno rivelando attraverso il loro
risponde così alcune domande che puoi
tipo di chiedersi è come possiamo ottenere
più di quegli sviluppatori come se tu lo fossi
su una squadra che vuoi essere con quelli
la gente che conosci è che è la mia
aspirazione ad essere bravi in ​​questi tipi
di cose che posso e poi tu
sapere come si usa
università che fanno questo tipo di
la gente quindi penso che sia utile prendere un
guarda come appare la comprensione
un’altra disciplina in modo che possiamo
rifletti sulla nostra disciplina, ok così
ho una caricatura di ciò che vuol dire
essere uno scienziato ok e capisco che è
una caricatura e non funziona davvero
come questo ma ne ho scritto un po ‘
pseudocodice per il mio programma di scienziato ok
quindi, in pratica, c’è un ciclo continuo
e dice di dare un’occhiata al mondo
confronta il mondo con la tua teoria se
vai cosa poi dici che la mia teoria ha bisogno
alcuni funzionano bene, ma si spera che la maggior parte dei
tempo a guardare il mondo che confronti
alla tua teoria e tu sei come
tutto sta andando benissimo ok così ho
questo grafico teorico dove i punti o
osservazioni e quelle colorate
sono quelli in cui vai e cosa sei
costretto a rivalutare la tua teoria ok così
se chiedi a uno scienziato quanto bene tu
capire qualche fenomeno giusto se tutto
i punti sono grigi e mantengono solo
essere grigio per un tempo molto lungo no
importa quale parte del mondo guardi
in loro non riesco a trovare nulla
sorprendendo che probabilmente pensano di loro
capisci qualcosa di molto bene, giusto
quindi l’idea è che si sta cercando di
ottenere una teoria tale che non importa
quante osservazioni non fanno nulla
veramente viene scosso troppo
quanto bene capiscono è quanto bene
la teoria corrisponde al futuro
osservazioni voi ragazzi comprate che va bene
perché sto per passare il software
ok ecco quindi lo pseudocodice per a
sviluppatore di software per sempre
un requisito se il requisito è ora
molto sorprendente nessun problema ma se lo è
sorprendo torno alle mie teorie e
Li rielaboro se è il mio
teorie di architettura o è il mio dominio
teorie perché qualcuno potrebbe dirti
qualcosa di pazzo per il dominio che
ti costringe a rivalutare tutto ciò che
avere una grande storia per questo o almeno
Penso che sia divertente a un certo punto quando
le persone avevano in realtà telefoni fissi
si lo so quando i dinosauri vagavano per il
terra ho avuto un business e quindi ho avuto un
due numeri di telefono per lo stesso fisico
telefono se era il mio numero di azienda
vorrebbe ring in un modo speciale quindi io
potrebbe dire e non risponderei al
telefono con un po ‘sciocca sai modo di
saluto perché non c’era l’ID del chiamante
sui telefoni per quelli che hai meno di 25 anni
Va bene così così ogni mese lo farebbero
Bill me due volte e vorrei chiamarli
e loro aggiustano la fatturazione e io vado
alla fine dopo la terza volta di questo
Ho detto cosa sta succedendo qui e loro vanno
okay lascia che ti dica cosa sta succedendo
ogni volta che abbiamo applicato le patch al
problema semplicemente emettendoti un credito ma
cosa sta succedendo nel nostro sistema software
è tanto tempo fa qualcuno ha fatto il
presupposto che un numero di telefono sia uguale a
un account e per implementare
questa funzione hai due account e
dovremmo averli impostati così
che solo uno di loro è la fatturazione e il
l’altro non è fatturazione e io
capiscilo e finalmente lo capiremo
fuori e quindi abbastanza sicuro, dopo che
tempo non mi è mai stato addebitato due volte per questo
perché qualcuno che conosci ha fatto la magia
roba per chiudere insieme i due account
ma mi ha fatto pagare solo una volta, va bene così
immagina di essere lo sviluppatore del software
hai creato software per
sistemi telefonici di fatturazione per un molto
molto tempo e poi qualcuno arriva con
questa funzione e guardi il tuo modello
e tu vai, non posso separare questi due
le cose sono andate bene insieme
e come il meglio che puoi fare è dare
loro due conti giusto e poi girare
off fatturazione su uno di loro che
probabilmente ha rotto un’altra cosa che tu
dare per scontato che è perché hanno un
conto che non costruisci persone per
okay, questo tipo di senso ha senso
giusto così l’ idea è che non è quello
non puoi gestire nuovi requisiti ma
alcuni requisiti sono come un grosso problema
lo sai come se la mia applicazione lo fosse
tre schede e tu vuoi che io aggiunga
un’altra scheda per l’interfaccia utente sono come no
problema capisco come mettere schede
hai gli occhi bene posso andare avanti e farlo
quindi in generale, come un software
sviluppatore sto cercando di costruire un modello
questo spiega il mio mondo
sia il dominio l’architettura che è
adatto per la scalabilità il
architettura adatta a
sicurezza e tutte le altre cose che
Devo fare e quanto bene capisco
le cose sono quanto bene può il mio programma
produrre l’output futuro che il
i requisiti hanno e ragazzi vogliono che io faccia
okay, quindi alcuni modelli sono migliori di
altri modelli proprio questo è una specie di
un esempio abusato, ma a lungo
abbiamo cercato di dare un’occhiata al cielo
e girare reso sempre più
modello complicato per spiegare come
le stelle ruotano attorno alla terra okay
fino a quando qualcuno ha detto che ho un
modello migliore ho una teoria migliore
spiega di più ed è più semplice e abbiamo
tutti hanno avuto quell’esperienza come stiamo provando
per capire cose e ci siamo
lavorarci intorno ed è stato effettivamente
molto simile alla discussione precedente
dove hai questo multi-dimensionale
spazio dello stato e trovi un punto in esso
è come se questo fosse molto meglio
qui posso gestire la mia scalabilità e il mio
sicurezza e tutto il resto va bene così
questo in realtà si verifica quando fai dominio
analisi e anche questo è un estratto da
il libro di design guidato dal dominio e io
ricorda quando leggo questo la prima volta
Sono come si esattamente esattamente perché
sei stato in un certo senso complotto
requisiti con le parti interessate e
sei come scriverli e provarli
per capirli ed è proprio come
sembra sempre più pazzo fino a quando
alla fine sei come ha e trovi
la struttura che esprime il
requisiti e ti rende felice
perché sai come codificarli e
Funziona tutto molto bene quindi cosa sono
provare a descrivere qui è quello come
sviluppatori di software che stiamo cercando di cercare
modelli che spiegano come funzionano le cose
i modelli che funzionano per noi forse sono loro
modelli di dominio o modelli di architettura o
e allora torniamo a questa citazione
che si spera non sembrare abbastanza come
pazzo come ha fatto la prima volta che hai sentito
va bene la prima volta che l’hai sentito
probabilmente stai pensando come non lasciarlo
il mio manager lo vede perché non lo faranno
lasciami andare di nuovo alla conferenza, giusto
okay, quindi la programmazione dovrebbe essere corretta
considerato come un’attività da cui
programmatori per ottenere di più un certo
tipo di intuizione una teoria sul
questioni a portata di mano questo suggerimento è in
in contrasto con ciò che sembra essere un altro
nozione comune che la programmazione dovrebbe essere
considerato come una produzione di un programma in
certi altri testi vanno bene dove il
la seconda parte del momento saliente è molto
simile a quello
che un uomo di paglia un modello che io
presentato all’inizio che è pick
su codice requisito un refactoring di prova
ripeti per sempre il genere di cose va bene lo è
non solo per scrivere il programma, quindi se
sei mai stato in una squadra e questo è un
un po ‘ingiusto che ho messo queste parole
nella bocca del capo dilbert sai
Sta dicendo che siamo qui , abbiamo un
affari devi produrre codice
perché è quello che fanno le aziende e
è così che i soldi fanno sembrare smettere
cercando di pensare a teorie e cose
come questo e sul lato destro
hai questa squadra che ha questo
debito tecnico in termini di modelli
non essere allineati con quello che sono
viene chiesto di fare e se si mantiene
mettendo sempre più persone dietro ciò
cosa possono continuare a spingerlo ma fino a quando
sono in grado di riconoscerli o riconoscerlo
dovrebbe essere refactoring dei modelli non
solo tu sai rimuovere la ripetizione da
il codice finché non si rendono conto che sono dentro
il modello geocentrico e dovrebbero essere
stanno andando nel modello eliocentrico
per continuare a spingere questa cosa ed è
doloroso per tutti gli interessati perché
le parti interessate ottengono requisiti lenti
e gli sviluppatori non lo vogliono davvero
andare al lavoro la mattina ok e abbiamo
tutti sono stati lì a destra ea volte
sei come se fosse la cosa giusta da fare
dobbiamo continuare a spingere questo per un altro
due quarti, ma a un certo punto abbiamo
per riparare i modelli, infatti, se torni indietro
e leggere il testo originale del
descrizioni del debito tecnico lo farai
trova che sembra molto simile a questo
qualcuno dice che so che non è così
la cosa giusta da fare ma devo ottenere
questo fuori dalla porta non è come me
accidentalmente avvitato qualcosa e
in particolare, sta negando la scrittura
codice di cattiva qualità in un modo consapevole che lui è
fondamentalmente dicendo che non puoi permetterti di aggiustare
il modello in questo momento, quindi torniamo indietro
voglio assicurarmi che questo sia completamente chiaro
sul lato sinistro questo è l’Io sono
non prestando attenzione ai modelli che non sono
in particolare cercando di costruire un modello
questo è qualcosa che funziona ma tu
probabilmente finiranno in a
situazione in cui tu o il team non lo fai
in realtà hanno una teoria che supporta
cosa devi fare nella mano destra
i modelli laterali sono cittadini di prima classe e
hai davvero una possibilità di avere un
sistema di velocità sostenibile che
continua per sempre nel futuro che
è ciò che tutti vogliamo non vogliamo colpire
il vicolo cieco così
ecco che arriva il quiz e ricorda questi
quiz per me cosa vedi questi
persone che fanno ora sì posso credere che
due ok ma cosa ne pensi io voglio
ti sento dire di sì, questi ragazzi sono fuori
là costruisce teorie e teorie
modelli equivalenti nella mia mano ondulata
versione di questo sì, quindi pensa a cosa
stanno facendo come se tu andassi e tu
tirato in realtà una di queste persone se
hai tirato due di loro in modo indipendente e
chiedi loro di parlarmi del dominio
modello che speri di non diventare diverso
risponde bene, sai che questi ragazzi sono
costruire davvero una teoria se glielo chiedi
qual è la nostra strategia per testare che sei
come come stiamo andando per ottenere la
requisiti di scalabilità spero che tu
sapere che il team sta costruendo un modello
su come queste cose funzioneranno ok
non stanno solo digitando il digitazione del
programma ok quindi ricorda che te l’ho detto
ci possono essere due argomenti principali che sono
cercherò di sostenere il primo
riguardava la teoria della costruzione e ora tu
conoscere la teoria che costruisce il secondo
uno è un altro termine chiamato distribuito
cognizione scusa github, ho intenzione di parlare
su qualcosa di diverso così distribuito
la cognizione è un termine che viene da
psicologia e lascia che ti chieda solo ragazzi
domanda veloce quanti di voi possono
dividere per numeri a una cifra nel tuo
testa come sai 3/2 ok spero
tutti in realtà potrebbero farlo così bene
comincerò a fare questo problema a
un po ‘più difficile aggiungendo cifre così sono
dirò quanti di voi possono dividere un
numero a cinque cifre con un numero a due cifre
nella tua testa esattamente bene così vedo
pochissime persone che conosci bene
fiducia e io e io potevamo semplicemente comporre
fa un altro paio di cifre e cade
fuori ok, ma butch ma va bene così
non sei un matematico professionista
i tuoi sviluppatori di software professionali così
farò il problema più facile di quanti
le persone qui possono scrivere una linea cinque
programma accuratamente nella tua testa tutto
a destra 10 10 linee 10 linee che ne hanno 10
linee precise e la tua oh mia bontà
Penso che ne abbiamo alcuni
alcune persone che sono onesti con
loro stessi come circa 50 50 è davvero
piccolo programma va bene chi sta andando a
raccogliere il loro stipendio se puoi solo
scrivi 10 programmi di linea tutto bene
qualcosa che sta succedendo qui non è lì
giusto perché tutti noi stiamo collezionando
stipendi bene forse spero quindi spero che il
l’economia è buona oltre il 90% di noi
stiamo raccogliendo gli stipendi okay, quindi facciamolo
scavare in questa idea che possiamo risolvere
problemi che sono più grandi di quelli
quello che sta nella nostra testa è questo
la cognizione distribuita riguarda così ecco qui
quel semplice problema di matematica e quello che ho
è stato detto in realtà è che in Europa tu
viene insegnato una versione leggermente diversa
di questo rispetto a noi quindi lo troverai
questo affascinante se non l’hai visto
prima è così che mi è stato insegnato e
quello che fai è che dici 45 va in 132
volte e poi lo abbandoni e tu
fai la sottrazione e fai una specie di grind
attraverso e hai capito come questo ma
Non mi interessa veramente gli scarabocchi
in questo momento il punto è questo
stranamente abbastanza sorprendentemente se
mi fai fare scarabocchi su un pezzo di
carta posso risolvere problemi che io
non poteva risolvere senza il pezzo di carta
e scarabocchi che sono davvero fantastici
il trucco è che lo facciamo sempre
e così dimentichiamo che è un
grande piccolo trucco chiunque abbia inventato questo
trucco come merita un grande plauso va bene
questo è un trucco abbastanza buono, va bene
ma è davvero molto interessante
non è possibile scrivere scarabocchi su a
pezzo di carta e risolvere grandi problemi
ok bene quindi c’è un problema che non lo è
solo qualche scarabocchio su un pezzo di carta
quindi chi vuole prendere una crepa e
sei come guardare questo è completamente
Ingiusto perché intendo come metà del
la gente qui non può nemmeno decodificare ho dovuto
scrivilo su Internet
capire che numero era e
Numeri romani bene bene non c’è problema
nessun problema lo trasformerò in arabo
chi vuole fare il problema ora va bene così
il punto sono gli scarabocchi sul pezzo
di carta deve essere un certo tipo di
scarabocchia su un pezzo di carta proprio così
non scarabocchi su un pezzo di carta
non sono nemmeno numeri arabi che io
già sanno cosa significano in realtà
che gli scarabocchi sul pezzo di carta
devono essere allineati con il modello che è
nella mia testa va bene così se la modella nella mia
capo
e il modello sul pezzo di carta
allineare ottengo alte prestazioni e quando
stanno disallineati non ho ricevuto alcuna
Moltiplicatore cognitivo okay non capisco
questa cognizione distribuita sta andando
su quindi cosa abbiamo qui perché io
non so di nessuno studio che abbia fatto
l’esempio di moltiplicazione che rende
per un grande esempio che non volevo fare
l’effetto Stroop perché ci sono
molte persone che fanno lo Stroop
effetto ma l’effetto Stroop è quando tu
metti un sacco di parole e chiedi
le persone a leggerli tranne che il
parole o colori e le parole stesse
sono stampati nel colore quindi se la parola
il nostro ed è in realtà stampato in rosso sei tu
andando ad avere la curva a sinistra
che dice prestazioni elevate ok ma come
presto come il colore e la parola
non corrisponde l’uno con l’altro si ottiene il
curva a destra che significa il tuo
il cervello sta cercando di combattere l’esterno
e le rappresentazioni interne vanno bene così
Non ho nessuna di queste curve per
software, ma ne abbiamo alcuni
cose che sembrano simili e tra l’altro
il Donald Norman che viene citato
ecco che Donald Norman dal
progettazione di cose di tutti i giorni che avrebbero
un sacco di cose interessanti da dire
il design dei rubinetti in
bagno quindi se voi ragazzi sapete cosa sono
parlando di come hanno dovuto mettere
etichette su di loro perché l’elegante
il design minimalista che conosci è inutilizzabile
dagli umani senza parole okay sì yeah
non stanno bene, probabilmente dice
qualcosa sulle differenze di genere
non è così no, intendo come mi dispiace
significava che nel più positivo
va bene così l’esempio che abbiamo
ecco gli scarabocchi in alto
rappresentare la rappresentazione mentale di
il problema e in realtà lo scarabocchio
la sinistra è il problema mentale e il
quello a destra è quello che vedi
il pezzo di carta e l’idea è quella
devi combinare tutti questi diversi
cose e solo quando ti sono allineati
ottenere alte prestazioni e quello che erano
studiando specificamente c’erano varie torri
di problemi equivalenti di Hanoi e cercando
per vedere quanto velocemente le persone potrebbero risolvere
loro e quello che hanno trovato è quello in effetti
il modo in cui rappresenti il ​​problema
drammaticamente ha un’influenza su come
rapidamente puoi risolvere il problema ok così
di nuovo il tipo di scarabocchi sul pezzo
di carta se sono disallineati con il
modo in cui pensi al problema nel tuo
testa non lo risolvi molto bene così
un’altra cosa che è stata studiata da
psicologi perché la Marina è molto
preoccupato per quanto bene un mucchio di
le persone sul ponte di una nave possono guidare
una nave va bene, ora immagino di prendere qualcuno
di noi e siamo stati in una barca a remi
la barca a remi e la navigazione da qualche parte è
non sembra una cosa interessante
per studiare le giuste notizie, punta la barca a remi
dove devi andare ok ma se lo metti
una dozzina di persone sul ponte di una nave
e li si ruota dentro e fuori sopra il
corso della giornata diventa molto
problema interessante e difficile giusto
perché la Marina è molto interessata
navigazione accurata in modo da notare qui
a sinistra hanno una specie di
mostra un po ‘di basso per alcuni di voi
ragazzi, ma c’è un display radar con
cerchi concentrici e alcuni alcuni
numeri lì, quindi c’è un esterno
rappresentazione presumibilmente
assistere la navigazione e se me ne vado
Ciclo e qualcun altro entra in
sul ponte possono guardare gli scarabocchi
che ho messo lì per poter capire
fuori cosa stava succedendo e cosa c’è
dovrebbe essere in corso giusto che
c’è una sorta di rinuncia che va
lì aspetta che diventi più difficile presumibilmente
nessuno sul ponte non sta facendo
esattamente lo stesso lavoro così diverso
le persone hanno fette diverse di
problema nella loro testa e sono tutti
cercando di avere un interno
rappresentazione di ciò che naviga su
e la rappresentazione esterna che loro
può dare un senso a e hanno suddiviso
attraverso la gente oh è come se tu
descrivilo in astratto o come lo è
mai andando a lavorare bene, tranne che
è davvero incredibile quindi hai
una sfida della squadra giusta molte
persone diverse con parziale
capendo che hai l’interno
problema esterno e così per fare
questo correttamente devi essere sicuro
tutti hanno un modello compatibile o
abbastanza compatibile e devi avere
una rappresentazione esterna efficace
come nessun numero romano o altro tipo di
roba che è inefficace
la rappresentazione va bene ha senso quindi questo
sta iniziando a sentirsi come un software
sviluppo Va bene così facciamo solo tornare indietro
all’esempio di matematica e immagina di provarci
e tagliare l’esempio di matematica e dividere
sollevato dalle persone e come sarebbe difficile
che si tratti in realtà ottengono questo problema
fatto e questa è una cosa davvero semplice
da fare, ma se si chop in su e hanno
diverso p
lo faremo sta andando essere molto più difficile
quindi in realtà non scriviamo arbitrariamente
scarabocchia nel nostro controllo di versione
sistema quando scriviamo programmi, quando
prendiamo un programma ne facciamo uno uno
quelle ovvie approvano proprio così
sai quando lo mettiamo su Internet
nessuno può decodificare e
capisci il nostro codice che stiamo davvero provando
prendere degli scarabocchi che avevano un senso e
trasformali in scarabocchi che non fanno
senso che stiamo cercando di rimuovere qualsiasi
Resti del modello in cui ci troviamo
le nostre teste vanno bene così che gli altri ragazzi
non riesco a capire cosa abbiamo capito così
quello che facciamo è usare la programmazione
lingue di programmazione e lingue
programmi reali per collegare l’interno
e rappresentazioni esterne
rappresentazione interna del modello e
la rappresentazione esterna come nel
codice che è stato registrato così abbiamo chiamato
variabili in un modo particolare che abbiamo
modelli nominati che vedi spuntare
nel codice e questi sono davvero banali
esempi banali ma se prendi il
intero codice base un esempio incluso il
commenti e tutto il resto
è un modo per tutto il team
modificare collettivamente un modello e
capire cosa sta succedendo e molto
di volte in cui vediamo i fallimenti è un
fallimento nel codificare quel modello in tale a
così quando lo scrivo e poi
lo leggi che con quello stesso
il modello ti viene in mente quindi ecco a
riassunto di cosa sia la cognizione distribuita
riguardo possiamo risolvere problemi più grandi di
adattarsi nella nostra testa permettendoci di fare
scarabocchi su un pezzo di carta ma solo
se il modello nella mia testa e ciò che io
Scribble sul pezzo di carta è
allineati bene quando disallineavamo noi
non avere le squadre di moltiplicazione
per condividere quei modelli e l’ esterno
una sorta di rappresentazione simile se venissi fuori
con il mio modo bizzarro di fare qualcosa
e stai provando a collaborare con me
sul programma non è il tuo esterno
rappresentazione non funzionerà
quasi altrettanto efficace quindi esprimiamo
quei modelli e il codice sorgente per entrambi
noi stessi e per il team okay quiz
numero due e ricorda che questo è il quiz
per me che cosa si vede questa squadra fa
cosa pensi che voglio che tu lo dica
questa squadra sta facendo sì, c’è il
collaborando e stanno pensando
stanno facendo questa cognizione distribuita
compito proprio dove sono lì che hanno
questi modelli mentali nella loro testa
che programmazione è come cosa non cosa
la programmazione è ma quali sono i modelli
che stanno manipolando se lo è
i modelli di architettura o il dominio
modelli o whatnot e stanno esprimendo
li nel codice in modo che quando questo
la persona lo scrive e quella persona
lo legge la prossima settimana tutti insieme
hanno le stesse idee in testa
quello che sta succedendo sono molto costosi
va bene così questi ragazzi stanno facendo distribuiti
cognizione come una squadra, quindi dove siamo
abbiamo questo abbiamo iniziato con questa idea
il budello sente che i modelli sono utili noi
ho imparato a conoscere la teoria
in particolare e abbiamo imparato a conoscere
cognizione distribuita e così ad alcuni
punto devi dire hey quali sono i
modelli quindi quali sono i modelli che sto andando
per iniziare dando un esempio che tu
potrebbe aver sentito prima di chi è chi
sentito parlare dell’architettura von Neumann
per i computer va bene, hai una buona idea
quindi potresti anche aver sentito parlare di
polemica sulla denominazione al von
Architettura di Neumann perché si è seduto in
era come il ragazzo Brainiac hotshot di
il giorno e si è seduto in un incontro dove
gli ingegneri che avevano costruito un computer
uno dei primi computer erano
discutendo i disegni per il prossimo
okay e ha fatto un lungo viaggio in treno e
non aveva internet se ci puoi credere
e così via usando un pezzo di carta e un
la matita che gli piace ha scritto alcune note e
quello che ha fatto è stato collegare le idee
che questa squadra aveva inventato
come costruire la prossima generazione
computer e li ha espressi da
collegandoli a modelli che noi
modelli logici già compresi ok
modelli di logica e matematica va bene e il
squadra che gli ingegneri che avevano
originariamente progettato questa cosa ha detto sì
ma tu non hai davvero fatto niente di ciò che abbiamo fatto
la cosa e questo è dove il
la polemica arriva perché abbiamo progettato
la cosa e tutto quello che hai fatto è stato esprimerlo
usando la notazione matematica e la notazione logica
okay e quindi sono come se non me ne stavo nemmeno andando
per pesare sul dibattito comunque sono
andando a dire che il collegamento del
i modelli e l’artefatto sono incredibilmente
compito prezioso, ok, immagina che tu stia facendo
un po ‘di consulenza per i tuoi amici e
i tuoi amici sono hey , non ne so molto
sull’ingegneria del software, ma io sono un
persona intelligente e ho costruito alcune cose tu
sapere cosa chiamano quelle persone
ingegneri elettrici
e so che è economico ma il
cosa è che ottiene queste persone e queste
altri domini con questi cervelli giganti
e poi vengono nel nostro campo e
sono come se potessi scrivere software e
allora ottieni questa roba che è solo molto
sorprendente così così per esempio sei
guardando il loro codice e come loro
tratta tutto come un fiocco di neve unico
in esso e poi si va e basta
sembra che tu ne abbia tre
livelli perché abbiamo un termine per questo
giusto e poi tu dici cosa succede se gruppo
queste cose sono legate al lotto
elaborazione e varie altre cose e
la lezione da portare a casa qui è quella
un modello che è in un libro è quasi
inutile devi collegare il modello
con la macchina che incarna il modello
giusto è davvero importante e così
questo è quello che voglio che tu togli da
la storia di von Neumann è come dimenticare chi
ha inventato il computer e chi dovrebbe ottenere
credito, lo dirò solo se lui
ha preso un problema che è molto nuovo
poche persone capiscono come dozzine nel
tutto il mondo e lui lo esprime
termini di modelli che milioni di persone
capire e lui collega i due
questo è un enorme servizio a
l’umanità va bene e questo è probabilmente il motivo
qualcuno ha messo il suo nome sul foglio giusto
quindi quando facciamo la modellazione non possiamo semplicemente farlo
la cosa giusta come fare un programma che
capita di funzionare bene è una buona prima
passo il passo migliore è effettivamente
collega quel programma con i modelli
che abbiamo già chiamato e che tu
può imparare come studente universitario o in
conferenze come questa puoi imparare
circa quindi siamo un po ‘troppo vicini al
particolare problema di programmazione a
davvero vederlo chiaramente così è chiunque
qui ho provato a scrivere una commedia o un romanzo o
qualcosa del genere va bene così se tu mai
provato a fare questo e ho provato in esso
non è riuscito a trovare che ci sono tutti questi
modelli interattivi di cui hai bisogno
capisci bene così ad esempio quello dell’eroe
viaggio dove sai come hai
Luke Skywalker che è solo qualcuno che conosci
schmuck su un pianeta deserto e vicino al
fine è l’eroe che era Layton dentro
di lui va bene così è l’eroe
viaggio come lo sviluppo del personaggio
puoi avere personaggi davvero piatti
a nessuno interessa, quindi c’è un
intero modello per come si ottiene la gente
preoccuparsi dei personaggi per quanto riguarda
gridando drammatica attenzione all’ironia e
l’umorismo rilascia tutti questi tipi di modelli
qualcuno che è esperto in questa roba
tesse bene l’artefatto, ma
quando hai finito, l’artefatto si alza
su se stesso vai a una commedia e tu sei
è stata una commedia meravigliosa che hai letto
un romanzo sei come se fossi intrattenuto
e può essere informato okay quindi devi
intrecciamo tutte quelle cose insieme e io
penso che la stessa cosa stia succedendo quando noi
tessere programmi che abbiamo entrambi riusabili
e modelli di dominio ad hoc proprio così
a volte ci sono cose che non ho mai
sentito parlare ma qualcuno mi sta dicendo
altre volte c’è un’industria
standard sai ontologia per finanziario
conosci gli elementi di interscambio okay e io
posso andare a vederlo sì sì sì c’è un
ci sono anche modelli e stili che
prendiamo dagli schemi del design
e ogni sorta di altri posti e, naturalmente
ci sono pratiche di sviluppo e
processi che sono modelli giusti
hai modelli nella tua testa su come fare
dispiegamento hai modelli nel tuo
parla di come aggiornare in sicurezza
funziona bene con le funzioni flag e
alterna e così via così c’è questo
i modelli sono in realtà più ricchi di quanto possiamo
in realtà descrivono così che è il tipo di
cosa che stiamo facendo quando We Stitch
queste cose insieme come sono in tempo
cinque minuti ok , siamo abbastanza vicini
okay, pensaci in questo modo
la prima colonna è qual è la nostra seconda
la colonna su questo è che abbiamo una specie di
cose standard che possiamo usare e
intrecciare nei nostri programmi quelli sono come
programmazione di modelli ontologici standard
stili guidati design guidato
perché mi piace dire design guidato a
Qualche altra volta in giro per Rebecca e poi
importante e questo è qualcosa che io
mancato per molto tempo è che c’è un
lotto di teoria delle categorie di teoria degli insiemi logici
metamodeling che diamo per scontato
perché se riesci a trovare qualche problema e
avere alcuni iterativi come quattro anelli che
fai qualcosa e puoi semplificarlo
differenza di due insiemi di questi due
collezioni sei come un sacco di
la complessità non lo scioglie semplicemente
perché sei stato in grado di risolvere un problema
e collegalo alla matematica e poi a tutti
già capisce la matematica e loro no
più a lungo dobbiamo pensare al
iterazione necessaria per manipolare
collezioni ma poi c’è un secondo
colonna che è la parte ad hoc va bene così
è improbabile che qualcosa di un dominio
il modello di serie ha tutto il
dominio di cui hai bisogno in modo da stratificare
nelle cose che hai integrato
i tuoi modelli e i tuoi stili e anche
a volte le persone arrivano con le proprie
formalismi in matematica per esempio grafico
algoritmi che sono particolarmente utili
per loro va bene così questi sono i tipi di
cose che dobbiamo esprimere nel nostro
programma in modo tale che noi e il resto
degli altri sviluppatori e del team
usali e recuperali così questo è il
grande questo è il riassunto se c’è
niente di nuovo che arriva a questo punto modello
lo sviluppo mentale è l’ idea
gli sviluppatori tengono a mente molti di questi
i modelli nella loro testa stanno astratizzando
cose complicate e vincolano
il modo in cui scriviamo il codice che generalizza
attraverso un sacco di cose che hai già
sentito prima ma spero li assembla
in modo tale che siano di più
comprensibile ci sono due particolari
argomenti che sto facendo qui che sono
cercando di renderlo sufficientemente forte
quando faccio questi argomenti cammini
lontano da questo e vai hai ragione io
non posso tornare al modello semplice una volta
una volta hai spiegato queste cose
per me perché la programmazione è davvero
costruire queste teorie e programmazione
è la cognizione distribuita, proprio lì
questa cosa magica quando faccio scarabocchi
su un pezzo di carta e quindi noi
dovrebbe trattare la modellazione come prima
attività di classe e penso onestamente a
molte volte non facciamo così è la metafora
questa idea che hai un sacco di
osservazioni del mondo che sono simili
sono dispiaciuti i requisiti che sono
come le osservazioni del mondo e cosa io
voglio fare è avere un numero infinito di
quelle cose in futuro è il mio programma
sempre pronto e per farlo io
devo costruire un modello che predice
quello che succederà dopo non mi piace
il processo a sinistra perché
non ci sono modelli in esso a destra come
difficile com’è spremere i modelli
in quel processo penso che dobbiamo fare
e quello che succede informalmente penso
è che gli sviluppatori di software lo stanno facendo
anche se il processo non dice
lo stai facendo e quando cadiamo o
quando abbiamo un collega che pensa
stiamo perdendo tempo che solo tu sai
andando a costruire nel debito tecnico
nel sistema perché non veniamo a
consenso su ciò che i modelli sono questo a
metafora di un gruppo di persone sedute
il ponte di una nave con persone che arrivano
dentro e fuori e la necessità di avere una condivisione
visione di ciò che sembra la navigazione
per battere un accordo con
e penso che assomigli molto a ciò che noi
considera quello che stiamo facendo
programmazione e tu pensi a come
difficile che deve essere e quanto sia difficile
ottenere una buona rappresentazione esterna e io
pensa che sia una buona metafora o il bene
parallelamente allo sviluppo del software, quindi noi
iniziato con questo test che è guardare
ecco un mucchio di sviluppatori di software
e all’inizio abbiamo detto che sono giusti
programmazione giusta e spero che entro
esposizione a queste idee che il prossimo
ora vedi un sacco di persone che sei
in realtà dirò bene, naturalmente
la loro programmazione ma sono anche loro
costruire teorie e questa è una parte enorme
del valore e, naturalmente, lo sono anche loro
facendo questo trucco cognitivo distribuito
giusto perché non possono fare tutto il
programmi nella loro testa e stanno usando
questa rappresentazione esterna per ottenerlo
fatto tutto bene grazie mille spero
ti è piaciuto il discorso
[Applausi]

Please follow and like us: