Hexagonal Software Architecture for Web Applications

Discover Hexagonal Architecture to create web applications with isolated, testable layers. Gain insights into designing clean, maintainable modules and advocating for suitable techniques for your application.

Beginner

84 Lessons

6h 45min

Certificate of Completion

Discover Hexagonal Architecture to create web applications with isolated, testable layers. Gain insights into designing clean, maintainable modules and advocating for suitable techniques for your application.

AI-POWERED

Explanations

AI-POWERED

Explanations

This course includes

1 Assessment
11 Quizzes

This course includes

1 Assessment
11 Quizzes

Course Overview

This course will teach you all about creating a web application in the Hexagonal Architecture style. Hexagonal Architecture promotes the separation of concerns by encapsulating logic in different layers of the application. This enables a higher level of isolation, testability, and control over your business specific code. You will learn how to design software modules and complete applications in a clean and maintainable manner, while also learning how to advocate for a certain technique given your applica...Show More

Course Content

1.

Before We Begin

Get familiar with Hexagonal Architecture for creating adaptable, extendable software systems.
2.

What's Wrong with Layers?

Unpack the core of layered architecture pitfalls, including complexity, testing difficulties, and parallel work challenges.
3.

Inverting Dependencies

Examine principles of inverting dependencies for modularity, flexibility, and maintainability in software architecture.
4.

Organizing Code

Break down the steps to organize code by layers, features, and expressive package structures.
5.

Implementing a Use Case

Map out the steps for implementing use case-specific models and rigorous input validation.
6.

Implementing a Web Adapter

5 Lessons

Tackle creating clean web adapters for handling HTTP requests, ensuring maintainability and modularity.
7.

Implementing a Persistence Adapter

8 Lessons

Master the steps to implement a persistence adapter, promoting flexibility and maintainability in software development.
8.

Testing Architecture Elements

9 Lessons

Learn how to use effective testing strategies for different layers in Hexagonal Architecture.
9.

Mapping Between Boundaries

7 Lessons

Walk through mapping strategies for different layers in hexagonal software architecture.
10.

Assembling the Application

6 Lessons

Work your way through efficient web application assembly, focusing on dependency management and flexibility.
11.

Enforcing Architecture Boundaries

6 Lessons

Break down the steps to enforce architecture boundaries and manage dependencies efficiently.
12.

Taking Shortcuts Consciously

8 Lessons

Recognize and manage necessary shortcuts in software development, ensuring long-term code integrity.

Assessment

Assessment

13.

Conclusion

1 Lesson

Choose the right architecture style based on domain importance, team experience, and comfort.
14.

Appendix

1 Lesson

Gain insights on historical origins, dependency inversion, Hexagonal Architecture, JPA complexity, and software design flexibility.

Course Author

Trusted by 1.4 million developers working at companies

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Evan Dunbar

ML Engineer

Carlos Matias La Borde

Software Developer

Souvik Kundu

Front-end Developer

Vinay Krishnaiah

Software Developer

Eric Downs

Musician/Entrepeneur

Kenan Eyvazov

DevOps Engineer

Anthony Walker

@_webarchitect_

Emma Bostian 🐞

@EmmaBostian

Hands-on Learning Powered by AI

See how Educative uses AI to make your learning more immersive than ever before.

Instant Code Feedback

Evaluate and debug your code with the click of a button. Get real-time feedback on test cases, including time and space complexity of your solutions.

AI-Powered Mock Interviews

Adaptive Learning

Explain with AI

AI Code Mentor