<<< Previous speaker next speaker >>>

Michael Hunger, Passionate about software development

 Michael  Hunger

Michael Hunger has been passionate about many aspects of software development even before he received his Master of CS.

He is particularly interested in the people, software craftsmanship, languages and improving code. While he likes coaching and in-project development as an independent (jexp) for small and mid-sized customers, he really enjoys the numerous other projects in his life. His family with three kids, a longtime obsession for a text based multi user dungeon (MUD), reading books whenever possible, running his coffee shop called "buchbar" (book-bar) and a workshop for printing on things are the one side. The other side is filled with learning and working with new programming languages whenever possible, listening to IT podcasts (esp. Software Engineering Radio), working on exciting and ambitious projects like qi4j.org, creating DSLs (jequel, squill and xmldsl.org), tons of refactoring and contributing to and reviewing books in progress (Martin Fowlers DSL-book, Software Apprenticeship Patterns, 97 Things Every Programmer Should Know, and many more). Sometimes he even finds time to do a bigger project with some friends like test.secretari.us, an open source e-mail based time management application.

Michael can be reached at jexp.de, Michael Hunger or Michael Hunger @ Twitter

Workshop: "Introduction to Qi4j a Composite Programming Framework in Java"

Track: Tutorial

Time: Thursday 13:00 - 16:00

Location: Trifork

Abstract:
The inflexibility of the class based OO-paradigm manifested in the last decade in enterprise development. A new approach that gives object not classes the power to rule themselves became known as composite oriented programming.
This concept as well as most aspects of the Domain Driven Design approach were implemented in the Java based Qi4J framework by Rickard Öberg (JBoss, Xdoclet, Sitevision).Objects in COP are composed of fragments (Concerns, Sideeffects, Mixins) that define their possible roles. Properties, Associations, Validation are modeled explicitely. Objects are build using Builders or retrieved from Repositories using a fluent query abstraction. Working with objects in Qi4J is only possible in the bounds of long running unit of works that resemble business transactions. Moving from state based repositories to change trail bases implementations improved the flexibility even more. A lot of existing frameworks and libraries are usable within Qi4J to provide services at all levels.
 
The tutorial introduces the concepts that are the basis for composite oriented programming and the implementation done in Qi4J. Using examples from the official qi4j tutorials the different enhancements of the programming model are explained in detail.
 
Expect a mind blowing ride through the world of composite objects, fragments, roles and a sound DDD framework implementation.
 
As a core contributor of qi4j, Michael has got first hand deep insights and contributed to several of the design decisions of the framework.