JavaZone
X - dag 1
Det
är inte alla konferenser som börjar med live power-bluegrass, fyrverkeri-show
inomhus, hårdrock och raketuppskjutning. Men när JavaZone firar sin tionde
konferens så ligger det väl i traditionen med fakirshow, Rammstein till morgonkaffet
och annat som emellanåt får icke-skandinaver att sätta nyss nämnda kaffe i
vrångstrupen.
Nåväl.
Här är några axplock från mina upplevelser under första dagen.
Long
term value of acceptence tests - Gojko Adzic
Gojko
presenterade slutsatser från sin väldigt omfattande erfarenhet av att arbeta
med tester och testning. Lite förvånande var att han inte ville hålla fram
"undvika regressionsbuggar", om oftast är argumentet för
regressionstestning - automatiserad eller manuell.
Istället
berättade han intressanta historier om situationer där företag och
organisationer haft stor nytta av sin testsvit, men inte på de vanliga
förväntade sätten. Gemensamt för dem alla var att de handlade betydligt mer om
hur testerna fungerat som tillförlitlig dokumentation, framför allt på
verksamhetsnivå.
Gojkos
nyckel till detta var just att låta testerna fokusera på
"verksamhets-dokumentation". Först då kan man få
"kovariant" eller "symmetrisk" förändring, dvs att en liten
ändring i verksamhet/behov/krav blir en liten ändring systemmässigt. Föga
förvånande dyker Domain Driven Design upp med den gemensamma modellen som en
sammanhållande kraft för att hålla verksamhet och system väl linjerade mot
varandra.
Det
här klingar onekligen väldigt väl ihop med den syn på tester som Dan Bryntze
länge förespråkat - att deras långvariga värde står och faller med att de
ligger nära den viktiga verksamheten.
Erfaringer
med Scala i en Java-stack - Nina Heitmann
Nina
(ena halvan av duon Scala Ninjas) gav en case-rapport från ett
"vanligt" team som använt Scala i ungefär ett och ett halvt år. En
intressant twist var att de använt en utpräglad Java-stack med
JSP/SpringMVC/Spring/Hibernate, men med Scala som programmeringsspråk.
De
hade prövat med Lift i början, men det hade fallit på att det var dåligt
dokumenterat då - även om det något som ändrats till nu. Från andra har jag
dock hört att Lift passar otroligt bra med Comet, men om man bygger på något
annat sätt bör man kolla på andra webbramverk.
Det
trassel teamet haft verkar mest ha haft att göra med att ramverken "pratar
Java", så att de till exempel har fått Java-collections från Hibernate och
varit tvungna att konvertera när de vill använda funktionerna som
Scala-collections har. Eller, på ett liknande sätt har de gärna velat använda
Option[] i Scala-koden för verksamhetslogiken, men då har Hibernate haft svårt
att mappa. I stort sätt få saker som krävt något större arbete att få till, men
lösningen har inte blivit så "direkt".
Med
tanke på att halva teamet kunde Java sedan tidigare (den andra halvan var mest
vana med Perl) så trodde hon inte att de sparat särskilt mycket tid på att köra
Scala. Tiden de tjänat på att snabbare kodning går nog jämnt upp med tiden för
inlärning och experiment. Men, å andra sidan har de haft mycket roligare och
det varit mycket intressantare - och det är viktigt. En mycket klarögt
observation.
Continuous
Delivery - Ken Sipe
Ken
Sipe tog avstamp i att Agile Manifesto faktiskt pekar ut "continuous
delivery" som den primära ambitionen i manifestets första princip. Med det
menas att snabbt och tillförlitligt kunna göra täta och kvalitetssäkra
leveranser som gör nytta.
För
att komma dit behöver man rätt mycket teknisk disciplin, t ex vad det gäller
att sätta upp miljöer, att deploya, att kvalitetssäkra. Glöm att sätta upp en
prod- eller test-miljö genom att pilla omkring med installationer och
konfigurationer tills det funkar; om du inte har scriptat det så finns det
ingen chans att kunna reproducera det på något tillförlitligt sätt. Så, scripta
allt och in med det i versionshanterings-systemet. Byggda artefakter (miljöer
och binärer) kan man istället stoppa in i ett repository som
"artifactory".
Två
verktyg att hålla koll på här är Puppet och Chef som båda är inriktade just på
att hålla ordning i miljöerna.
Ytterligare
en drivkraft i denhär riktningen är att t ex finansiella företag i USA har fått
ökade krav på att de i framtiden ska kunna reproducera exakt hur det såg ut i
deras system för t ex en viss dag för sju år sedan - och det gäller såväl data
som miljö och applikation. Har man inte kanonkoll på exakt vad man har gjort så
är givetvis det helt omöjligt.
Så -
agile med "continuous delivery" är väldigt långt från ostrukturerat
och oplanerat cowboy-hackande.
Above
the Clouds: Introducing Akka - Jonas Bonér
Jag
torde ha sett varianter av denhär presentationen åtminstone tre gånger vid det
här laget - men varje gång lär jag mig något nytt. Jonas gör ett snyggt jobb
att plocka ut en liten delmängd av Akka som behövs för att kunna komma igång
att skriva aktor-baserade system - och att sedan presentera den delmängden
snyggt och tydligt. Med ramverk som är så resursmässigt lätta som Akka (en
actor drar typ 600 byte minne, och bara minne) tror jag att actor-system kan
komma stort på många fronter - inte bara finans, gaming, gambling o likn.
Lite
nyheter är att Akka 1.2 kommer att släppas under kommande vecka, den viktigaste
förändringen där är i mina ögon att core-jar:en numera helt saknar beroenden,
utan kan släppas in helt fristående. Detta är givetvis ett viktigt steg på
vägen till det att Akka ska först komplettera och sedan ersätta de
actor-bibliotek som finns i standard-Scala.
Lite
längre fram är även Akka 2.0 på gång - förväntas inom några månader. Stora förändringen
där är att konfiguration har separerats ut ur koden. T ex ska man kunna klustra
och lastbalansera actors mellan flera maskiner genom separata
konfigurationsfiler istället för ändringar i kod. Ser väldigt snyggt ut.
JavaPosse
- Dick Wall, Carl Quinn
JavaPosse
passade på att spela in sin episod 373 (typ) live från stora scenen - med Joe
och Tor uppkopplade via video. När klockan närmar sig sju på kvällen efter en
fullmatad konferensdag slår underhållnings-aspekten igenom rätt mycket. Men,
det var ändå en del intressanta diskussioner där jag särskilt minns frågan om
hur ekosystemet för språk ser ut framöver. Jag håller med analysen att tiden
med "ett språk" är över; ingen av efterträdarna kommer att bli lika
dominerande som Java har varit. Snarare kommer det att finnas en uppsjö av
delvis likartade språk som används för lite olika syften. Ser fram emot att
följa det gamla rådet ur Pragmatic Programmer att lära mig ett språk per år.
Korridors-diskussionerna
Konferenser
som JavaZone är också ett strålande tillfälle att få ett litet snack med en
mängd grymma tekniker. Jag fick ett litet snack med Ken Sipe med några råd om
hur man kan införa "plattform as code" och fasa ut den "gamla
prod-miljön" genom att bygga, deploya och testa prod-versionen av applikationen,
men på den nya (scriptade) plattformen. Ev kan man drifta den versionen bara på
en av noderna i en lastbalanserad kluster. Jonas Bonér delade med sig av lite
tips för "let it crash"-actors där man gärna kan skapa en separat
actor för varje enskild riskfylld uppgift. På så sätt är det uppenbart för
supervisorn vilken uppgift som inte gick bra och behöver startas om. Och med
Erlend Oftedal fick jag en intressant diskussion om relationen mellan AppSec,
kod och DDD. Bara för att nämna några - kort sagt ett strålande tillfälle att
få infallsvinklar från folk man inte möter till vardags.
Eftersom
det var tionde konferensen så drog kvällens fest AweSome igång i full fart och
bar sedan iväg till en trevånings nattklubb som blev rätt fullsmockad. Den
delen gjorde jag dock rätt kort för att istället gå och sova samt ladda för min
egen föreläsning dagen efter.
Inga kommentarer:
Skicka en kommentar