Archive for October, 2009
“Därför bråkar agilister och arkitekter”
Posted by alexander in Kära dagbok on October 28, 2009
Idag tog Computer Sweden upp ett ämne som ligger mig varmt om hjärtat. I artikeln“Därför bråkar agilister och arkitekter” lovar tidningen att “reda ut begreppen”. Jag har tidigare skrivit om ämnet, och försökt problematisera lite.
Computer Sweden gör verkligen en digest av en komplicerad problematik:
Arkitekter=vattenfall, top-down, konstiga standarder
Agilister=kreativa, evolverar fram arkitektur
MEN i stora projekt behövs “arkitekttänk”.
Lösning: kommunikation… typ.
Djupt…
Domändriven design på 15 minuter och 15 sekunder
Posted by alexander in Designprinciper on October 14, 2009
Vad är domändriven design?
Igår var jag på Javaforum igen. Tyvärr var jag tvungen att gå kring sju, så jag missade två av tre presentationer, men fick pizzan i alla fall. Den första presentationen handlade om domändriven design, och talaren hade den otacksamma uppgiften att förklara vad det är på femton minuter. Inte lätt. För oss som läst Evans blev det en helt ok presentation, för man fick höra lite om praktiska erfarenheter.
För de mindre förberedda blev det svårare. Kod på svenska, nya konstiga designmönster, och framför allt – är det inte så man ska designa system? What’s the big deal?
The big deal, på 15 sekunder, är att man kan lätt förklara vad som inte är domändriven design. Låt mig exemplifiera.
Där jag jobbar säljer vi produkter som baseras på månatliga prenumerationer. Det finns bara en produkt. Det som inte är domändriven design, är design som kommer från databasen och uppåt, och där produkten är beskriven med tabellerna Product, Item och Subscription (nej det finns ingen anledning till detta förutom lättja och stajlande i SQL).
Hur kommer detta in i DDD:s ubiquitous language (annorstädes närvarande språk)? Hur kan man prata verksamhet och affärsregler kring detta?
Bilden talar för sig själv
Posted by alexander in Guldkorn aka WTFs on October 13, 2009
Ibland är det otroligt lärorikt att läsa andras kod för att lära sig objektorientering. En del medlemsnamn i skissen nedan är ändrade, dock ej klassnamnen!
SSSSS för Java
Posted by alexander in Mjukvarukvalitet on October 6, 2009
Det är tråkigt att rippa något rakt av, men det här var så bra att det är värt med lite copy’n'paste. I boken “Implementing Lean Software Development” diskuteras ett verktyg som heter the five S’s.
Principen kommer från Japan och handlar om att organisera sin arbetsplats. S:en i sin tur har sina motsvarigheter på både engelska och japanska.
Sort (Seiri)
Systematize(Seiton)
Shine(Seiso)
Standardize(Seiketsu)
Sustain(Shitsuke)
Fär en längre förklaring hänvisar jag till Lean-litteratur. Det viktiga, eller kanske gulliga är att de fem S:en finns för Java:
Sort - Reducera kodbasens storlek; ta bort död kod. Ta bort:
- Död kod
- Oanvända importer, variabler, metoder, klasser
- Refactora redundant kod
Systematize - Organisera projekt och paket. Allt ska ha sin plats:
- Lös upp cykliska beroenden mellan paket
- Minimera beroenden
Shine - Städa upp. Problem blir synliga i en ren miljö:
- 100% unit-tester gröna
- Test coverage > 80%
- Snabbare unit-tester
- Kolla hur snabbt AllTests körs (lite föråldrat)
- Fixa checkstyle-warningar, PMD-varningar samt Javadoc-varningar
- Fixa TODO:s
Standardize - När allt är rent, behåll det så. Förenkla ytterligare.
Sustain - Gör ovanstående.
Listan har tagits fram av en Kent Schnaith, och jag har knyckt den rakt med små justeringar och översättningar. Tyckte att den var så fin…
