Work on Hexagonal Architecture presentation

This commit is contained in:
Ilkka Seppälä 2016-11-12 22:44:08 +02:00
parent 6f3e2985a4
commit 4c24d99414
5 changed files with 97 additions and 47 deletions

View File

@ -23,8 +23,8 @@ Allow an application to equally be driven by users, programs, automated test or
## Applicability
Use Hexagonal Architecture pattern when
* it is important that the application is fully testable
* you use Domain Driven Design methodology and/or Microservices architectural style
* When the application needs to be independent of any frameworks
* When it is important that the application highly maintainable and fully testable
## Real world examples

BIN
hexagonal/etc/hexagon.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

BIN
hexagonal/etc/layers.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@ -0,0 +1,95 @@
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# Hexagonal Architecture
---
# Also known as
* Ports and Adapters
* Clean Architecture
* Onion Architecture
---
# Layered architecture problems
* No clear application core
* Business logic leaks to the presentation layer
<br />
<br />
.center[![Alt text](layers.png)]
---
# Intent
* Application can be driven by users, programs, automated test or batch scripts
* Application can be developed and tested in isolation from its eventual run-time devices and databases
---
# Applicability
Use Hexagonal Architecture pattern
* When the application needs to be independent of any frameworks
* When it is important that the application highly maintainable and fully testable
---
# Diagram
.center[![Alt text](hexagon.png)]
---
# Concepts
* Ports are interfaces
* Adapters are implementations
* Driver ports vs driven ports
---
# Real world examples
* [Apache Isis](https://isis.apache.org/)
---
# Implementation example
* http://java-design-patterns.com/patterns/hexagonal/
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>

View File

@ -1,45 +0,0 @@
<!DOCTYPE html>
<html>
<head>
<title>Title</title>
<meta charset="utf-8">
<style>
@import url(https://fonts.googleapis.com/css?family=Yanone+Kaffeesatz);
@import url(https://fonts.googleapis.com/css?family=Droid+Serif:400,700,400italic);
@import url(https://fonts.googleapis.com/css?family=Ubuntu+Mono:400,700,400italic);
body { font-family: 'Droid Serif'; }
h1, h2, h3 {
font-family: 'Yanone Kaffeesatz';
font-weight: normal;
}
.remark-code, .remark-inline-code { font-family: 'Ubuntu Mono'; }
</style>
</head>
<body>
<textarea id="source">
class: center, middle
# Title
---
# Agenda
1. Introduction
2. Deep-dive
3. ...
---
# Introduction
</textarea>
<script src="https://gnab.github.io/remark/downloads/remark-latest.min.js">
</script>
<script>
var slideshow = remark.create();
</script>
</body>
</html>