Java Next Steps: Modules
Effectively migrating legacy Java applications
Topic: Software Development
Java programmers perceive the introduction of modules as either the most significant or the most disruptive change to the language yet. It turns out both viewpoints are reasonable—and understanding why is critical to choosing whether (and when) to migrate legacy Java applications to use modules.
Join expert Venkat Subramaniam to learn why modules were introduced in Java and what key benefits they provide, as well as the trade-offs when adopting them. Then you’ll get straight into code and learn how to create modules as you explore the different configuration options and how they affect the behavior at both compile time and runtime. Along the way, you’ll learn the most prudent pathway to modularizing your existing Java applications.
What you'll learn-and how you can apply it
By the end of this live online course, you’ll understand:
- What problems modules solve and how you can benefit from using them
- How to create modules and the consequences of using them
- How to migrate from legacy to modularized Java applications
And you’ll be able to:
- Decide if and when to modularize your applications
- Effectively modularize your own applications
- Govern modularization of Java applications in your enterprise
This training course is for you because...
- You’re an architect, lead developer, or programmer working with large Java applications.
- You work with enterprise Java applications.
- You want to become proficient in modularizing Java applications.
- A computer with a Git client
- IntelliJ IDEA Community Edition installed
- A working knowledge of Java
- Java 9 or newer
- Take Java Essentials (live online training course with Ben Evans)
- Take Java Next Steps: Migrating to Java 11 (live online training course with Ben Evans)
About your instructor
Dr. Venkat Subramaniam is an award-winning author, founder of Agile Developer, Inc., creator of agilelearner.com, co-founder of the devdotnext software conference, and an instructional professor at the University of Houston. He has trained and mentored thousands of software developers in the US, Canada, Europe, and Asia, and is a regularly-invited speaker at several international conferences. Venkat helps his clients effectively apply and succeed with sustainable agile practices on their software projects. Venkat is a (co)author of multiple technical books, including the 2007 Jolt Productivity award winning book Practices of an Agile Developer. You can find a list of his books at agiledeveloper.com. You can reach him by email at email@example.com or on twitter at @venkat_s.
The timeframes are only estimates and may vary according to how the class is progressing
Benefits of modularization in Java (55 minutes)
- Presentation: Why modularize; why now
- Group discussion: What do you gain from modularization?; configurations and related limitations
- Hands-on exercise: Create modules in Java
Break (5 minutes)
Working with multiple modules (55 minutes)
- Presentation: Visibility; implied readability; opening for reflection
- Hands-on exercises: Create multiple modules; perform reflective access
- Group discussion: How to design modules and dependencies
Break (5 minutes)
Using the Service Loader API (55 minutes)
- Presentation: Discovering modules dynamically
- Hands-on exercise: Implement services and clients to discover them
- Group discussion: Why and when to use the Service Loader API
Break (5 minutes)
From legacy to modularized applications (60 minutes)
- Presentation: Working with legacy JARs; the path of migration from legacy to modularized code
- Hands-on exercise: Transition from legacy code to modules
- Group discussion: How to deal with dependencies, both old and new