Omegapoint

2011-09-08

JavaZone X Oslo onsdag 7 september 2011


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

Om Omegapoint

Omegapoint AB är ledande rådgivare och experter inom Systemarkitektur, Säkerhet och IT-ledning.

Twitter uppdateringar

Omegapoints kvitterström:

    Andra Omegapointbloggar