Course Highlights

  • Modular Programming in Java

    Get clear & in-depth understanding of JPMS and how it enables creating well-designed, modular, and space-optimized programs.

  • Extensible Software

    Learn how to create completely decoupled services following proper design patterns avoiding the need for redeploying the application.

  • Lifetime Access

    Self-paced course with 5+ hours of high-quality video lectures. Get in-depth personalized responses within 24 hours for all your questions.

Course Objective

Need for Modular Software

As software engineers, our goal is to write code that is easy to understand, maintain, extensible, and secure. These goals are even more important when building large, complex software comprising several inter-dependent components. Fundamental design principles like Information Hiding helped accomplish many of these goals. However, prior to Java 9, some of these goals could still be compromised due to the limitations in the underlying features such as packages & access modifiers, which could not always provide the needed encapsulation. Moreover, there were other configuration issues due to inherent limitations in JAR files and the ever-growing size of JDK. To address all the issues, another layer of abstraction was needed; and in Java 9, this abstraction was provided in the form of modules through The Java Platform Module System (JPMS).

Course Overview

Creating Modular Software

This course will give you an in-depth understanding of JPMS and how it enables creating strongly encapsulated, modular software. We will start off by reviewing the problems that JPMS addresses thus clearly understanding the purpose it serves. We then understand the anatomy of a module and how to create it from both command line as well as from Eclipse. We will look at how modular and non-modular code can interoperate. We will next learn how to create custom runtime images (JREs) or in other words smaller distributables. This is one of the most exciting features of JPMS and something every developer must learn. Finally, we will look at how we can create services, a crucial feature of modular programming. We will learn how services can be added without redeploying our application.

Every concept is very clearly explained with well thought out & realistic examples, nice illustrations and perfect demonstrations. With over 5 hours of high-quality video lectures, the course is self-paced with life-time access. You get a certificate upon course completion.

Creating Modular, Space-Optimized Software

Promo video explaining need for modular software and what the course offers.

Yes! Sign me Up

 

Course curriculum

    1. Course Introduction

      FREE PREVIEW
    1. Chapter Introduction & Agenda

    2. Motivation: Stronger Encapsulation

    3. Motivation: Ease of Understanding

    4. Motivation: Smaller Distributables

    5. Motivation: Reliable Configuration

    6. Anatomy of a Module

    7. Demo: Creating Downloader & Indexer Modules

    8. Interoperability: Pre-Java 9 Code on Java 9 & Later

    9. Module Path & Module Resolution

    10. Demo: Creating Modular JARs

    11. Demo: Achieving Reliable Configuration with Modules

    12. Demo: Creating Modules from within Eclipse

    13. Demo: Creating Modular JAR from within Eclipse

    14. Unnamed Modules: Using Modular Code

    15. Unnamed Modules: Using Modular Code from Command Line

    16. Minor Correction in Previous Lecture

    17. Automatic Modules: Using Non-Modular Code

    18. Demo: Automatic Modules

    19. Note on Auto-Suggest Option in Previous Lecture

    20. Chapter Summary

    1. Custom Runtime Images: Introduction

    2. Demo: Custom Runtime Image with Platform Modules

    3. Minor Note on Previous Lecture

    4. Custom Runtime Image with few Application Modules: A First Look

    5. jdeps: Java Dependency Analysis Tool

    6. Converting Automatic Module into Explicit Module

    7. Custom Runtime Image with Application Modules

    8. Important Note on Executing App Module in Previous Lecture

    9. Custom JRE: Conclusion

    1. Services - Introduction

    2. Incorporating Services into our Application

    3. Demo: Services Implementation Set-up

    4. Demo: Implementing Service

    5. Demo: Implementing Service Provider

    6. Demo: Implementing Consumer

    7. Demo: Executing Service + Runtime Module Resolution Discussion

    8. Demo: Creating Custom Runtime Image with Service

    9. Demo: Extensibility in Action - Adding a new Service

    1. Summing up the Course in under 200 words!

About this course

  • ₹800.00
  • 40 lessons
  • 5 hours of video content
  • Self-paced, lifetime access
The Instructor is highly competent. He is a world-class instructor ... Taking this course will definitely give you a tremendous appreciation for this great language.
Carrel d'Haiti
MEET YOUR INSTRUCTOR

Dheeru Mundluru is the instructor for this program. A passionate software engineer & educator, Dheeru has around 15 years of experience developing innovative software for start-ups in Silicon Valley and elsewhere. He holds a Ph.D. in Computer Science from University of Louisiana at Lafayette (USA). He is an experienced online instructor with over half-a-dozen years of teaching experience with over 100k students globally. He has also been rated as one of the top instructors on Udemy. His engineering expertise includes developing complex Web data integration & mining software with Java as the main programming tool. Coming from start-up world, he also has extensive end-to-end experience in developing Web applications using technologies such as Spring, Hibernate, MySQL, and Solr.

Writing well-crafted code that follows the best design practices is of utmost importance to him. He brings the same level of passion and completeness to his teaching.

Frequently Asked Questions
No. For this course, your enrollment will have to be approved by us. Once approved, you'll have access to all lectures. This process might take 1-2 days and you may be requested (via email) to provide more details. If we are unable to approve your application, your payment will be completely refunded.
You can start & finish it anytime. For someone completely new to programming, it can take around 3-4 months of full-time effort to complete it the right way.
Basic understanding of Java is required.
No. To ensure course is right fit, please review the preview videos, course description and curriculum carefully.

Discover your potential, starting today