SlideShare ist ein Scribd-Unternehmen logo
1 von 25
Norsk ræl i vakker engelskspråklig kode
Ser rart ut...?
calculateBelopsgrense() Eksempler på ”norsk i engelsk”
findTjenesteavtaleByKontonummer () Eksempler på ”norsk i engelsk”
getDriftsmonsterFactory() Eksempler på ”norsk i engelsk”
… ser jo rart ut, ja!
findTjenesteavtaleByKontonummer () Eksempler på ”norsk i engelsk” getDriftsmonsterFactory() calculateBelopsgrense()
Uestetisk!
Følger ikke standard!
Ikke vedlikeholdbart!
Alternativet…
bla-bla-bla ... bla-bla-bla ... ” fellesblankett” ” belastningsbunt” ” tilbakeført anvisning” ” tvangsavstemt hevet giroutbetalingsbunt” Domeneekspert Domeneekspert
” fellesblankett” ” belastningsbunt” ” tilbakeført anvisning” ? ” tvangsavstemt hevet giroutbetalingsbunt”
” fellesblankett” ” belastningsbunt” ” tilbakeført anvisning” ” tvangsavstemt hevet giroutbetalingsbunt” ” Common payment form”? ” Forced matched cashed bundle of payment cheques”…? ” Reversed cheque”…? ” Debiting bundle”…?
Konsekvens:  Domain-Driven Design ,[object Object],” Hmm, domain languages in native tongue and in code ... I can clearly see it’s an issue ... I haven’t really given it any thoughts”   - Eric Evans (på auditbesøk) -
” fellesblankett” ” belastningsbunt” ” tilbakeført anvisning” ” tvangsavstemt hevet giroutbetalingsbunt” ” Common payment form”…? ” Forced matched cashed bundle of payment cheques”…? ” Reversed cheque”…? ” Debiting bundle”…?
Respekter domenetermer
En ideell verden…
En ideell verden… Kontrollert vokabular
Den virkelige verden…
Respekter domenetermer Særlig hvis de er  veletablerte !
Respekter domenetermer Særlig hvis de er  veletablerte ! Særlig hvis de er  i utstrakt bruk !
Respekter domenetermer Og særlig hvis dine nye domenebegreper kun vil bli brukt av deg – og dine kodemedsammenvorne!!
+ Domenet skiller seg ut fra koden - Bruker norsk på ikke-domemetermer Annet…
Norsk ræl i vakker engelskspråklig kode

Weitere ähnliche Inhalte

XP Meetup - Norsk ræl i vakker engelskspråklig kode

Hinweis der Redaktion

  1. Blanding av norsk og engelsk i kode I har snakka om detta før- både på lightning talks i juli (men det va jo mest sånn test da) I heite Eirik Torske – I jobba på BBS (og detta e henta direkte fra erfaringa derfra, fra et stort pågående prosjekt)
  2. Ja, ka snakke vi om… Jo, vi snakke om slike ting som detta her! [klikk]
  3. Detta ser jo unektelig ganske rart ut
  4. Nåkken vil argumentere for at detta e: [klikk]
  5. UESTETISK KODEN BLIR IKKE VEDLIKEHOLDBAR (SIDEN DET STENGE UTE IKKE_NORSKSPRÅKLIGE) AVVIKER FRA STANDARD
  6. UESTETISK KODEN BLIR IKKE VEDLIKEHOLDBAR (SIDEN DET STENGE UTE IKKE_NORSKSPRÅKLIGE) AVVIKER FRA STANDARD
  7. UESTETISK KODEN BLIR IKKE VEDLIKEHOLDBAR (SIDEN DET STENGE UTE IKKE_NORSKSPRÅKLIGE) AVVIKER FRA STANDARD
  8. Alternativet er jo å kutte ut norsk-rælet og kjøre engelsk over hele linja… Men poenget er at det kan få atskillig værre konsekvensa!
  9. Men – alternativet kan bli mye verre! Når man oversetter norske domenebegreper må vi spørre oss om vi virkelig kan gjøre det!
  10. Når vi oversetter domenebegreper lager vi i realitet en ny domenemodell Personlig så hva i svært skeptisk til å bruke norske språk i kode - det ser ganske kårni ut Men etter å ha tenkt litt på det da… ->Her ska vi lære oss et nytt problemområde, med sine, begreper, egenskaper, regler, sammenhenger, assosiasjoner... Og det først vi gjør? Vi oversetter primære benevninger til engelsk!?! Hallo! Det er vel å introdusere unødvendig kompleksitet...? [klikk]
  11. Ett, ganske svakt argument etter min mening, e at det bli lettere for ikke-norskspråklige utviklera og forholde seg til koden Men, det e heller ikkje sikkert, for: Vi må innse at vi, de fleste av oss i hvert fall snakker god engelsk, men ikke flytende engelsk Hvis vi oversetter, kan de bli direkte feil! Og da har vi gjort vondt verre [klikk]
  12. Domain-Driven Design-boka av Eric Evans hadde stor innflytelse på oss i 2004 – og forhåpentligvis fortsatt. DDD sier: ”how-how, greit med smidighet og få kodet og testet og deployet så tidlig som mulig, men ikke glem modelleringen da...!” DDD er objektorientert design + overordnede design/pattern-begreper + begrepsapparat/domenemodell for organisering og gjennomføring av programvareprosjekter. Med det sterke fokus på domenemodell og domenebegreper, blei vi enige om å prøve å etablere felles kodebase for felles begreper. Både rett og rimelig det; Bank og Penger og Kontonummer og sånt... I DDD er domenebegreper hellige – ”the ubiquitous language” / allestedsnærværende språket skal ikke skaltes og valtes med – det fører bare med seg misforståelser og økt kompleksitet. Så diskusjonen kom fort: skal vi oversette begrepene man bruker daglig? Det vi endte opp med var å ivareta norske begreper både i dokumentasjon og også i kode
  13. I tillegg gjelder akkurat samme problem fortsatt for alle utviklerne, man må oversette kodebegreper med dagligbegreper. Å det må skje i realtime, så lenge som applikasjonen vedlikeholdes… [klikk] I e i hvert fall veldig glad for at I slepp og forholde me til denna type oversettelsa på daglig basis… Det e rett og slett for vanskelig for me … I har ikkje nok domenekunnskap … I snakka ikkje engelsk bra nok Detta e nokkå som må behandles varsomt
  14. ” Kontrollert vokabular”
  15. ” Kontrollert vokabular”
  16. * Er domenebegrepene veletablerte ? ( kvaliteten på domenebegrepene) Hvor lenge har begrepene eksistert? Hvem fant på begrepene? Hvordan oppsto begrepene?
  17. * Er domenebegrepene i utstrakt bruk ? ( utbredelsen av domenebegrepene) Hvem bruker domenebegrepene? ...kun interne når de bruker datasystemet? ...kun interne i arbeidssituasjon? ...i kommunikasjon med kunder? ...i standarder? ...i kontrakter? ----------------------------------------------------------------------------------- * Er det noen som kan tegne og forklare domenet i organisasjonen? * Er det noen i organisasjonen som har et bevisst forhold til domenet i det hele tatt?
  18. Husk, overettelsen må du foreta i sanntid i hodet ditt – eller enda verre, du må oppdatere en ekstern mapping-dokument…!!