Welcome to JavaPolis 2007!
Overall Presentation Goal
Agenda
What are dependencies?
Dependency Kinds
Dependency Types
Compile vs. Runtime dependencies
Why Do They Matter?
Why Do They Matter?
Good vs. Bad Dependencies
Controlling Them
Team Education
Language Features
Physical Separation
Special Tools
IntelliJ IDEA
Analyzing Dependencies
Find Usages
Find Usages: Specialized Views
Find Usages (specialized views)
Dependency Graphs
Dependency Graphs
Dependency Graphs
Dependency Structure Matrix
DEMO
Fighting With Dependencies
Refactorings
Patterns
Inversion Of Control
Dependency Injection
Service Locator
Fix Plan
Summary
During this session we'll talk about code dependencies between classes and packages in large scale software projects: what they are, and why they're important,
how to analyze, visualize and understand complex dependencies, how to eliminate spaghetti from your dependency structure: which techniques, refactorings, tools and frameworks are available for the task.
Mike Aizatsky is an accomplished speaker and advanced developer with nine years of Java Development experience to draw from. In his presentations, he has developed a knack for expressing challenging concepts in simple ways, so that his audiences walk away with new knowledge and a lot of ideas on how to apply it.
Aizatsky received his Masters Degree with Honors in Mathematics in 2000, and now leads the Web and Enterprise Development Department of the IntelliJ IDEA project at JetBrains. He is a certified SCRUM master, and when he's not in front of a computer screen, enjoys playing jazz piano, hiking, and slalom roller skating..