Press "Enter" to skip to content

GOTO 2016 • Pure Functional Programming in Excel • Felienne Hermans


ciao a tutti il ​​mio nome sono gli animali Flint
Sono assistente professore a Delft
Università della tecnologia sono su Twitter
così pure se vuoi violentarmi non
attraverso l’app ma inviando un tweet
quindi sentiti libero di farlo
quindi forse ti stai chiedendo a
Conferenza degli sviluppatori perché stiamo parlando
su fogli di calcolo, quindi la mia opinione su questo è
i fogli di calcolo sono decisamente errati
molte persone pensano a fogli di calcolo come
essendo dati ma i fogli di calcolo non sono dati
fogli di calcolo sono codice questo è il vangelo
della mia vita i fogli di calcolo sono oro a cui vado
tutti i tipi di conferenze per condividere il
parola felice che i fogli di calcolo sono codice così
se vuoi andartene ora o cadere
dormire o fare qualche email va bene
perché questo è già il più
messaggio importante del mio discorso proprio lì
i trucchi giusti sono buoni, così potresti
Mi chiedo perché ho tre ragioni per cui
questo è il primo motivo per cui fogli di calcolo
il codice è che sono usati per simili
problemi come vedi qui questo è un
calcolo degli investimenti in cui si inserisce
alcuni numeri e un consiglio di investimento
esce fuori potresti farlo in qualsiasi
linguaggio di programmazione intendo che potresti fare
in e C o un obiettivo-c se si
vuoi un’app per iPad in Java o in a
foglio di calcolo non ha molta importanza
non c’è niente di speciale in questo
problema che lo rende foglio di calcolo
ovviamente, potresti chiedertene il motivo
le persone fanno questo in un foglio di calcolo
ho chiesto alla gente così durante il mio dottorato
tesi ho lavorato con diversi
banche e società di investimento nel
I Paesi Bassi e io chiedemmo loro come il perché
stai costruendo questo perché non sei tu
sapere per alcuni il tuo fornitore IT
software sai perché perché siamo cattivi
a fare sul serio il software che hanno
provato questo sono andati al loro IT
fornitore sia internamente che esternamente
e dicono guardate che ho fatto questo
foglio di calcolo ed è un po ‘ok è
come un prototipo puoi costruire
me un po ‘finora per questo e l’IT
fornitore va come sì, certo nessun problema
che sarà a sei mesi e un milione
euro e se fosse vero solo
non sarebbe così male ma non è mai sei
i mesi in un milione di euro sono nove mesi
ed è di tre milioni di euro e in
ha la metà delle caratteristiche che vogliono così
gli utenti finali si percepiscono come migliori
programmatori di noi e voglio dire che lo sono
non del tutto sbagliato in quello perché loro
può rapidamente costruire prototipi per fare cosa
vogliono così ho fatto di tutto per
rendere i miei punti di così grande lunghezza in
fatto che ho costruito una macchina di Turing
in formule di Excel per dimostrarlo
le formule del foglio di calcolo sono complete di Turing
quindi non dire più per favore
foglio di calcolo non sono una vera programmazione
lingua perché questo è un Turing
macchina ogni riga a proposito è uno
iterazione del nastro e con
formattazione condizionale Sto spostando il
capo oltre il nastro quindi è anche credo
una bella visualizzazione di una macchina di Turing
puoi facilmente vedere cosa ti sta succedendo
vedere la cronologia memorizzata nelle righe come
bene invece di solo una testa che si sposta
un nastro reale e molte persone e divertiti
questo sacco è diventato virale sul
internet e ha portato il mio blog personale
giù per mezza giornata perché era acceso
Hacker News e già così il terzo
motivo per cui il foglio di calcolo dovrebbe
assolutamente da trattare come pezzi di
il codice sorgente è affetto da tipico
problemi di ingegneria del software solo uno
fogli di calcolo di entrata ha un manuale e
il foglio di calcolo medio è utilizzato da 12
persone diverse nel corso della vita di cinque
anni Vi suona familiare che è
esattamente il tipo di problemi che
il software soffre di e
in particolare soffriva, diciamo
30 o 20 anni fa a quei tempi
tutti erano utenti finali, no
così gradi amico acustici eppure c’erano
niente strumenti che tutti stavano solo costruendo
le loro cose e poi così per
il software di ingegneria soffre di quelli
problemi pure e fogli di calcolo ancora
fare oggi così in sintesi le attività
la complessità e i problemi
i fogli di calcolo circostanti sono gli stessi di
software o fogli di calcolo sono codice
non si può più negarlo, ma lo sono
lo farò per quello che non è solo
un linguaggio di programmazione in realtà è Excel
il prossimo linguaggio di programmazione che dovresti
impara perché la resistenza è
perché prima di tutto i fogli di lavoro sono in diretta
programmazione chissà chi ha fatto questo
chiunque abbia familiarità con questa immagine sì
chi l’ha fatto sai che va bene
quindi è fatto da un tizio chiamato pane
Viktor e ciò che propone qui è il
idea di programmazione della vita così a sinistra
lato si ha l’istanza del
codice sorgente che vedi a destra così
se cambi qualcosa qui un numero o
colore o un intero l’albero cambierà
immediatamente quindi non c’è nessuna compilazione
coinvolto nel suo aggiornamento dal vivo ed entra in
questo dal programma di programmazione live è così
il fantastico pane Victor dove l’avevamo
poiché VisiCalc
Voglio dire che un foglio di calcolo è una programmazione dal vivo
tu cambi la tua formula e
automaticamente tutto ciò che aggiorna c’è
nessuna compilazione nemmeno lì
la programmazione funzionale è un po ‘ come
di ritorno dal quasi morto è
diventando sempre più mainstream per te
sapere cos’altro è puro funzionale
la programmazione excel è pura funzionalità
la programmazione di una formula in Excel è
diviso per definizione senza effetti collaterali
l’unica cosa che una formula può fare è prendere
input da diverse formule e
produce un valore che una formula non può cambiare
i risultati di una formula d’ordine o
un’altra cella quindi non ci sono lati
gli effetti non sono così fantastici in terzo luogo
tutti conoscono i fogli di calcolo
a tutti piace che il tuo vicino stia facendo il suo
sta gestendo le finanze della sua squadra di calcio
in un foglio di calcolo è il tuo commercialista
probabilmente facendo le tasse in a
foglio elettronico
tutti conoscono le lenzuola di Fred tranne noi
gli sviluppatori non sono quel tipo di triste I I
Mi piace davvero dire che i fogli di calcolo sono
il linguaggio di programmazione di maggior successo
nella storia dell’umanità è così
buon linguaggio di programmazione che le persone
non so nemmeno che la loro programmazione non lo sia
quello fantastico intendo immaginare di fare Java
per caso che non succederà mai quando
le persone stanno programmando in un foglio di calcolo
senza nemmeno conoscere la loro programmazione
il successo è così che sto andando a
supponi ora di esserne convinto
i fogli di lavoro sono buoni e tu lo sei
anche bene
i fogli di calcolo sono piuttosto interessanti, quindi lascia
io ti mostro alcuni programmi tipici
idee implementate in un foglio di calcolo per
mostrarti quanto sono fantastici
facciamo così Zio Bob dice che funzionale
la programmazione è programmazione senza
dichiarazioni di assegnazione quindi vediamo come
che sembra nel foglio di calcolo noi
stanno per fare un esempio tipico
stiamo andando a quadrare alcuni numeri interi e
diamo facile So che è in ritardo
il giorno quindi ho un numero di valori
qui e quello che voglio è il quadrato così
è ancora abbastanza facile quello che posso fare
sto solo moltiplicando il numero con
da solo ora posso trascinarlo o
probabilmente sai che puoi trascinare un
formula giù e poi automaticamente
aggiorna la posizione che puoi anche raddoppiare
clicca lì e poi va
automaticamente così quello che abbiamo è una lista
di input e abbiamo una funzione
definizione questo è solo la definizione di a
funzione su un input è come una mappa
stiamo mappando la funzione su tutto il
input ma ora stai per dire come
sviluppatori e questo non è carino perché
tutte quelle formule sembrano leggermente
diverso ma posso risolvere quello che posso dare
quelli che la prima colonna un nome sto andando
per chiamare tale ingresso e quello che posso fare ora
è possibile fare riferimento a che i nomi vanno in
in questo modo sto trascinando questo input verso il basso
e ciò che succede ora è ogni valore in
questa gamma ottiene il valore che è il
intersezione di questa riga e il nome
range in modo che io possa cancellare quello e quello che io
può fare ora lì invece di riferirsi
direttamente alla formula posso dire input
volte gli input non sono così belli e ora
sembra più appropriata programmazione a
scuola huh è la stessa in tutto il mondo in modo
è davvero come una funzione e puoi farlo
fallo senza avere il brutto
foglio di calcolo come un 2 e un 3, quindi facciamolo
qualcosa di un po ‘più eccitante
perché questo è ancora abbastanza facile, quindi cosa
vogliamo ciò che vorremmo avere
la somma di tutti i quadrati che superano i 30
così posso fare un semplice booleano che sto andando
per dire quale di questi valori è più grande
di 30 anni che conosci ancora super facile
e vediamo che abbiamo quadrato qui così ancora
qui dappertutto abbiamo un bel
formula coerente no a 3s e a 7s solo
una bella formula possiamo usare questa somma F ora
per sommare tutti i valori nei quadrati
oltre 30 è una specie di bello in quello zoom
se oltre 30 se questo è vero allora lo sono
nuotare il valore quadrato ma ci vuole
ci vuole un sacco di immobili c’è a
sacco di spazio ho bisogno per tutti quelli in più
piazze e extra booleani, quindi cosa fare
vogliamo fare qualcosa di un po ‘
più efficiente quello che vorrei fare
vorrei moltiplicare questi due
varia direttamente in modo da moltiplicare i quadrati
con il booleano che internamente è
riscritto a 0 o 1 in modo da poter moltiplicare
con ciò che potrei fare si moltiplica
input per input ma non è così perchè
quello che ti ho mostrato prima è se lo hai
un intervallo se vi riferite all’intervallo voi
ottenere l’ intersezione della riga e quello
gamma quindi non è quello che vogliamo
ma è vicino quello che possiamo fare è usare
controllo turno e quindi Excel rende questo
in una funzione di matrice e questo significa che noi
può calcolare con intervalli o matrici come
cittadini di prima classe , quindi se scrivo
la stessa formula e ha colpito il turno di controllo
entra, ottengo questo e ho un altro
valore C senza curling è questo e
con Curly’s è questo che sta succedendo
questo è l’intero intervallo di input
moltiplicato per un intero secondo input
gamma e il risultato di queste due gamme
perché è la moltiplicazione a coppie è
un altro range quindi quello che stiamo vedendo qui
è il primo elemento dei risultati di questo
intervallo moltiplicato per se stesso e se io
gli darei un pò di spazio
otterrebbe l’intero array o sono solo
andando a mostrarti penso i primi cinque
elementi quindi sto copiando questa formula ora
qui e poi prendiamo i primi cinque
elementi della matrice così ora puoi vedere
quella azione formula di matrice
i risultati in una vera seconda matrice di
che sto mostrando alcuni valori quello che io
può fare allora è posso ridurre quella matrice
quindi ho tutti i valori che ora potrei sommare
così ho potuto fare questo
la somma di questo intervallo moltiplicata per
stesso così in una sola formula non lo facciamo
bisogno di tutte le celle in più solo in uno
formula sto moltiplicando la coppia di intervalli
saggio con se stesso e sto nuotando
tutto e poi posso anche inserire
il filtro che posso moltiplicare input per input
e poi moltiplicarlo se o meno
è più grande di 30 e poi ottengo
lo stesso valore qui ma potrei cancellare
tutte quelle celle extra non ho bisogno di loro
perché tutto è ridotto così è
abbastanza efficiente se sai tutto
queste funzioni speciali come array
formule così un’altra cosa che voglio
parlare di come funzionano i valori di errore
Excel probabilmente non hai mai veramente
ci pensai perché sono così
intuitivo e piacevole ma c’è qualcosa
interessante andare lì così supponiamo
di nuovo hai un numero di input e
Lo vedrò con un po ‘di casualità
dati tra 0 e 3 quindi a volte otteniamo
gli zeri lì suppongo che vorrei
dividi per quella colonna di dati casuali e
Io vado a chiamare che la zona di pericolo
perché è davvero molto pericoloso
perché potrebbero essere 0 guarda
pericolo che divide per 0 Excel ci avverte
Excel dà un errore e dice di stare attento
questo è un errore quindi pensa a questo per
un minuto qual è il tipo di dati, se lo siamo
dicendo che questo è un intero qual è il
tipo di dati di quell’intervallo chi è a
programmatore funzionale qui sì
guarda questo tizio è una monade dentro
Excel è un forse int questo è un
700 milioni di utenti di Excel che usano
le monadi senza problemi non lo fanno
penso nemmeno
perché se abbiamo un’altra colonna quella
usa questo può
il bambino termina come input , ma funziona
abbiamo Veera calcolare qualche colonna in più
quello prende appena il forse int e funziona
con esso
senza alcun problema quindi questo plus qui è
sollevato e basta applicarlo alle estremità così
andiamo da un plus che funziona su interi
senza soluzione di continuità con un plus che funziona su forse
un numero intero o un valore di errore non è quello
fantastico, penso che sia abbastanza bello quindi
facciamo un po ‘ più di programmazione reale
perché ora stai dicendo sì ma a
un po ‘di filtraggio un po’ di
nuotare non è qualcosa
che sono davvero intenzione di utilizzare facciamo
affrontare un problema un po ‘più eccitante quindi
quello che abbiamo qui è un labirinto ed è così
pieno di soldi quindi voglio avere un
cammina attraverso questo labirinto che mi dà
la maggior parte dei soldi sono un povero accademico quindi ho bisogno
per ottenere i miei soldi dalla programmazione
esempi che sono ambientati in un labirinto e allora
Potrei fare, naturalmente , solo il lavoro è
Potrei definire una soluzione ricorsiva
sta per iniziare qui, quindi questo è il
inizio del mio labirinto ma è più facile
inizia alla fine e torna indietro
quindi quello che possiamo fare è poter dire il
Valorizza quindi cosa possiamo ottenere di più ma
la maggior parte dei soldi è che possiamo ottenere da
il nostro labirinto ci sono due opzioni o io
è venuto da quella parte o sono venuto da quello
in questo modo sono le uniche due opzioni
che potrebbe essere successo se ho
ho raggiunto la fine del labirinto così sono
semplicemente andando a prendere il massimo
quei due così il massimo che potevo
raggiungere qui o il massimo che potrei
raggiungere lì il massimo di quei due
percorsi attraverso il labirinto quindi questo è un
soluzione che funziona comunque c’è a
problema con questa soluzione fa nessuno
sapere qual è il nostro problema, quindi non lo è
molto efficiente sì, non è molto
efficiente non lo risolve davvero così
ma non è davvero risolto perché per
esempio questo percorso attraverso il labirinto ogni
obiettivo ricorsivo si proverebbe tutto il
percorsi successivi
Certo obiettivo quindi se sei qui provi
tutti i pad e poi sei di nuovo
sei qui e si tenta tutte le pastiglie in modo
funziona ma è molto costoso perché
continui ad esplorare l’intero labirinto così
quello che potremmo usare qui è una tecnica
chiamato programmazione dinamica e cosa
la programmazione dinamica fa risparmiare
mezzo stato del problema al fine di
essere più efficiente non è necessario
calcola tutto ciò che calcoli
sottoproblemi si calcola il tutto
problema da sottoproblema quindi ecco il nostro
labirinto e avremo un extra
foglio di lavoro chiamato max e cosa siamo
salvando c’è il valore massimo a
quella piazza nel labirinto così quelli sono
facile questo e quello c’è solo
in un modo puoi raggiungere quel quadrato il
unico modo per arrivarci è così
perché stiamo muovendo solo in quel modo così
quelli sono facili ma il resto del labirinto
quello che voglio fare è che voglio
guarda qual è il modo migliore che potrei
hanno raggiunto questo sub-problema finora così
Sto prendendo il massimo da quei due
passi prima di me più ciò che è in questo
campo del labirinto quindi o da dove vengo
in questo modo o è venuto da quel modo in più
qualunque cosa fosse già lì ora che ho
la stessa formula per tutti quei quadrati
nel labirinto e ho la mia risposta
questa è l’ intera soluzione e se tu
confrontarlo con questo è molto famoso
problema in informatica con il
soluzione in C o anche al liceo esso
sembra davvero molto facile in un foglio di calcolo
questa è l’unica formula di cui hai bisogno
l’intero labirinto e hai la tua risposta
tuttavia è un po ‘ingombrante perché
ora ho il valore ma anche quello di cui anch’io
Certo vorrebbe sapere è qual è il
percorso attraverso il labirinto come sono supposto
camminare per ottenere tutto questo
soldi e, naturalmente, ho potuto scoprirlo
perché ogni volta potevo guardare ciò che è
il meglio di quei due e qual è il
il meglio di quei due e io potrei ripercorrere il mio
passi ma questo è troppo lavoro che vorrei
preferisco che Excel pensi a me
poi
Lo faccio da solo, quindi cosa farò
è invece di stampare i valori che sono
andando a stampare i pad con freccia come
i simboli e quelli come simboli sono
andando a indicare come sto camminando
attraverso il labirinto quindi qui è relativamente
facile perché di nuovo se siamo sul
confine del labirinto lì ha scelto un modo
potremmo andare su e in questo caso a sinistra
quelle sono le uniche opzioni che abbiamo
perché stiamo solo camminando, adesso
tornando indietro così stiamo solo camminando
allora in questo caso se voglio rilevare
da dove venivo dal mio ottimale
soluzione, posso solo dire che sto andando
puntare al massimo se il massimo è
sopra di me ho intenzione di stampare questo e se
il massimo è accanto a me che sto andando a
stampalo e ora abbiamo una specie di a
Il campo vettoriale del nostro labirinto Lutz sembra
interessante e potrei dire che è risolto
perché posso solo seguire le frecce ora
Potrei andare così a due in questo modo e
allora è così che siamo
andando ma ancora è troppo pensare
quindi modifichiamo la formula un po ‘
un po ‘tale che la soluzione sembra
un po ‘più bello, sto solo andando a stampare
qualcosa se la cella viene puntata
solo se sono veramente grasso lo sono
stampa e altrimenti ho solo marchi e
all’albero dell’antis perché quello guarderà
molto carina quindi andiamo se il valore
sotto di me è questo se voglio dire la punta verso
dal basso poi sto stampando
qualcosa e altrimenti sto stampando il
stringa vuota ancora una specie di facile per
male sembra carino ma siamo solo
andando da una parte ora vedi che siamo solo
salendo e il primo pipistrello che abbiamo
qui è ora in stallo quindi ne abbiamo bisogno ancora uno
cosa perché ora stiamo solo indicando
che da sotto vogliamo anche stampare se
lo puntiamo ai lati
quasi lo stesso aggiungiamo questo
stiamo solo dicendo se il valore accanto a
noi siamo quella freccia che stampiamo pure
e altrimenti è la stringa vuota e
allora capiamo questo
questa è la nostra cattiva moda che fa soldi
vero tutto il labirinto ed è davvero un
formula molto semplice è solo se io sono
indicato che sto per stampare il
massimo e altrimenti stampo il vuoto
stringa e il bel valore aggiunto che tu
vedi ora il potere della programmazione dal vivo
e avendo i dati e le formule
insieme è questo ogni passo del cammino
era molto chiaro cosa stava succedendo adesso
Sto stampando i valori ora sto stampando
archi sei molto in contatto con il tuo
dati considerando che se lo stai facendo
leggendo da un file di testo probabilmente lo sei
usando penna e carta per tracciare bene
cosa sto stampando quello che sto facendo?
ci sono dichiarazioni di stampa ovunque o
stai usando il debugger devi
spendere un sacco di sforzi per rimanere in contatto
con le tue ore di dati qui gli occhi del giorno
è proprio lì che ti sta urlando
mi piace usare
dammi alcune formule e lo dirò
tu quello che sto facendo e quello che fa
programmazione di fogli di calcolo davvero molto molto
facile e intuitivo
quindi in sintesi i fogli di calcolo sono buoni se
tutti hanno detto che qualcuno vicino a te ha detto
è solo un foglio di calcolo li ha colpiti sul
dirigiti con qualcosa che li dica davvero
i fogli di calcolo non veri sono reali
programmazione ed è super cool così
Certo, questa è l’idea principale
dietro tutta la ricerca che sto facendo a
La Delft University of Technology è se
i fogli di calcolo sono codice quindi forse loro
abbiamo bisogno di un po ‘di ingegneria del software , forse noi
come gli ingegneri del software sanno come
sostenere le persone che stanno costruendo
fogli di calcolo perché nel software come me
detto all’inizio del mio discorso trenta
anni fa 25 anni fa tutti erano un
la programmazione per l’ utente finale era tutto
costruendo il proprio compilatore e poi 10
anni dopo le persone erano come oh sì no
il programma è così ardente probabilmente lo abbiamo fatto
perso un compilatore e anche la persona che
costruito non funziona più qui
è morto e no, quindi abbiamo visto quelli
problemi e ci rendiamo conto come comunità noi
bisogno di migliorare abbiamo bisogno di costruirne alcuni
strumenti per aiutare le persone a mantenere
nel codice legacy, quindi se si guarda a
moderno cioè quando questo screenshot non lo è
tutto ciò più moderno, ma se guardi
ad un IDE lo vedi come tutti i tipi
di funzionalità come il debug e il test
e analizzando quelle caratteristiche non lo sono
aiutandomi a costruire codici per scrivere codici
mi stanno aiutando a scrivere responsabile
codice per essere un buon sviluppatore che sto andando a
testare il mio codice vado ad analizzare il codice
metriche da ora e poi è così
aiutandomi a essere un buon sviluppatore allora
se guardo Excel sì, ha il supporto
per fare cose su diversi telefoni o
un colore diverso per il quale non ha supporto
tutto ciò che nessun IDE sta mentendo aiuta le caratteristiche
sviluppatori di fogli di calcolo per costruire bene
fogli di calcolo quindi se hanno il
prima versione del mio del primo esempio
Ti ho mostrato con due volte a tre o
usano nomi carini per tutto no
almeno non l’interfaccia
dicendo loro forse non dovresti
non dovrebbe andare tutto un cinque forse
dovrebbe dare alcuni nomi qua e là così
andiamo fogli di calcolo sono così simili a
il codice sorgente è ciò che osservo forse noi
può aiutare
sviluppatori di fogli di calcolo con alcune idee
dalla fonte da così per l’ingegneria così
una delle cose che costruisco mi PC
la dissertazione è l’idea di odori di codice
per le formule del foglio di calcolo, ad esempio il
metodo lungo odore se hai un metodo
è molto lungo che fa molto
cose che facilmente traducono a lungo
formula se hai una formula e poi
non stiamo dicendo molto a lungo in termini di
vera lunghezza ma stiamo guardando il
numero di diverse operazioni così dentro
questa formula stiamo riassumendo e
moltiplicando e dividendo se un sacco è
andando avanti in una formula è solo un puzzolente
e per la stessa ragione lunga
Metodista puzza un altro odore che conosciamo
dal codice sorgente sono i molti parametri
odori hai un metodo e ha tutto
queste manopole e pulsanti che puoi premere
non è molto manutenibile bene se tu
guarda il formato del foglio di calcolo che è
riferendosi a quello e quello e quello e
che molto molto difficile da leggere
la complessità condizionale è un odore che è
esattamente si traduce in fogli di calcolo noi
avere un se così si può pasticciare e io
era un limite, penso a sette
strati di nidificazione ma per ragioni
a me ignoto hanno sollevato quella banda
in modo da poter ora nido fino a che avevo e io ero
sessantaquattro profondità o qualcosa di simile
oh questo succede davvero davvero
la gente annida sei sette otto se bene se
devi essere bug che è solo
qualcosa di orribile che abbiamo anche ispezionato
l’uso o l’occorrenza di cloni come
sappiamo che i cloni nel codice sorgente possono essere cattivi
perché se tu hai lo stesso
funzionalità in più posti se tu
devi fare un cambiamento deve essere
cambiato ovunque questo accade in Excel
anche per esempio in questa formula tu
avere questa formula di zuppa che si verifica due volte
e questo non è solo male per
manutenibilità ma in realtà anche per
velocità di esecuzione di Excel perché la via
il modello di caching di Excel funziona è Excel
le cache vendono i risultati ma non memorizzano nella cache
tutte le sotto-formule quindi il motore di esecuzione
in questo caso sarebbe come se tu lo volessi
avere l’esponente di zero meno G 36
tempi C 36 nessun problema calcolare piscina e
allora sarebbe lì e poi di nuovo noi
pensa oh l’esponente di 0 meno 336 it
non ricorderei che è già stato
calcolata quindi se volete estrarre che
parte secondaria in una cella che otterresti anche tu
il vantaggio aggiunto di maggiore velocità perché
è calcolato solo in una volta, quindi abbiamo trovato
che quegli odori non si verificano solo al
livello di formula abbiamo uno strumento che
visualizza le dipendenze tra
fogli di lavoro come puoi vedere qui così
i blocchi sono fogli di lavoro e le frecce
collega il foglio di lavoro, quindi se c’è un
formula qui che sarebbe una formula in
calcolo 2 che direbbe input a 1
volte 12 o qualcosa del genere così
sfortunatamente non tutte le visualizzazioni
sembrava come strutturato come questo un po ‘
le visualizzazioni sembrano ancora ok
alcuni effetti grafici simile a questa, che
è particolarmente interessante che non puoi
leggilo ma questi sono i tre quarti
2 3 e 4 con il mese corrispondente
ma questo è q1 con gennaio febbraio e
Marzo quindi in qualche modo ha avuto un diverso
struttura di tutte le altre mamme intendo
abbiamo chiesto alla persona che costruisce questo lui
detto sì sì
sai che ho iniziato come un prototipo in
Q1 e io non sapevo veramente cosa
voluto ancora
e poi in q2 ovviamente ho iniziato tutto
di nuovo e poi sapevo davvero come
costruisci il mio modello ma poi ovviamente il tempo
passò e man mano che divenne divenne gennaio
di nuovo me ne sono completamente dimenticato prima
il quarto era come la schiena di un tovagliolo
non sapevo cosa sto costruendo ancora nel
modello di stato di vita con quei due
calcoli diversi così come faresti
sapere senza uno strumento di visualizzazione come
queste altre visualizzazioni assomigliano a questo
anche interessante quindi è olandese per
foglio 1 e G 2 non si può davvero vedere ma
questa è una freccia che va in entrambe le direzioni, quindi tutto
i dati sono passati da un foglio di lavoro a
l’altro quello che è successo là era
che aveva tutti i tipi di fogli di lavoro
la stessa struttura e tutti questi
le formule erano collegate e tutto il
le formule e l’altra parte erano
collegamento degli stessi fogli di lavoro così
c’era sicuramente un’opportunità
lì per ristrutturare abbiamo visto
visualizzazione come questa dove il
i blocchi rosati sono fogli di lavoro esterni
quindi questo foglio di calcolo si riferisce a
fogli di lavoro diversi in file diversi
così hanno ottenuto questa cosa la scheda del modello
da dove abbiamo preso e il tutto
processo intorno a esso era la gente che inviava per e- mail
alcuni fogli di lavoro sono stati messi in un
cartella speciale e quindi si apre il
foglio di calcolo ed è stato liberato tutto il
altri fogli di calcolo sì esattamente lo sai
era molto traballante dire il minimo
abbiamo concluso che quegli odori no
davvero si verificano solo a formula individuale
livello ma puoi anche avere inter
foglio di lavoro puzza anche tu puoi avere
gli odori inter-classe quindi chissà cosa
odoro queste classi stanno esibendo quando
Ho fatto questo discorso in un’altra conferenza
qualcuno ha urlato una cattiva nomenclatura che è vera
quando ero quello che stavo andando e io
era troppo pigro per cambiare le mie diapositive così è
Non male
sì una t-shirt per te questo è il
caratteristica e odoriamo perché questo metodo
qui XY è che è invidioso il suo geloso
di quei meravigliosi campi X & Y in classe A
preferirebbe vivere in classe A dove
i campi sono così interessanti
in questo è un odore che anche facilmente
trasforma in fogli di calcolo se ne hai uno
formula che fa riferimento alle celle su un’altra
foglio di lavoro allora probabilmente è meglio se
andrebbe lì, questo è un esempio
da un effettivo insieme di fogli di calcolo aperti
che abbiamo analizzato così vedete le formule
così così siamo in entrata
foglio di lavoro di dichiarazione e abbiamo questo
formula quindi se ti se il quo se il mio capo
mi chiede cosa fa veramente quella formula
davvero fare ah se devo debugarlo
sarebbe andato come questo
okay fondi richiesti b9 che sono edifici
ammontare della quantità di edifici divisi per
una richiesta fondi c9 che è l’ammortamento
degli edifici ecc ecc devi andare
avanti e indietro tra tutte quelle cellule
tutto il tempo per leggere davvero quello che sta succedendo
su poi sappiamo dalla scienza cognitiva
quegli interruttori di contesto sono molto costosi
se devi cambiare visualizzazione tutte le volte
è super fastidioso, quindi quello che potresti
fare è prendere quella formula e indossarla
il foglio di lavoro dei fondi necessari basta prendere
e copialo incollalo lì e aggiunto
il vantaggio è che se si fa clic ora
Excel raffredderà la dipendenza per te
il che è carino, intendo che è ancora un po ‘
un arcobaleno perché questi è in realtà
tre diversi schermo a colori ma a
almeno è meglio perché puoi ordinare
di vedere cosa sta succedendo e tu no
bisogno di prefissi più o perché
sei già sui fondi necessari
foglio di lavoro o puoi lasciarli quali
rende il modulo un carico più breve e quindi
inizi a vedere qualche struttura tutta tua
queste tre cose sono separate l’una dall’altra
più queste tre cose divise per ciascuna
altro quindi è davvero molto meglio
è nel codice sorgente per posizionare il
formula a cui appartiene
oh potresti calcolare 2/12 è vero
questo è assolutamente vero, quindi abbiamo iniziato
una società spin-off chiamata importazione sbagliata
abbiamo uno strumento che fa questo odore
rilevamento per te rapida pausa pubblicitaria
dove puoi semplicemente caricare il tuo
foglio di calcolo e vi diciamo tutto il
odori che sono lì così questo sarebbe
essere come sarà per il
foglio di calcolo ti ho appena mostrato bene
lì poi ci sono più di 10 riferimenti
a quel foglio di lavoro dovresti spostarlo
un foglio diverso, ovviamente se tu
dì odori dici che ho le mie speranze quando
sei davvero rassicurante se sì
hai odori quindi dovresti refactoring
il tuo codice sorgente che vale anche per
fogli di calcolo così oltre a dare
i suggerimenti come abbiamo fatto nel
iniziando nella diapositiva che ti ho mostrato
ha anche uno strumento di refactoring che aiuta
la gente rifatta il loro foglio di calcolo così
è così che sembra che si chiami
calabrone e l’ utente del foglio di calcolo può
chiedi ad esempio per questa formula è a
semplice esempio ma è la somma divisa per
account in modo da poter utilizzare anche una media
funziona così forse questa persona non lo è
consapevole che esiste una funzione media
probabilmente in questo caso sarebbe a conoscenza
là per esempio anche refactoring
supporti per alberi che vanno dal presupposto a
assumere se e non tutti sanno cosa sia
alcuni è o come funziona in modo che tu possa
chiedi calabrone ne hai un po ‘
riscrive interessanti per me posso
migliorare questa formula e dice sì sicuro
abbiamo alcuni account in media
refactoring per te e come in moderno
ID si ottiene un’anteprima pure questo è
come sarà la formula se tu
avere un refactoring e poi puoi
applicalo e il film verrà applicato
la formula per te e per quelli
le trasformazioni sono programmabili quindi boom
lo sarà se lo hai scaricato viene
con una serie di refactoring ma puoi farlo
scrivi anche i tuoi refrattari in a
poco lingua ecco ad esempio, è
la somma e conta in media
organizzazione del nuoto refactoring divisa per
il conteggio della stessa gamma risulta
la media di tale intervallo, quindi non abbiamo
provato questo con gli utenti, se ne hai
utenti di fogli di calcolo in
la tua compagnia fammi sapere alla fine di
questo discorso ma lo immaginiamo
utenti di fogli di calcolo che sono utenti esperti
che possono scrivere formule di array e
forse possiamo scrivere alcuni VB ci pensiamo
potrebbe anche essere in grado di scrivere quelli
trasformazioni stesse e in
Inoltre vogliamo anche esplorare il
idea di programmazione con l’esempio qui a
un po ‘dove se osserviamo un utente è
cambiando le formule alcuni di loro potremmo
dedurre un modello di refactoring da esso e
di ‘hey stai facendo la stessa cosa
forse possiamo applicare questa trasformazione
per te nell’intero foglio di calcolo se
ti interessa provarlo o vuoi farlo
incoraggiare gli utenti aziendali nella vostra azienda
per provarlo puoi scaricarlo da
slash calabrone bumblebee tutti i link
sarà anche nella slide finale così tu
non necessariamente per fare una foto o
non ti aspetterò allora se dici
refactoring ovviamente dici che è un
brava donna che non è sì test
non hai intenzione di refactoring tuo
foglio di calcolo senza la sicurezza di alcuni
test e questo è in realtà fare haha ​​oh
non credete nei test che è
capita abbastanza bene
ok, quindi questo è in realtà il cronologico
ordine in cui ho fatto il lavoro ma è così
avrebbe avuto senso anche iniziare
test per farlo almeno prima
refactoring tuttavia e questo era tipico
pensando di torre d’avorio pensavo di sì ma
come faccio a ottenere gli utenti di fogli di calcolo
per testare e convincere la loro gestione a
prova è già abbastanza difficile da ottenere
sviluppatori professionisti da testare e a
dai loro capi che sai di averli
ottenere il permesso per il test, ma questo era
davvero pensando nel modo sbagliato perché
gli utenti di fogli di calcolo sono in realtà abbastanza
bravo a test abbiamo osservato nello stesso
insieme di dati aperto ho parlato in precedenza
che questo tipo di formule sono in realtà
abbastanza comune quindi ciò che esprime è
se la somma di quei ragazzi se ci sono
100% insieme emette 100 ma se lo è
non fuori
o questo è come un test è come un
asserzione esprime la conoscenza
che quelle cinque cose insieme dovrebbero
essere al cento per cento e nella mancanza di
vero quadro di prova cosa fare
gli utenti di fogli di calcolo utilizzano per le formule che
non abbiamo altre lingue e formule
trovato quell’otto per cento dei fogli di calcolo
che abbiamo analizzato aveva questo tipo di test
formula in modo che non siano tutti così dentro
comune e poi ovviamente abbiamo pensato eh
potremmo sfruttare quelle formule di prova se
la gente sta già provando un po ‘
potremmo usarlo per estrarre un test
suite così costruiamo un ordine da codificare
espettoria e puoi chiedere all’espettatore di farlo
cercare quel tipo di formule di prova
nel tuo foglio di calcolo e poi direi
hey guarda quello
Ho trovato una formula che sembra un po ‘
un po ‘ come un test usiamo alcune euristiche
così abbiamo un numero di parole
sappiamo che sembrano uscite di prova così
okay eo sì / no nella vita reale
fogli di calcolo abbiamo persino trovato delle formule di prova
emettendo in faccina o una faccia triste
a seconda dei risultati del test
sicuramente quindi sappiamo che test
formula è che diciamo hey cosa abbiamo trovato qui
è che vendono su quella formula netta
cell esprime che quei ragazzi dovrebbero essere
100% e come vedi abbiamo fatto un po ‘
analizzando qui per rappresentare il test
formula in linguaggio naturale per farlo
più facile per le persone vederlo e poi tu
può aggiungere quelle formule alla suite di test
puoi avere il piccolo segno di spunta Salva
i test e poi diciamo bene che è passato
quel test passa perché questo è in realtà
cento per cento e nessuno dei test
fallito e quello che facciamo è mostrare
copertura degli utenti delle loro prove che possono
dimmi , dimmi cosa è provato e tutto
questo è coperto da un test formalizzato
segnato di giallo e questo è perché questo
è una formula di test che dipende da quelli
le cellule diciamo che sono testate pure così
non stiamo davvero parlando di copertura delle filiali
o la dichiarazione copre qui modi avanzati
di copertura vogliamo solo dare agli utenti un
senti per quanto bene tutto è testato
quindi se hai un test tutto il
e anche testato quasi come se, naturalmente
cambieresti allora uno degli anni ’20
che si presentava questo non è infallibile
certo perché lo si potrebbe anche essere e
ci sono modi che potresti avere
altre cellule qui che dipendono da esso è
non infallibile, tuttavia sta aiutando a
un po ‘dando alla gente un’idea di
cosa sta testando ciò che facciamo anche noi
aiutare le persone quindi aggiungere più test e
invece di lasciarli liberi noi
pensato che potrebbe essere più facile da dare
loro una formula per testare che ho cinque
minuti prima che io vada ad una riunione
lasciatemi aggiungere un test alla mia formula così
che puoi scegliere in tre categorie a
formula complessa una formula con un grande
valore che rappresenta un sacco di soldi o
un sacco di ordini o qualsiasi altra cosa o formula
che ha molti precedenti che così tanti
le cellule si riferiscono a così si potrebbe dire
per esempio se chiedi un complesso
formula hey questa formula qui sembra
sembra piuttosto carino, probabilmente
qualcosa che vuoi testare se solo tu
voglio aggiungere un test e poi puoi
esprimere una prova test edificio in modo da
potrei dire che è un numero questo è il
limite superiore il limite inferiore e in a
versione leggermente più recente dei due noi
hanno anche un valore extra lì dove
gli utenti possono scrivere una formula così qualunque sia
formula hanno vinto perché abbiamo trovato questo
è un po ‘troppo restrittivo
tipi e limiti superiori e inferiori e noi
dai complimenti alle persone che diciamo meravigliose
hai aumentato la copertura del test
dal 6% all’8% che vuoi incoraggiare
persone e mostrale più in alto
la copertura è davvero meglio così abbiamo
aggiunto due test quindi ora vedi il nostro test
suite è nuda perché ora tre test
sono passati e ancora più in mancanza di
anche questo strumento è disponibile dal mio
sito web compilare un piccolo pettine
aspettarsi overages a questo punto dando il
plugin gratis perché è
ricerca attiva e quindi nessuna garanzia se
non funziona puoi mandarmi una email
ma probabilmente non c’è nulla che io possa fare
a tale proposito
questo è tutto ciò che volevo condividere
con voi, ma prima di andare verso
domande penso che abbiamo un po ‘di tempo
per domande abbiamo un po ‘di tempo per
domande
lasciatemi riassumere la mia intera conversazione per te
in un minuto quindi se sei arrivato tardi o
è la fine della giornata e tu sei
un po ‘assonnato, questo è il tuo secondo
possibilità di ottenere il succo del discorso in
come 30 secondi e, naturalmente, come no
questa è una preparazione ottimale per
fogli di calcolo per chiedere le domande i nostri codici
è il messaggio più importante per
ricorda e racconta tutti i tuoi amici e
twittalo e mettilo su un tee
camicie perché perché sono usati per
problemi simili ci sono proprio come
potente cioè turing-completo e loro
soffrono dell’ingegneria del software tipica
problemi ancora più freschi sono ciò che tutti
il linguaggio di programmazione nel 2016 vuole essere
vivo e funzionale e utilizzato da tutti
cos’altro c’è da desiderare che abbia mostrato
alcuni esempi di come implementare
problemi di programmazione della vita reale in un
modo semplice in un foglio di calcolo tra cui un
bello può essere risolto con la programmazione dinamica
quindi se i fogli di calcolo sono davvero codice loro
può usare un po ‘così per l’ingegneria
magia e ti ho mostrato che nel
forma di uno strumento di rilevamento degli odori ogni
frattura da e per attestare se si vuole
per saperne di più questo è il sito perfetto
eccellere dello strumento di rilevamento degli odori che
è ora disponibile in commercio puoi andare
al mio sito Web per scaricare il
refactoring e anche uno strumento di test
perché sono ancora attivi in ​​corso
ricerca e vogliamo davvero che le persone lo facciano
provalo e ho un gruppo di ricerca in
Anche a Delft dove faccio forza
agli studenti piace anche questo e tu puoi
scopri di più su tutti i tipi di
ricerca che facciamo nei nostri siti web Prezi Lab
il lauric e se vuoi connetterti
con me più tardi sarò alla festa
stasera puoi mandarmi un tweet se tu
vuoi incontrare o una mail o puoi chiedere
una domanda ora, naturalmente
sì, una domanda è qual è la
raggiungere la gente che cosa non è il pubblico
tutti userebbero Excel come faccio bene
alcune persone lo usano in modo molto più
modi avanzati di me con il mio piccolo
esempio di programmazione quindi ovviamente lì
sono persone che lo usano solo per semplicità
liste ma ci sono aziende e
organizzazioni da cui dipende davvero
Excel per quel core business così
banche di assicurazioni banche che davvero
creare modelli da cui l’azienda dipende
quindi pensiamo che ci siano molte persone
che potrebbe beneficiare di questo tipo di
software sì, è solo un utente di Excel
è molto difficile per noi sapere quanti
gente che conosci dov’è la soglia di
uso serio a che punto sono anch’io
significa una domanda generale per gli sviluppatori
a che punto vale la pena andare
blocco note più plus per un IDE a pieno titolo
perché avresti refactoring
il supporto è che non è molto semplice
domanda a cui rispondere e potrebbe anche
dipende dal tuo andare bene in realtà sono dentro
due settimane andranno per una ricerca
visita lavorerò lì per tre mesi
per migliorare Excel e forse anche
Non sono sicuro che mi daranno un
dato che guardi i dati ma sì loro
in realtà ero uno dei finanziatori del mio
Posizione di dottorato in modo che siano consapevoli

Please follow and like us: