© Steria Å Lytte til koden Johannes Brodwall, Chief scientist, Steria Statkraft 16. april, 2010 Du kan lytte til koden
Hva er god programmering? Hva er et godt program?
God navngiving? Små metoder? Testdekning? Ingenting overflødig? God ansvarsdeling? Bruksorientering? Bruk av patterns? Bruk av objekter? Rammeverk?
Å bli en bedre utvikler Seks prinsipper for godt design Oppsummering av prinsippet Video (fingers crossed!) Hva annet kommer fram? Oppsummering
God utvikling krever trening
Kode kata jhannes.blip.tv/file/ /
Test-drevet utvikling
Evolusjonært design
Hvordan blir en web- applikasjon uten up- front design?
Prinsipper
Prinsipp #1: Spesifiser utenfra og inn jhannes.blip.tv/file/ / (10 min) github.com/jhannes/java-ee-spike- kata/tree/1-outside-in
Hva så dere? Ende-til-ende-test (treg) Jetty, WebDriver
Prinsipp #2: Spesifiser oppførsel jhannes.blip.tv/file/ / jhannes.blip.tv/file/ / (6 min) github.com/jhannes/java-ee-spike- kata/tree/2-1-servlet-test
Hva så dere? Mockito, FEST-assert Beskriv formålet med testen Finkornete tester github.com/jhannes/java-ee-spike- kata/blob/commit_per_test/src/test/java/co m/brodwall/kata/javaee/PersonServletTest.j ava
Prinsipp #3: Test tett på koden jhannes.blip.tv/file/ / (5 min) github.com/jhannes/java-ee-spike- kata/tree/3-equals-test
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/Pers onTest.java
Prinsipp #4: Dyrk fram et API jhannes.blip.tv/file/ / (8 min) github.com/jhannes/java-ee-spike- kata/tree/4-search-for-people
(Implementer etterpå) jhannes.blip.tv/file/ / (7 min) github.com/jhannes/java-ee-spike- kata/tree/5-3-person-dao-test/
Hva så dere? Mocking av API før implementering Kode 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/Per sonDao.java
Prinsipp #5: Dyrk fram struktur jhannes.blip.tv/file/ / (3:20 min) github.com/jhannes/java-ee-spike- kata/tree/5-2-refactoring
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/Per sonServlet.java
Prinsipp #6: Det skal virke første gang jhannes.blip.tv/file/ / (5 min) github.com/jhannes/java-ee-spike- kata/tree/6-getting-it-to-work
Hva så dere? Ende-til-ende test tester infrastruktur Koden virker første gang i browser github.com/jhannes/java-ee-spike- kata/blob/commit_per_test/src/test/java/com/brodwall/kata/javaee/Pers onWebTest.java
Verktøy JUnit ( Jetty ( WebDriver ( FEST-assert ( Mockito ( Hibernate (
Hva er god programmering? Hva er et godt program?
#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
Johannes Brodwall Chief Scientist Steria, Norway Takk for oppmerksomheten