När jag nu börjat titta på DDD uppstår frågan:
Hur hanterar man bäst Ubiquitous Language? Modellera på svenska eller
engelska?
Jag utvecklar standardprodukter som i dagsläget är riktade mot den
svenska marknaden men förväntas kunna marknadsföras internationellt.
Här verkar det rimligt att använda engelska, trots att mina
domänexperter för tillfället är svenskar. (En intressant bonus är att
eftersom produkterna innehåller UI på svenska och engelska kan de
användas i multinationella organisationer.)
Ett exempel på kundspecifik lösning: En industri nyttjar ett MPS-
system som har engelska termer. De har ett rapportsystem som hämtar
data från MPS-systemet. Engelska termer i MPS-systemet översätts till
svenska i rapportsystemet. Här uppstår potentiellt ett problem när
användarna diskuterar domänen beroende om man pratar om MPS-systemet
eller en rapport.
Vad är din erfarenhet?
Min erfarenhet är att det är en stor fördel att använda svenska i
domänmodellen/-lagret om man har möjlighet att göra det och alla
inblandade kommunicerar på svenska. Det är helt enkelt en naturlig
konsekvens av idén om UL. De flesta (inkluderade mig tidigare) rynkar
på näsan vid fösta anblick, eftersom det är ovant, man blandar svenska
och engelska (nyckelord) och det ser lite nybörjaraktigt ut (tänk
Skansholm - Java Direkt). Jag skrev ett litet utkast till modell kring
en bloggpost där koden är på svenska som man kan kika på för att få en
känsla för hur det skulle kunna vara:
http://github.com/peterbacklund/mdic/tree/master/src/rma/
som hör till
http://peterbacklund.blogspot.com/2009/10/med-domanen-i-centrum_8234.html
Visst, jobbar man en internationellt är det inte alltid möjligt, men
man kan exempelvis exponera API:er mot andra system som är på
engelska. I vissa domäner är de engelska termerna kanske oerhört väl
inarbetade även i en svensk organisation, så där är det kanske av
mindre värde att programmera på svenska.
> Jag utvecklar standardprodukter som i dagsläget är riktade mot den
> svenska marknaden men förväntas kunna marknadsföras internationellt.
> Här verkar det rimligt att använda engelska, trots att mina
> domänexperter för tillfället är svenskar. (En intressant bonus är att
> eftersom produkterna innehåller UI på svenska och engelska kan de
> användas i multinationella organisationer.)
Att det finns användargränssnitt och användare som använder det
engelska språket tvingar inte UL att vara på engelska, utan det
viktiga är att kunskapsöverföring och -strukturering från DE til
utvecklare sker på ett så friktionsfritt sätt som möjligt.
> Ett exempel på kundspecifik lösning: En industri nyttjar ett MPS-
> system som har engelska termer. De har ett rapportsystem som hämtar
> data från MPS-systemet. Engelska termer i MPS-systemet översätts till
> svenska i rapportsystemet. Här uppstår potentiellt ett problem när
> användarna diskuterar domänen beroende om man pratar om MPS-systemet
> eller en rapport.
Det här låter som ett klassiskt exempel på två olika modeller (av
samma domän(?)) som lever i var sin bounded context. Det blir väldigt
tydligt när det dessutom involverar två olika språk. Jag skulle säga
att det bästa är att bejaka skillnaden och göra gränsen tydlig.
--
Det här meddelandet skickas till dig eftersom du prenumererar på gruppen DDD Sverige i Google Groups.
Om du vill göra ett inlägg i den här gruppen skickar du e-post till dddsv...@googlegroups.com.
Om du vill sluta prenumerera på den här gruppen skickar du e-post till dddsverige+...@googlegroups.com.
För fler alternativ, besök gruppen på http://groups.google.com/group/dddsverige?hl=sv.
Intressant, vi kör också pattern-namn på engelska och resten på
svenska (med åäö), typ ResursområdeRepository osv.
Vilka specifika problem stöter folk på med infrastruktur och svenska
tecken förresten? Jag har inte upptäckt något annat än att IntelliJ
inte kompletterar korrekt från CamelCase (typ ReRe ovan), och samma
sak med "öppna klass" (ctrl-n eller äpple-n). Annars funkar det
perfekt i SVN + IntelliJ + Java 6 + Maven + Mac/Win/Lin.
Skulle ni säga att ni lättare hittar rätt domänmodell genom att
använda svenska termer?
Är det någon som försöker sig på att även översätta mönsternamn?
PersonFabrik verkar lite... Konstigt ;)
Jag är mycket intresserad att prova svenska termer i mitt nästa
projekt.
Blir lite avundsjuk på dom som utvecklar för de engelskspråkiga
marknaderna. Med engelska som modersmål blir det ytterligare fördelar
som jag ser det.
Tack för länken till mdic-projektet, Peter. Snackar själv C# men med
närheten till Java så det blir definitivt en tillgång under mina
äventyr inom DDD.
Visual C++ 6.0 har haft problem med internationella tecken i
programkod. Antar att problemen är färre (borta?) i nyare versioner av
Microsofts utvecklingsprodukter. Att klippa "prickarna" på å, ä och ö
verkar ändå vara lämpligt.
Skulle ni säga att ni lättare hittar rätt domänmodell genom att
använda svenska termer?
Är det någon som försöker sig på att även översätta mönsternamn?
PersonFabrik verkar lite... Konstigt ;)
Jag är mycket intresserad att prova svenska termer i mitt nästa
projekt.
Blir lite avundsjuk på dom som utvecklar för de engelskspråkiga
marknaderna. Med engelska som modersmål blir det ytterligare fördelar
som jag ser det.
Lysande idé om att testa språkkunskapen i köket! Hade själv en önskan
om att introducera engelska språket för min femåriga lilla flicka, men
efter närmare eftertanke kan jag bara konstatera att jag kan "dator-
engelska". Ord utanför datorernas värld är jag inte lika säker på.
Har samma uppfattning om dig vad gäller termer för patterns.
När jag utvecklar standardsystem försöker jag generalisera alla termer
så långt det går. I ett fall har jag använt en språkresurs (per språk)
som tillåter slutanvändaren att själv definiera termer i
användargränssnittet. Standardbenämningen Kategori kanske kallas Klass
eller Område. Har fungerat bra men kan försvåra samtalet vid support-
ärenden.
Tydlig och bra artikel om UL, skulle vilja kalla den oumbärlig för
personer som är nya inom DDD, kommer väl till hands för mig i alla
fall. Läropengen kanske kan vara att inte hårddra idén om UL in
absurdum?
- "Men vi jobbar mycket med offshoring, hur skall de utvecklarna som
sitter på andra sidan jorden då kunna förstå?"
Jag tycker personligen att det är en olycklig anledning att välja
engelska av det skälet. Då optimerar man inte för kundkommunikationen,
utan någonting annat...
- Efter att vi jobbat ihop ett tag i ett nytt projekt (helt oberoende
av ovan kommentar) så sa en av utvecklarna: "Ah, vilken lättnad att
koda på svenska och t o m med svenska tecken!"
En annan sak i samma härade som slår mig är ordet "Repository". Det
har en tendens att smyga sig in i diskussioner med domänexperter och
det känns som att man varje gång får ta en ursäkt kring det hela,
vilket jag inte tycker är optimalt. Jag har slutat att använda det som
suffix på mina klasser. Jag tror mycket få av er använder t ex
ValueObject som suffix också, korrekt?
:-)
Mvh
Jimmy
###
En annan sak i samma härade som slår mig är ordet "Repository". Det
har en tendens att smyga sig in i diskussioner med domänexperter och
det känns som att man varje gång får ta en ursäkt kring det hela,
vilket jag inte tycker är optimalt. Jag har slutat att använda det som
suffix på mina klasser. Jag tror mycket få av er använder t ex
ValueObject som suffix också, korrekt?
:-)
Allvarligt talat så bildar jag nog helst klubb med Dan Bergh Johnsson
och behåller de engelska orden för patterns. Läs gärna hans artikel om
UL, den innehåller riktig vettiga riktlinjer, tycker jag.
Jag har inget emot engelska namn på patterns, absolut inte. Det jag
menade var snarare att jag tenderar att minska användning av pattern i
mina klassnamn (och andra namn som domänexperten tenderar att
exponeras för). Jag tycker helt enkelt inte heller det tillför något,
det är oftast uppenbart ändå. Därav att jag exemplifierade med att
väldigt få har med ValueObject i sina namn t ex. Den namnsättningsstil
jag har testat lite på sistone vad gäller just repositories är att
namnsätta i pluralis, t ex så här:
verkstäder.HämtaAllaI(växjö)
eller
verkstäderna.HämtaAllaI(växjö)
/Jimmy
On 18 Jan, 22:33, Fredrik Klintebäck <fredrik.klinteb...@gmail.com>
wrote:
> Den funkar ju rätt bra, snyggt.
> Nollplural blir lite lurigt men kör man med bestämd form kommer man runt det
> (Avtal - Avtalena)
>
> 2010/1/18 Jimmy <Jimmy.Nils...@jnsk.se>