Å lytte til koden
DESCRIPTION
Å Lytte til koden. Du kan lytte til koden. Johannes Brodwall, Chief scientist, Steria Statkraft 16. april, 2010. Hva er god programmering?. Hva er et godt program?. Bruksorientering?. God navngiving?. Testdekning?. Bruk av objekter?. Små metoder?. God ansvarsdeling?. - PowerPoint PPT PresentationTRANSCRIPT
www.steria.no
© Steria
Å Lytte til koden
Johannes Brodwall, Chief scientist, SteriaStatkraft 16. april, 2010
Du kan lytte til koden
www.steria.no
21.04.23 2
Hva er god programmering?
Hva er et godt program?
www.steria.no
21.04.23 3
God navngiving?
Små metoder?
Testdekning?
Ingenting overflødig?
God ansvarsdeling?
Bruksorientering?
Bruk av patterns?
Bruk av objekter?
Rammeverk?
www.steria.no 21.04.23 4
• Å bli en bedre utvikler• Seks prinsipper for godt design
• Oppsummering av prinsippet• Video (fingers crossed!)• Hva annet kommer fram?
• Oppsummering
www.steria.no 21.04.23 5
God utvikling krever trening
www.steria.no 21.04.23 6
Kode kata
http://jhannes.blip.tv/jhannes.blip.tv/file/3487566/
www.steria.no 21.04.23 7
Test-drevet utvikling
www.steria.no 21.04.23 8
Evolusjonært design
www.steria.no 21.04.23 9
Hvordan blir en web-applikasjon uten up-
front design?
www.steria.no 21.04.23 10
Prinsipper
www.steria.no 21.04.23 11
Prinsipp #1:Spesifiser utenfra og inn
jhannes.blip.tv/file/3487399/(10 min)
github.com/jhannes/java-ee-spike-kata/tree/1-outside-in
www.steria.no 21.04.23 12
Hva så dere?
Ende-til-ende-test (treg)Jetty, WebDriver
www.steria.no 21.04.23 13
Prinsipp #2:Spesifiser oppførsel
jhannes.blip.tv/file/3487395/(6 min)
github.com/jhannes/java-ee-spike-kata/tree/2-1-servlet-test
www.steria.no 21.04.23 14
Hva så dere?Mockito, FEST-assert
Beskriv formålet med testenFinkornete tester
github.com/jhannes/java-ee-spike-kata/blob/commit_per_test/src/test/java/com/brodwall/kata/javaee/PersonServletTest.java
www.steria.no 21.04.23 15
Prinsipp #3:Test tett på koden
jhannes.blip.tv/file/3487334/(5 min)
github.com/jhannes/java-ee-spike-kata/tree/3-equals-test
www.steria.no 21.04.23 16
Hva så dere?Test av meningsløs funksjon?
Rask bytte mellom test og kode
github.com/jhannes/java-ee-spike-kata/blob/commit_per_test/src/test/java/com/brodwall/kata/javaee/PersonTest.java
www.steria.no 21.04.23 17
Prinsipp #4:Dyrk fram et API
jhannes.blip.tv/file/3487377/(8 min)
github.com/jhannes/java-ee-spike-kata/tree/4-search-for-people
www.steria.no 21.04.23 18
(Implementer etterpå)
jhannes.blip.tv/file/3487456/(7 min)
github.com/jhannes/java-ee-spike-kata/tree/5-3-person-dao-test/
www.steria.no 21.04.23 19
Hva så dere?Mocking av API før implementeringKode som trenger å refaktoreres!
(Never refactor on red!)
github.com/jhannes/java-ee-spike-kata/blob/commit_per_test/src/main/java/com/brodwall/kata/javaee/PersonDao.java
www.steria.no 21.04.23 20
Prinsipp #5:Dyrk fram struktur
jhannes.blip.tv/file/3487376/(3:20 min)
github.com/jhannes/java-ee-spike-kata/tree/5-2-refactoring
www.steria.no 21.04.23 21
Hva så dere?Hadde allerede refactorer viewene
Masser koden med refactoring verktøy
github.com/jhannes/java-ee-spike-kata/blob/commit_per_test/src/main/java/com/brodwall/kata/javaee/PersonServlet.java
www.steria.no 21.04.23 22
Prinsipp #6:Det skal virke første
gang
jhannes.blip.tv/file/3487396/(5 min)
github.com/jhannes/java-ee-spike-kata/tree/6-getting-it-to-work
www.steria.no 21.04.23 23
Hva så dere?Ende-til-ende test tester infrastrukturKoden virker første gang i browser
github.com/jhannes/java-ee-spike-kata/blob/commit_per_test/src/test/java/com/brodwall/kata/javaee/PersonWebTest.java
www.steria.no 21.04.23 24
Verktøy JUnit (http://junit.org) Jetty (http://www.mortbay.org) WebDriver (http://code.google.com/p/selenium) FEST-assert (http://easytesting.org/assert/) Mockito (http://mockito.org) Hibernate (http://hibernate.org)
www.steria.no
21.04.23 25
Hva er god programmering?
Hva er et godt program?
www.steria.no
21.04.23 26
#1: Bygg utenfra inn
#2: Spesifiser oppførsel#3: Test nær koden
#4: Dyrk fram API’et#5: Dyrk fram design
#6: Det skal virke første gang
www.steria.no
Johannes BrodwallChief ScientistSteria, Norway
[email protected]://johannesbrodwall.comhttp://sterkblanding.nohttp://jhannes.blip.tv@jhannes
Takk for oppmerksomheten
www.steria.no