Enkelhet som medel möjlighet som mål - Niklas Lindstrom

Preview:

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/

Recommended