Å Lytte til koden

Preview:

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 Presentation

Citation preview

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

johannes.brodwall@steria.nohttp://johannesbrodwall.comhttp://sterkblanding.nohttp://jhannes.blip.tv@jhannes

Takk for oppmerksomheten

www.steria.no

Recommended