43
Die Top 10 der Tools & Methoden für mehr Spaß beim Entwickeln Java User Forum - Stuttgart Patrick Baumgartner – Senior Software Consultant Odilo Oehmichen – Senior Software Consultant 07. Juli 2011

JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Embed Size (px)

DESCRIPTION

Slides zum Vortrag von Patrick Baumgartner und Odilo Oehmichen am Java Forum Stuttgart (07.Juli 2011)

Citation preview

Page 1: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Die Top 10 der Tools & Methoden für mehr Spaß beim Entwickeln

Java User Forum - Stuttgart

Patrick Baumgartner – Senior Software Consultant Odilo Oehmichen – Senior Software Consultant 07. Juli 2011

Page 2: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

2

Speaker Profiles

§  Patrick Baumgartner §  Senior Software Consultant | Partner §  Spring Framework, OSGi & agile Methoden §  Co-Autor von „OSGi für Praktiker“ (Hanser)

§  Odilo Oehmichen §  Senior Software Consultant | Partner §  mehr als 10 Jahre Erfahrung im Java-Umfeld §  Spring, Spring MVC, Webflow, Security, etc.

§  Swiftmind GmbH (http://www.swiftmind.com) §  Enterprise Java, Spring & OSGi Consulting §  Spring & OSGi Workshops/Trainings

Page 3: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

3

Das kennen wir alle...

§  Jeder von uns...

§  ... wird ständig in seinem Arbeitsfluss unterbrochen

§  ... muss den Code seiner Kollegen weiterentwickeln

§  ... hat immer wiederkehrende zeitraubende Tasks

§  raubt den Spaß am Entwickeln

Page 4: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

4

Agenda

§  Unsere 10 Lieblingsmittelchen gegen

Procrastination

Code Smells

Repetitive Tasks

Deadly Dullness

§  Q&A / Welches sind Eure Lieblingstool?

Page 5: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Your Daily Comic Strip

Page 6: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

6

Geek and Poke

Page 7: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Nasa - Earth Observatory

Kali-Düngerwerk Lop Nur, Xinjiang, China

Page 8: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Rapid Application Development

Page 9: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

9

Projekt Setup

§  Projekt Struktur schnell erzeugen

§  Persistenzlayer konfigurieren

§  Webtechnologie integrieren

§  Managen von Dependencies und Repositories

§  Scaffolding Applikationen bauen

Page 10: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

10

Spring Roo Demo

Page 11: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Clean Code

Page 12: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

12

Clean Code

§  Software Craftmanship

§  geprägt von Uncle Bob (Robert C. Martin)

§  Code Smells §  Klassen-, Methoden-, Variablennamen §  Methodengrösse §  Comments §  Strong cohesion -> Single Responsibility §  …

Page 13: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

13

Projekt Lombok

§  Java Library – lombok.jar

§  Reduce Boilerplate Code

§  Annotationsbasiert

@Getter, @Setter, @ToString, @Data,...

Page 14: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

14

Projekt Lombok

Page 15: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

15

Projekt Lombok

§  Benötigt Java ≥ 6

§  Java Agents hooken in Compile Prozess

javac –cp lombok.jar Person.java

§  Eclipse, netbeans, maven Plugins

§  Andere Tools: PMD, findbugs, checkstyle, Simian

Page 16: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Redeploy Hell

Page 17: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

17

Redeploy Hell

§  Problem §  Code geschrieben -> Build -> Deploy auf Server §  Über 15 % der Entwicklungszeit ist Warten auf

Redeploy §  Frißt Nerven, Zeit und Geld

§  Lösungen §  Funktionalitäten ausgliedern §  Abhängigkeiten zu Laufzeit-Umgebungen reduzieren §  Unittests / Applikation §  Tools

§  Debugger §  JRebel

Page 18: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

18

JRebel

§  Integriert sich in JVM §  Richtiges Hotdeployment

§  Hinzufügen von Methoden §  Ändern von Methodensignaturen §  Konfigfile Änderung (Spring, Hibernate, JSF, Wicket,…)

§  Verbindet sich direkt mit IDE-Workspace §  Unterstützt alle gängigen Appserver

§  Nachteil: Kommerziell

Page 19: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Open Source Libraries

Page 20: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

20

Don't re-invent the wheel

§  Einsatz von Open Source Libraries im Projekt §  Bessere Applikations-Architektur §  Source Code von der Community benutzt §  gut (Unit-)getestet §  Schnelleres Entwickeln mit kleineren Team §  Fokussierung auf die Businesslogik

§  Libraries §  Apache Commons §  Guava §  FluentJava §  Spring

Page 21: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

21

Apache Commons – Lang

§  Verschiedene String Operationen

§  Erwartete Resultate

Page 22: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

22

Apache Commons – CLI

§  Command Line Programm mit Option „-h“

§  Programmausgabe

Page 23: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

23

Apache Commons – Email

§  Beispiel Email senden über Gmail

Page 24: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

24

Apache Commons

Attributes, BeanUtils, Betwixt, Chain, CLI, Codec,

Collections, Compress, Configuration, Daemon,

DBCP, DbUtils, Digester, Discovery, EL, Email, Exec,

FileUpload, IO, JCI, Jelly, Jexl, JXPath, Lang,

Launcher, Logging, Math, Modeler, Net, Pool,

Primitives, Proxy, Sanselan, SCXML, Transaction,

Validator, VFS

Page 25: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Get your Work Done!

Page 26: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

26

Pomodoro Technique

(c) Staffan Nöteberg - Pomodoro Technique Illustrated

!!

!"#$%&'()*+,&-)#+.)+&/01&2334536564&

"#$!%&'&(&)&!"$*#+,-.$"#$!%&'&(&)&!"$*#+,-.$!! !!/!!!/!!!0001234554++&3$6$)712$!80001234554++&3$6$)712$!899:;<=:;<=!!

!"#$%&'&(&)&$!#*"+,-.#$

Page 27: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

27

Pomodoro Technique

§  Ergebnisse §  Lernen Aktivitäten planen & schätzen §  Aufzeichnen & verbessern der Aktivitäten §  Störungen vermindern & vermeiden

§  Tools §  Pomodoro (Eieruhr) §  Focus Buster

Page 28: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Shortcuts

28

Page 29: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

29

Shortcuts

§  Problem §  Mouse Junkies §  Umgreifen frisst Zeit §  Produktivität sinkt §  Shortcuts schwer lernbar

Page 30: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

30

Shortcuts

§  Lösungen §  Eclipse Mousefeed-Plugin zeigt Shortcuts auf

§  Save-Actions räumt Code auf §  Cheatsheets (für jegliche Tools)

Page 31: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Continuous Integration

Page 32: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

32

Continuous Integration

Phyllis

Page 33: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

33

Jenkins

§  Alles was es braucht ist Java §  Gehe zu http://jenkins-ci.org §  Download War-File §  Command-Line java -jar jenkins.war

§  Plugin-Mechanismus §  Chuck-Norris §  Lava Lampe §  ...

Page 34: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

34

Continuous Integration

Agnes

Page 35: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

35

CI Game

§  „You broke the build“ §  Einzahlung in Build-Kasse §  „<...> Developer of the week“ §  ...

§  CI Game von Clint Shank §  Reward-System §  Jenkins-Plugin verfügbar

Page 36: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Unit Testing

Page 37: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

37

Unit Testing

§  TDGotchi §  Gotchi füttern mit Unittest-Results

§  Infinitest §  Continuous Test Runner for Java

Page 38: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Keep up-to-date

Page 39: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

39

Keep up-to-date

§  Es tut sich viel in der Java-Welt §  Java 7, Cloud Computing, OSGi, ....

§  Besuche... §  Konferenzen §  Hackathons / Hackergarten §  Java User Groups

§  Tausch dich aus §  E-Learning

§  Blogs §  Parleys (Offline-Client) §  InfoQ

Page 40: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

Zusammenfassung

Page 41: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

41

Zusammenfassung

§  Your Daily Commic Strip §  Rapid Application Development §  Clean Code §  Redeploy Hell §  Open Source Libraries §  Get your Work Done! §  Shortcuts §  Continuous Integration – Jenkins §  Unit Testing §  Keep up-to-date

Page 42: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

42

Weitere Resourcen

§  Swiftmind GmbH §  http://www.swiftmind.com §  http://www.swiftmind.com/blog

§  Memonic §  http://bit.ly/swiftmind-jfs

Page 43: JFS 2011 - Top 10 Tools & Methoden - Baumgartner, Oehmichen

43

Q & A

Patrick Baumgartner, Odilo Oehmichen patrick.baumgartner [at] swiftmind [dot] com odilo.oehmichen [at] swiftmind [dot] com http://www.swiftmind.com http://www.twitter.com/swiftmind