Jimmy Nilsson

Jimmy NilssonÄr en av grundarna samt VD för factor10. Han har skrivit böckerna "Applying Domain-Driven Design and Patterns" [ADDDP] och ".NET Enterprise Design" [NED]. Han håller utbildningar och talar på konferenser som OOPSLA, JAOO, Øredev, Jfokus, SDC, VSLive, NDC, Devsummit och Expo-C. Men framförallt är han en utvecklare med 20 års erfarenhet.

Twitter: @jimmynilsson
Homepage: Visit Page

Carl Mäsak

Carl Masak Carl har arbetat inom mjukvarubranchen de senaste 15 åren. Hans erfarenhet spänner över ett stort antal paradigm och plattformar, och han har utvecklat allt från skräddarsydda websidor och bioinformatik-toolkits till grammatikmotorer och kompilatorer. Hans specialitet är att skriva system som samordnar och systematiserar stora mängder heterogen data -- eller, mer vardagligt, "att bringa ordning i kaos". Han tycker även om att läka stora system som är i behov av en arkitekt. Carl bor i Lund och jobbar åt Edument AB.

Twitter: @carlmasak
Homepage: Visit Page

Jonathan Worthington

Johanathan Worthington From business applications to compiler writing, and from .Net to Perl, Jonathan has a wide range of software development experience. He deeply believes that good development has to be a strongly holistic activity, drawing on mathematics, engineering, linguistics, economics, psychology and more. By looking at insights from many fields, he works hard to deliver solid and maintainable software solutions. Originally from the UK, and having spent time in Spain and Slovakia, Jonathan is currently based in Sweden and working for Edument AB.

Twitter: @jnthnwrthngtn
Email: jonathan@edument.se
Homepage: Visit Page

Andreas Krohn

Andreas Krohn är en API-specialist som har arbetat med API:er och mashups de senaste 6 åren. Han tror fullt och fast att öppen data och öppna API:er kan leda till ett bättre samhälle och affärsklimat. Han bloggar om detta på mashup.se, Sveriges ledande blogg om API:er.

Twitter: @andreaskrohn
Homepage: Visit Page

Software Architecture Community Day 2011

For this event, we went all out to bring together some great speakers and talks. Jimmy Nilsson discussed Domain Driven Design, sharing his practical experiences of applying it. API expert Andreas Krohn talked about the importance of APIs and presented a range of best practices.

Meanwhile, Edument's Carl Mäsak introduced CQRS and Event Sourcing, while Jonathan Worthington put on his linguistic hat and looked at the role of language in software development, as well as delivering an entertaining, yet challenging session about common failings in software architecture.

The Role of Language in Software Development

Jonathan Worthington

Our use of language is part of what makes us human. To know a language is to be part of the culture that speaks it, and it's through language that knowledge is passed down from generation to generation. For many, language is a source of fascination.

While the role of mathematics and engineering is often discussed in the realm of software development, the role of language has been given less attention. In this talk, we'll see what happens if start to take language seriously. From domain analysis to API design, from multi-paradigm development to security, we'll discover some new ways of looking at familiar things, which will help us to design and develop better solutions, and provide a better framework for understanding some of the challenges we face as architects and developers. Föreläsning på engelska

Introduktion till DDD

Jimmy Nilsson

I denna presentation kommer vi att jämföra ett databasdrivet sätt att utveckla mjukvara med ett mer DDD-inspirerat sätt. På vägen kommer vi att beröra olika DDD-begrepp: de grundläggande byggstenarna, det gemensamma språket och strategisk design. Vi kommer också att fokusera på frågan "varför?" genom att diskutera motivationen bakom dessa begrepp.

Slutet för CRUD?

Carl Mäsak

Som industri har vi investerat stort i ramverk och arkitekturer som är uppbyggda runt endast fyra verb: "Create", "Read", "Update" och "Delete" (CRUD). Med detta tänkesätt i ryggmärgen hamnar vi ofta i banor där vi substantiverar verb kors och tvärs, kastar bort information om operationers syfte, och bygger användargränssnitt runt en viss lagringsmodell istället för runt de uppgifter användaren bryr sig om.

CQRS - "Command/Query Responsibility Segregation" - är en arkitektur som utmanar oss att tänka annorlunda. Istället för att utgå ifrån "redigering" av ett antal entiteter, uppmanas vi att tänka i termer av semantiska operationer. Istället för CRUD-baserade användargränssnitt, uppmanas vi att bygga uppgiftsbaserade gränssnitt (task-based UIs). Istället för att förvänta oss att data skickas in i ett system på samma sätt som användaren vill ha den presenterad, och samtidigt försöka skala OLTP för en stor mängd läsoperationer, ser vi till att skilja helt på läs- och skrivarkitekturerna.

Resultatet är system som fungerar bättre för användare, är lättare att skala och ger högre avkastning.

DDD i praktiken

Jimmy Nilsson

Om du har bestämt dig för att komma igång med DDD, kommer den här presentationen att föra dig i rätt startriktning. Vi kommer att utforska ett exempelprojekt och ta en närmare titt på olika aspekter: processen, arkitekturen, koden, de automatiserade testerna och persistens.

Varför API:er är viktiga

Andreas Krohn

API-er är ett fantastiskt sätt att förmedla data. Med API-er är det lätt att bygga system som är löst kopplade, både internt och externt, och att låta andra vara innovativa på ens plattform. Företag som Salesforce, Twitter, Facebook och Netflix bygger mycket av sin verksamhet och framgång på API-er, och det blir alltmer tydligt vilken konkurrensfördel det är att ha ett populärt API. I det här föredraget kommer vi att gå igenom varför API-er är viktiga ur en teknologisk såväl som affärsmässig synvinkel.

Ways to fail it at architecture

Jonathan Worthington

Heaps of code that's sufficiently hard to test that nobody really knows how. Error handling designs that seem optimized for letting problems go unnoticed. Logic in Data Transfer Objects. Tens of thousands of lines of generated data access code that doesn't know what a join is. So many different frameworks in a single application that new developers take months to get up to speed. And that's just the start of it...

In this talk, we look through a range of architectural problems spotted in real world applications, try to get to the heart of what's really wrong, and consider how to avoid falling into the same traps. Föreläsning på engelska

Introduktion till Event Sourcing

Carl Mäsak

Konceptet "events" har blivit alltmer populärt inom IT, och det är inte konstigt. De kopplar isär den delen av ett system som vet att någonting har hänt, från de delar som vill reagera på händelsen. Detta skapar en naturlig modell för att bygga användargränssnitt, men har också funnit en stor mängd andra tillämpningar.

Vi brukar tänka på events som någonting med en kort livslängd. Användaren klickar på en knapp, ett event skapas, handlers triggas... och det är allt. I det här föredraget utgår vi från vad som händer om man slutar att betrakta events som flyktiga, och istället ser dem som vår primära datakälla. Istället för att registrera en ny Order genom att skapa en ny rad i en databastabell, lagrar vi ett OrderPlacedEvent. Istället för att registrera att ett hotellrum har avbokats genom att ta bort en rad i en databastabell, lagrar vi ett RoomCancelledEvent.

Denna approach -- känd som Event Sourcing -- blir alltmer uppmärksammad, inte minst för att det gör tidigare ganska utmanande scenarion triviala. Naturligtvis är det avvägningar inblandade, och ett antal nya frågeställningar -- till exempel "hur ska jag kunna ställa frågor överhuvudtaget?" -- som vi också kommer att ta upp under föredraget.

API Best Practices

Andreas Krohn

tt bygga ett framgångsrikt API innebär att man bygger en stabil, säker, och lättanvänd lösning, och förser utvecklare med de verktyg de behöver för att få jobbet gjort. Det är viktigt att följa de ständigt förnyade de facto-standarderna och att undvika att återuppfinna hjulet. REST, OAuth och JSON är några av de viktiga teknologierna, men viktigare än någon specifik teknologi är att bygga en lösning som inbjuder utvecklare att använda ens API. För om ingen använder ens API, varför bygga det överhuvudtaget? Fokus i detta föredrag ligger på att bygga öppna API-er, men samma tips kan även tillämpas på interna API-er.

Frågor. Öppet hus

  • Sponsorer
  • neo Technology
  • Raven DB
  • Event Store
  • Red Gate
  • Jet Brains
    • i samarbete med
    • Informator