Top Banner
www.steria.no © Steria Å Lytte til koden Johannes Brodwall, Chief scientist, Steria Statkraft 16. april, 2010 Du kan lytte til koden
27

Å Lytte til koden

Jan 24, 2016

Download

Documents

Manny

Å 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
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Å Lytte til koden

www.steria.no

© Steria

Å Lytte til koden

Johannes Brodwall, Chief scientist, SteriaStatkraft 16. april, 2010

Du kan lytte til koden

Page 2: Å Lytte til koden

www.steria.no

21.04.23 2

Hva er god programmering?

Hva er et godt program?

Page 3: Å Lytte til koden

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?

Page 4: Å Lytte til koden

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

Page 5: Å Lytte til koden

www.steria.no 21.04.23 5

God utvikling krever trening

Page 6: Å Lytte til koden

www.steria.no 21.04.23 6

Kode kata

http://jhannes.blip.tv/jhannes.blip.tv/file/3487566/

Page 7: Å Lytte til koden

www.steria.no 21.04.23 7

Test-drevet utvikling

Page 8: Å Lytte til koden

www.steria.no 21.04.23 8

Evolusjonært design

Page 9: Å Lytte til koden

www.steria.no 21.04.23 9

Hvordan blir en web-applikasjon uten up-

front design?

Page 10: Å Lytte til koden

www.steria.no 21.04.23 10

Prinsipper

Page 11: Å Lytte til koden

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

Page 12: Å Lytte til koden

www.steria.no 21.04.23 12

Hva så dere?

Ende-til-ende-test (treg)Jetty, WebDriver

Page 13: Å Lytte til koden

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

Page 14: Å Lytte til koden

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

Page 15: Å Lytte til koden

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

Page 16: Å Lytte til koden

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

Page 17: Å Lytte til koden

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

Page 18: Å Lytte til koden

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/

Page 19: Å Lytte til koden

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

Page 20: Å Lytte til koden

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

Page 21: Å Lytte til koden

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

Page 22: Å Lytte til koden

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

Page 23: Å Lytte til koden

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

Page 24: Å Lytte til koden

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)

Page 25: Å Lytte til koden

www.steria.no

21.04.23 25

Hva er god programmering?

Hva er et godt program?

Page 26: Å Lytte til koden

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

Page 27: Å Lytte til koden

www.steria.no

Johannes BrodwallChief ScientistSteria, Norway

[email protected]://johannesbrodwall.comhttp://sterkblanding.nohttp://jhannes.blip.tv@jhannes

Takk for oppmerksomheten

www.steria.no