Un projet complet et bien expliqué (TS - Clean Archi, DDD): https://github.com/Sairyss/domain-driven-hexagon
Repo de Mickael Wegerich: https://gitlab.com/mickaelw
(Ousmane) Pour les Devs .NET, voici un template de Clean Architecture avec la dernière version de .NET Core 3.1. C'est une ToDoList app . Ça reprend bcp l'approche de Jimmy Bogard (AutoMapper, Médiator, CQRS, etc....): https://github.com/JasonGT/CleanArchitecture
Approche Mika → Classique Hexa
Simple | CQRS |
|
|
Approche Pierre Cruislancy → Vertical slice architecture
Example front-end (SolidJS/Solid-router/Vite) (Kevin Abatan)
https://github.com/phodal/clean-frontend
https://outsidein.dev/about-this-guide.html
Posts sur LN de Nik Sumeiko:
https://developers.redhat.com/blog/2017/12/05/hexagonal-architecture-natural-fit-apache-camel
Privilégier des erreurs “métiers”, ex UsecaseError. Les exceptions devraient être réservées aux comportement exceptionnels, mais l'important est d'être consistant dans les choix techniques. L'approche fonctionnelle est très pratique pour gérer les erreurs.
https://8thlight.com/blog/brian-gerstle/2019/01/22/fnl-exceptions-in-java.html
https://davetayls.me/blog/2018/06/09/fp-ts-02-handling-error-cases
L'approche de T. Pierrain semble être la meilleure option: http://tpierrain.blogspot.com/2020/11/hexagonal-or-not-hexagonal.html
https://dev.to/asarnaout/the-anti-corruption-layer-pattern-pcd
Les subscribers n'ont pas d'auth, c'est interne et les usecases sont appelés directements
Utiliser des UUIDs
Génération des UUID client-side → résout le pb des redirections avec le pattern CQRS et facilite l'eventual consistancy.
Ne pas utiliser l'ID généré par la DB, sauf en tant qu'utilisation restreinte aux adapters, pour faciliter les queries et la communication.
Pour se faire, il est possible d'ajouter un “Surrogate ID” auto-généré par la base, mais qui n’apparaitra pas dans le domaine.