MCPcopy Index your code
hub / github.com/PacktPublishing/Designing-Hexagonal-Architecture-with-Java

github.com/PacktPublishing/Designing-Hexagonal-Architecture-with-Java @main

Chat with this repo
repository ↗ · DeepWiki ↗ · + Follow
3,754 symbols 11,811 edges 957 files 40 documented · 1% updated 3y ago★ 2334 open issues
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Designing Hexagonal Architecture with Java

Designing Hexagonal Architecture with Java

This is the code repository for Designing Hexagonal Architecture with Java, published by Packt.

An architect's guide to building maintainable and change-tolerant applications with Java and Quarkus

What is this book about?

Hexagonal architecture enhances developers' productivity by decoupling business code from technology code, making the software more change-tolerant, allowing it to evolve and incorporate new technologies without the need for significant refactoring. By adhering to hexagonal principles, you can structure your software in a way that reduces the effort required to understand and maintain the code.

This book covers the following exciting features: * Find out how to assemble business rules algorithms using the specification design pattern * Combine domain-driven design techniques with hexagonal principles to create powerful domain models * Employ adapters to make the system support different protocols such as REST, gRPC, and WebSocket * Create a module and package structure based on hexagonal principles * Use Java modules to enforce dependency inversion and ensure isolation between software components * Implement Quarkus DI to manage the life cycle of input and output ports

If you feel this book is for you, get your copy today!

https://www.packtpub.com/

Instructions and Navigations

All of the code is organized into folders. For example, Chapter02.

The code will look like the following:

<dependency>
    <groupId>io.quarkus</groupId>
    <artifactId>quarkus-hibernate-validator</artifactId>
</dependency>

Following is what you need for this book: This book is for software architects and Java developers who want to improve code maintainability and enhance productivity with an architecture that allows changes in technology without compromising business logic, which is precisely what hexagonal architecture does. Intermediate knowledge of the Java programming language and familiarity with Jakarta EE will help you to get the most out of this book.

With the following software and hardware list you can run all code files present in the book (Chapter 1-15).

Software and Hardware List

Chapter Software required OS required
1-15 Java SE Development Kit Windows, Mac OS X, and Linux (Any)
1-15 Maven 3.6 Windows, Mac OS X, and Linux (Any)

We also provide a PDF file that has color images of the screenshots/diagrams used in this book. Click here to download it.

Related products

Get to Know the Author

Davi Vieira is a software craftsman with a vested interest in the challenges faced by large enterprises in software design, development, and architecture. He has more than 10 years of experience constructing and maintaining complex, long-lasting, and mission-critical systems using object-oriented languages. He values the good lessons and the software development tradition left by others who came before him. Inspired by this software tradition, he develops and evolves his ideas.

Download a free PDF

If you have already purchased a print or Kindle version of this book, you can get a DRM-free PDF version at no cost.

Simply click on the link to claim your free PDF.

https://packt.link/free-ebook/9781801816489

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Method 2,437
Class 720
Function 398
Enum 119
Interface 80

Languages

Java89%
TypeScript11%

Modules by API surface

Chapter05/src/main/web/js/d3.v3.min.js389 symbols
Chapter14/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter13/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter12/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter11/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter10/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter09/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter08/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter07/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter06/domain/src/test/java/dev/davivieira/topologyinventory/domain/DomainTest.java27 symbols
Chapter15/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/mappers/RouterH2Mapper.java13 symbols
Chapter14/framework/src/main/java/dev/davivieira/topologyinventory/framework/adapters/output/mysql/mappers/RouterH2Mapper.java13 symbols

Datastores touched

(mysql)Database · 1 repos
inventoryDatabase · 1 repos

For agents

$ claude mcp add Designing-Hexagonal-Architecture-with-Java \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page