270 likes | 489 Views
Å 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?.
E N D
Å 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? Ingenting overflødig? Rammeverk? Bruk av patterns?
Å bli en bedre utvikler • Seks prinsipper for godt design • Oppsummering av prinsippet • Video (fingers crossed!) • Hva annet kommer fram? • Oppsummering
Kode kata http://jhannes.blip.tv/ jhannes.blip.tv/file/3487566/
Prinsipp #1: Spesifiser utenfra og inn github.com/jhannes/java-ee-spike-kata/tree/1-outside-in jhannes.blip.tv/file/3487399/ (10 min)
Hva så dere? Ende-til-ende-test (treg) Jetty, WebDriver
Prinsipp #2: Spesifiser oppførsel github.com/jhannes/java-ee-spike-kata/tree/2-1-servlet-test jhannes.blip.tv/file/3487395/(6 min)
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/com/brodwall/kata/javaee/PersonServletTest.java
Prinsipp #3: Test tett på koden github.com/jhannes/java-ee-spike-kata/tree/3-equals-test jhannes.blip.tv/file/3487334/ (5 min)
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
Prinsipp #4: Dyrk fram et API github.com/jhannes/java-ee-spike-kata/tree/4-search-for-people jhannes.blip.tv/file/3487377/ (8 min)
(Implementer etterpå) github.com/jhannes/java-ee-spike-kata/tree/5-3-person-dao-test/ jhannes.blip.tv/file/3487456/ (7 min)
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/PersonDao.java
Prinsipp #5: Dyrk fram struktur github.com/jhannes/java-ee-spike-kata/tree/5-2-refactoring jhannes.blip.tv/file/3487376/ (3:20 min)
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
Prinsipp #6: Det skal virke første gang github.com/jhannes/java-ee-spike-kata/tree/6-getting-it-to-work jhannes.blip.tv/file/3487396/ (5 min)
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/PersonWebTest.java
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)
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
Takk for oppmerksomheten Johannes Brodwall Chief Scientist Steria, Norway johannes.brodwall@steria.no http://johannesbrodwall.com http://sterkblanding.no http://jhannes.blip.tv @jhannes www.steria.no