-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathPB.html
149 lines (89 loc) · 3.63 KB
/
PB.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no">
<title>PB | SWException</title>
<link rel="stylesheet" href="dist/reveal.css">
<link rel="stylesheet" href="dist/theme/white.css">
<!-- Printing and PDF exports -->
<script>
var link = document.createElement('link');
link.rel = 'stylesheet';
link.type = 'text/css';
link.href = window.location.search.match(/print-pdf/gi) ? 'css/print/pdf.css' : 'css/print/paper.css';
document.getElementsByTagName('head')[0].appendChild(link);
</script>
</head>
<body>
<div class="reveal">
<div class="slides">
<section data-markdown data-separator="^\r?\n---\r?\n$" data-separator-vertical="^\n\n"
data-background-image="imgs/sfondo.png" data-separator-notes="^Note:">
<textarea data-template>
# SWException
### Corso di Ingegneria del Software
Università degli Studi di Padova
A.A. 2020/2021
Laurea triennale in informatica
<em>Product Baseline - 09/04/2021</em>
<img src="imgs/emporio.png" width="500em"/>
Piattaforma di e-commerce in stile serverless
---
# Backend
## Microservizi <!-- Francesco -->
<img src="imgs/pb/microservices.jpg" width="800em"/>
## Comunicazioni tra microservizi <!-- Michele -->
<img src="imgs/pb/products.jpg" height="400em"/>
<img src="imgs/pb/users.jpg" height="500em"/>
## Singolo microservizio <!-- Ivan -->
### Layered architecture
<img src="imgs/pb/layered-architecture.png" width="630em"/>
Note:
- Presentation: handler, cioè le api. Ritornano una risposta http utilizzando il business Layer
- Business: è il "core" del microservizio, dove appunto c'è la logica del microservizio
- Persistence: classi che si interfacciano con il database, altri microservizi dal nostro progetto, servizi esterni (es. stripe)
Architettura semplice da comprendere ed implementare,
ci permette comunque di effettuare test di unità sostituendo p.e. le componenti del persistence layer con dei mock.
Questo tipo di architettura è risultata da tutti subito chiara e semplice da applicare,
abbiamo evitato di utilizzare architettura esagonale (che abbiamo comunque aprofondito e cercato di usare in un esempio prima di prendere una decisione)
in quanto avrebbe portato ad overhead, anche considerando che avevamo già iniziato con un'architettura a layer.
---
# Mocking <!-- Nicole / Stefano -->
<img src="imgs/pb/OpenAPI_Logo.png" width="600em"/>
<img src="imgs/pb/SwaggerHub_Logo_Horizontal_Color.png" width="700em"/>
---
# Frontend <!-- Gianmarco -->
### Sviluppato con Nextjs
Utilizzate le funzioni build in del framework come:
- Static & Dynamic Routing
- Static & ServerSide page rendering
Note: utilizzo struttura React per divisione cartelle
### Gestione del Global State
Redux vs ContexAPI?
### ContextAPI
- Funzionalità messa a disposizione da React (>16.8)
- No dipendenze verso librerie esterne
### Services
Unico punto di contatto tra frontend e backend
<img src="imgs/pb/EML-FE.jpg" width="700em">
---
## Grazie dell'attenzione!
</textarea>
</section>
</div>
</div>
<script src="dist/reveal.js"></script>
<script src="plugin/markdown/markdown.js"></script>
<link rel="stylesheet" href="plugin/highlight/zenburn.css">
<script src="plugin/highlight/highlight.js"></script>
<script src="plugin/notes/notes.js"></script>
<script>
Reveal.initialize({
plugins: [RevealMarkdown, RevealHighlight, RevealNotes],
slideNumber: 'c/t',
showSlideNumber: 'all'
});
</script>
</body>
</html>