Pacific Northwest Software Symposium
October 14 - 16, 2005 - Seattle, WA
View the event details here ».
Co-Author Mastering AspectJ and Java Tools for Extreme Programming
Nicholas Lesiecki is a recognized expert on AOP and agile development. In addition to coauthoring Mastering AspectJ (Wiley, 2003) and Java Tools For Extreme Programming (Wiley, 2001), Nick is a member of AspectMentor, a consortium of experts in aspect-oriented software development. He has spoken about applying AspectJ to testing, design patterns, and real-world business problems in such venues as SD West, OOPSLA, and AOSD. He currently serves Google as a Software Engineer and Programming Instructor.
Design patterns have long been part of the experienced developer's tool chest. However, design patterns can affect multiple classes and this makes them invasive and hard to (re)use. This presentation will discuss how AOP solves this problem by fundamentally transforming pattern implementation. The class will examine examples of various traditional design patterns (including some of the famous GoF patterns) and discuss the practical and design benefits of implementing them with aspect-oriented techniques. This session will be of interest to anyone who has struggled with design patterns. It is also the perfect session for a programmer interested non-trivial applications of AOP, or who wishes to see aspect-oriented design in action.
- Review design patterns: what they are, how they can be thought of
- How AOP can affect pattern implementation
- Review AOP key concepts and AspectJ syntax
- The Decorator Pattern, in Java, then AspectJ
- Apply more advanced AOP to the Swing Thread Safety patter
- How to reuse open source pattern implementations (Observer)
Aspect Oriented Programming offers enhanced modularity and cleaner separation of crosscutting concerns. That's all fine and well for architecture geeks. But can it help your project today? Has anyone applied it in the real world? The answer is "yes," and in this session, an AOP expert and early adopter will demonstrate how his team used aspect oriented programming to implement non-trivial business concerns. Along the way attendees will learn about advantages of AOP and understand some of the problems encountered adopting it.
This session will give an overview of how the Adbase team at VMS (http://vmsinfo.com) brought AspectJ into a J2EE data integration project. It will start with showing how aspects provided a clean way to debug errors in a third party library. A more complex example will illustrate how AOP helped dynamically update shopping cart prices without requiring extensive modifications to the domain objects. Finally, the class will cover one of the first reusable aspects developed by the company—an aspect to manage relationships between persistent objects. The last part of the presentation will examine the challenges of and tactics for AOP adoption. Attendees will learn what compromises were necessary, how the team scaled the learning curve, and which development practices helped ease adoption and mitigate risk.