Upload
manssandstrom
View
354
Download
1
Embed Size (px)
DESCRIPTION
Citation preview
Enkelhet som medel, möjlighet som mål
Lätt som en plätt
” Gör allt så enkelt som möjligt, men inte enklare.” – Albert Einstein
Hej jag heter Niklas
Jag jobbar med "IT".
Just Do
".. the simplest thing that could possibly work."
Resten är upp till oss
Vid givna tillfällen. På givna platser.
Vad gör det om hundra år?
Vad är det egentligen vi gör?
"Det borde väl inte vara så svårt?"
"Varför tar det så'n tid?"
"Hur många möjliga sätt kan det finnas egentligen?"
Person
nameage
Idag, igår, imorrn
nameage ← FAIL
Förenkling
Födelsedatum: år 1978, månad 2, dag 12 — enligt gregorianska kalenderräkningen.
Räkna ut nuvarande ålder.
Precision
birthDate (”en tidpunkt som representerar en persons födelse")
"1978-02-12" (W3C.Date)
● En sträng av bytes (01001.. ASCII.. UTF-8..)● Som tolkas
Kontext
Kontext är gud.
Finns överallt.
Går inte att undkomma.
Ett steg längre
Tänk långsiktigt för att undvika upprepat arbete.
age += 1
Gå för långt?
Löskopplad, sömlöst integrerbar, pluggbar flerlagersarkitektur.
I praktiken:
● Monolitiska system● Djupa arkitekturer● Enkelriktade designbeslut● Feodala ramverk
Dold komplexitet
All problems can be solved by adding one more layer of indirection.
Except for the problem of indirection.
Det värsta..
.. är inte 1000 rader procedurell kod fullproppad med muterbara variabler.
Diffust
Det är när en tvetydighet uppträder i — och delas mellan — system.
Tolkningar smittar
Exempel:
"Kurskoden är egentligen ett databas-id för enskilda tilfällen."
Tydliggör
Sträva efter platta gränssnitt, där tolkningar (detaljer) tydligt framträder.
● Platt: på samma abstraktionsnivå● Inte för "djupt", inte för "brett"● Täta skott
Enkla beslut
Enkelhet kräver beslut.
● "vi ska ta emot X"● "kunna styra på Y"● "leverera Z"
Goda råd är dyra
Beslut kostar. Låt andra välja/välja bort.
Att värdera råd kräver kompetens.
Konsensus
IETF, W3C, "de facto"..
● datumformat● referenser (webbadresser)● listor (feeds)
Stå på giganters axlar
Vilkas? Flera? Hur länge?
POSIX, TCP, HTTP
J(2)EE? Spring? "Nothing"?
SOAP.. REST
Byta spår
Hushåll beroenden
Blanda inte ihop implementationen med den behandlade informationen.
UNIX-filosofin
● Gör en sak och gör den bra
● Skriv program som fungerar ihop
● Hantera textströmmar, eftersom det utgör ett
universiellt gränssnitt
Tänk på att..
Enkelt: lätt att förstå
Kräver: sammanhang
Som är: komplexa
Möjligheter
Tydliggör sammanhanget
Ta bort onödiga beslut
Tack!
Niklas Lindström, Valtech
Bilderna i denna presentation (CC):
"Cave Man Blog 2"http://www.flickr.com/photos/ittybittiesforyou/3413099218/
"P6086146"http://www.flickr.com/photos/ingythewingy/2584243648/
"wired things get strange"http://www.flickr.com/photos/jorgempf/68987189/
"Street wirescape"http://www.flickr.com/photos/ivva/2266608131/in/set-72157600234918432/