@@ -97,6 +97,7 @@ The architecture of each bounded context follows the Clean Architecture's struct
97
97
<img class =" stretch no-border " src =" img/clean-architecture.svg " alt =" clean architecture " >
98
98
99
99
{{% note %}}
100
+
100
101
- INVERS DELLE DIP e ISOLAM DOM
101
102
- types: concetti dominio mappati 1a1(vedremo come) indipendenti, pochi cambiamenti
102
103
- azioni: accedere/usare info dominio (es. creaz pp, prezzat ordine)
@@ -163,30 +164,37 @@ gitGraph
163
164
merge fix/fix-2 tag: "1.0.1"
164
165
{{< /mermaid >}}
165
166
167
+ {{% note %}}
168
+
169
+ - ` beta ` branch nelle prime fase di sviluppo: pre-release
170
+ - ` main ` branch: release stabili
171
+ - Branch protection: feature via PRs
172
+ - Ogni feature o fix ha un suo branch e mergiato via PR
173
+ - Workflow favorito da tools usati (slide successive)
174
+ - ** Assenza branch develop**
175
+
176
+ {{% /note %}}
177
+
166
178
---
167
179
168
- ## Conventional Commit
180
+ ## Conventional Commits
169
181
170
- To enforce ` conventional commit ` we developed
182
+ To enforce ` Conventional Commits ` we developed
171
183
a [ _ gradle plugin_ ] ( https://github.com/nicolasfara/conventional-commits ) and an
172
184
[ _ sbt plugin_ ] ( https://github.com/nicolasfara/sbt-conventional-commits ) .
173
185
The plugin is handy since:
174
186
175
- - It creates a git hook as soon as the project is imported
176
- (one cannot forget to set it up!)
177
- - It can also be configured through ad-hoc plug-in keys
187
+ - It creates a git hook as soon as the project is imported (you don't forget to set it up!)
188
+ - It can also be configured through plug-in keys
178
189
179
190
{{% note %}}
180
191
181
192
Perché usare ` conventional commit ` ?
182
193
183
- - Determinare automaticamente il version bump
184
- - Avviare build e publishing del progetto in automatico
185
- - Generare automaticamenet CHANGELOGs
186
194
- Storia dei commit più facile da capire
187
-
188
- - Husky e commitlint non ci piacevano perché uno se ne può dimenticare
189
- dato che richiedono intervento manuale
195
+ - Strumenti lo usano per effettuare version bump automatico
196
+ - Generare automaticamente CHANGELOGs
197
+ - Limitazioni ` Husky ` e ` commitlint ` in progetti non js
190
198
191
199
{{% /note %}}
192
200
@@ -197,11 +205,11 @@ Perché usare `conventional commit`?
197
205
[ ` semantic-release ` ] ( https://semantic-release.gitbook.io/semantic-release/ )
198
206
automates the whole package release workflow:
199
207
200
- - Determines the next version number
208
+ - Determines automatically the next version number
201
209
- Generates the release notes
202
- - Publishes the package
210
+ - Publishes the artifacts ( [ ` Maven Central ` ] ( https://search.maven.org/search?q=g:dev.atedeg.mdm ) and [ ` Docker Hub ` ] ( https://hub.docker.com/search?q=atedeg ) in our case)
203
211
204
- The use of __ Conventional Commits __ combined with __ Semantic Release __ helped us to automate the release process
212
+ The use of ** Conventional Commits ** combined with ** Semantic Release ** helped us to automate the release process
205
213
206
214
---
207
215
@@ -222,7 +230,7 @@ Each of these tools is used in CI to prevent the merging of bad code
222
230
The following workflow is the result of a pipeline optimization that seeks to take full advantage of the parallelism between jobs:
223
231
224
232
{{< mermaid >}}
225
- %%{init: {'theme':'base'}}%%
233
+ %%{init: {'theme':'base', 'themeVariables': { 'fontFamily': 'Inter' } }}%%
226
234
flowchart LR
227
235
SFMT(Scalafmt) --> B
228
236
SFX(Scalafix) --> B
@@ -235,6 +243,14 @@ flowchart LR
235
243
236
244
To simplify the ` Publish ` job, the [ ` scala-release ` ] ( https://github.com/atedeg/scala-release ) action was developed
237
245
246
+ {{% note %}}
247
+
248
+ - Usate ` GitHub Actions ` per CI/CD
249
+ - Ottimizzazione dei workflow: parallelismo
250
+ - ` scala-release ` action: semplifica il processo di pubblicazione
251
+
252
+ {{% /note %}}
253
+
238
254
---
239
255
240
256
## Project Management
@@ -243,6 +259,14 @@ To simplify the `Publish` job, the [`scala-release`](https://github.com/atedeg/s
243
259
- All backlog items are tracked by linked GitHub issues
244
260
- Closing PRs and issues automatically advances the project status
245
261
262
+ {{% note %}}
263
+
264
+ - Utilizzo di Github projects per gestione progetto
265
+ - Traccia dei backlog items attraverso issue
266
+ - Chiusura PR automaticamente chiude issue aggiornando stato progetto
267
+
268
+ {{% /note %}}
269
+
246
270
{{% /section %}}
247
271
248
272
---
@@ -402,6 +426,7 @@ We needed a way to automatically generate documentation pages containing the
402
426
ubiquitous language definitions coming from the scaladoc
403
427
404
428
{{% note %}}
429
+
405
430
- tutti i concetti sono mappati 1:1
406
431
- evitare inconsistenze tra codice e documentazione (copia incolla)
407
432
- così esperto di dominio e programmatori sono allineati
@@ -446,6 +471,7 @@ _"...except as required for reasonable and customary use_
446
471
_ in describing the origin of the Work..."_
447
472
448
473
{{% note %}}
474
+
449
475
- in una situa reale progetto chiuso perché potrebbe segreti industriali
450
476
- MARCHIO REGISTRATO
451
477
{{% /note %}}
0 commit comments