SlideShare uma empresa Scribd logo
1 de 74
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Bonnes pratiques de développement Mixed Reality
vendredi 14 septembre 2018
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 2
Présentation
Vincent Guigui
Innovative Technologies Advisor
@VincentGuigui
Jasmine Lebert
Experte Réalité Virtuelle / Augmentée / Mixte
T H E R E I S A B E T T E R W A Y
VR
3
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 4
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 5
Les casques VR
https://blog.octo.com/casques-vr-pour-votre-projet/
T H E R E I S A B E T T E R W A Y
AR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
T H E R E I S A B E T T E R W A Y
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
MR
Humain
Ordinateur
Environnement
Perception
Interaction
Homme-
Machine
Réalité
Conventionnelle
Réalité Mixte
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Source Wired
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 14
Mixed Reality devices
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 15
Mixed Reality devices
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 16
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 17
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 18
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 19
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 20
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 21
PC Windows 10 Holographic
CPU / GPU / HPU
Accéléromètre/Gyroscope
(Custom holographic processing unit)
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Mixed Reality
Casques immersifs HoloLens
Relié à un PC (pour l’instant) Autonome (pour l’instant)
Immersion totale Pas d’immersion
Contrôleurs Gaze & Tap
Room scale World scale
Inside-out tracking
Markless
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
T H E R E I S A B E T T E R W A Y
Concevoir un projet pour la MR
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 25
MR development workflow
PublicationImplémentationConception 3D
Magic leap world
Windows store
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 26
Check-list pour commencer un projet
 Appareils minimum (un ou plusieurs) pris en charge pour votre projet
 Workflow pour les scènes et les Prefabs
 Conventions (nommage, format utilisé, …)
 Bien comprendre les boucles Unity (Update / Start / … )
 Recommencer depuis zéro si vous avez déjà un prototype
 https://unity3d.com/fr/how-to/unity-common-mistakes-to-avoid
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 27
Travailler avec des personnes non dev
Définir un vocabulaire commun
Mettre au point un processus de collaboration
Connaître les compétences de chacun
Modélisation
Animation
Découpage et Optimisation de mesh
Interactivité
Développement
T H E R E I S A B E T T E R W A Y
Parlons un peu de UI
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 Le champ de vision (FOV) est limité.
< Objets Flottants (Tag along)
< Epinglés dans l’environnement
Manipulation directe, par pointage
 Bouton/Slider : skeuomorphisme ou diégétique ou abstrait ?
 Input Text : clavier virtuel, commande vocale…
 A éviter : Popup & page web
 Motion sickness / cinétose: éviter les mouvements de caméra incontrollés
29
Astuces pour votre User Interface
https://docs.microsoft.com/fr-fr/windows/mixed-reality/design
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 30
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 31
Sweet spot d’interaction
T H E R E I S A B E T T E R W A Y
Bonnes pratiques de modélisation
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 33
Trouver des Modèles 3D
Free3D
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 34
Mesh 3D : Vocabulaire OBLIGATOIRE
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 35
Mesh : Des triangles partout mais pas trop
Polygone 3 ou 4 cotés Topologie
X
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 36
Mesh : nombre de polygones
Low Poly
High Poly
 Retopology
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 37
Mesh : point de pivot
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 38
Mesh : format
Unity convertit les formats propriétaires en .fbx pendant l’importation.
Il n’est pas recommandé d’utiliser les formats propriétaires directement en production.
format générique
(.fbx, .dae, .obj)
format propriétaire
(3ds, .dxf, .skp)
Chargement dynamique du
modèle
Taille du fichier
Modularité
Licence logicielle
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 Texture
< Image 2D
< Les pixels de la texture sont appelés texels (pour
les différencier des pixels de l’écran)
 Matériaux
< Ensemble de map de texture (Albedo, normal, metallic,
…)
39
Textures et matériaux
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 40
Textures : Exemple sur un modèle 3D
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 41
Textures : Normal Map
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 42
Textures : Normal Map
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Post processing :
<traitement de la lumière (baked)
<Intensité lumineuse
<Effets : brouillard , Ambient occlusion
<Flou de mouvement (motion blur)
<…
Shader
< Script pouvant paramétrer une partie du processus de rendu
+ réalisé directement par la carte graphique
<Matériau = Shader
<Exemple : Transparent / Opaque / Déformation du mesh
<https://unity3d.com/fr/how-to/XR-graphics-development-tips
43
Pour aller plus loin…
T H E R E I S A B E T T E R W A Y
Créer une appli avec Unity
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 https://github.com/Microsoft/Mi
xedRealityToolkit-Unity
45
MRTK
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 Unity / Windows / MRTK : perpétuelle évolution
< Problème compatibilité
< Mise à jour
 Aujourd’hui
< Site Unity : Unity 2017.2 et les versions plus récentes (Visual studio 2017)
< Site Microsoft : Unity 2017.4 + Visual Studio 2017
< MRTK : Unity 2018.1
46
La course des SDKs
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 47
T H E R E I S A B E T T E R W A Y
Bonnes pratiques de développement avec Unity
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Versioning
Smartmerge ou unityYAMLMerge tool
Dev 1
Dev 2
conflit
Merge
49
Smart
Merge
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
๏ Enregistrer en YAML
50
Versioning
Smartmerge ou unityYAMLMerge tool
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
๏ Enregistrer en YAML
51
Versioning
Smartmerge ou unityYAMLMerge tool
๏ Créer un git mergetool  UnityYAMLMerge.exe
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
๏ ajout des lignes suivantes dans le fichier .git/config :
< [merge]
< tool = unityyamlmerge
< [mergetool "unityyamlmerge"]
< cmd = 'C:Program FilesUnityEditorDataToolsUnityYAMLMerge.exe' merge -p
"$BASE" "$REMOTE" "$LOCAL" "$MERGED"
< trustExitCode = false
< keepTempories = true
< keepBackup = false
52
Versioning
Smartmerge ou unityYAMLMerge tool
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 53
Textures HD Fichier 3DContenu multimédia
Versioning
versionner un projet avec des fichiers volumineux
Comment travailler avec des fichiers volumineux
dans un projet versionné ?
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Versioning
Gérer des fichiers volumineux avec Git LFS
54
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Versioning
Gérer des fichiers volumineux avec Git LFS
55
$ git lfs install
Updated git hooks.
Git LFS initialized.
$ git lfs track "*.png"
Tracking "*.png"
$ git add .gitattributes
$ git add file.png
$ git commit -m "Add image file"
$ git push origin master
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 56
Versioning
Gérer des fichiers volumineux avec Git LFS
- ne change pas le fonctionnement de git
- Facile à installer et à utiliser
- Github / Bitbucket / Gitlab / TFS
- Windows / Mac / Linux
- Open Source
- 2 Go max par fichier
- Les fichiers ne sont pas versionnés
- nécessite un serveur (https)
T H E R E I S A B E T T E R W A Y
Tests automatisés
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 58
Les tests automatisés
Quantité de Tests
Coût
Temps d'exécution
Investissement du
Développeur
Précision
Fiabilité
Rapidité
La pyramide des tests
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 59
Unity : les tests unitaires
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 60
Unity : les tests unitaires avec bouchons
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 61
Unity : tests d’intégration
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 using UnityEngine.Assertions
<“Assert.AreApproximatelyEqual”
<“Assert.AreNotApproximatelyEqual”
<“ColorEqualityComparer”
<“QuaternionEqualityComparer”
<“Vector2EqualityComparer”
< “Vector3EqualityComparer”
<“Vector4EqualityComparer”
62
Unity : assertions
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 63
Unity : Injection de dépendances
T H E R E I S A B E T T E R W A Y
Clean Code / Clean Architecture
MR
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 65
Un code toujours plus clean
Ouvrages
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 66
Un code toujours plus clean
Clean Code : Règle d’un design simple (Kent Beck, 1990)
๏ Les tests passent
๏ L’intention du code est claire
๏ Il n’y a pas de duplication de code
๏ Le code a le moins d’éléments possible
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
SRP (Single Responsibility Principle)
OCP (Open-Closed Principle)
LSP (Liskov Substitution Principle)
ISP (Interface Segregation Principle)
DIP (Dependency Inversion Principle)
67
Un code toujours plus clean
Clean Code : principes SOLID
S
O
L
I
D
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
Un code toujours plus clean
68
Clean Code : Boy Scout Rule
The boy scout rule
« Laissez toujours le code que vous éditez un
peu mieux que vous lorsque vous l'avez trouvé »
Robert C. Martin (Oncle Bob)
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 69
Un code toujours plus clean
Architecture hexagonal
Domain
Infrastructure
- Indépendant des Frameworks
- Testable unitairement
- Indépendant de l’interface utilisateur
- Indépendant des bases de données
- Indépendant de tout élément
extérieur
</>
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 70
Un code toujours plus clean
Clean Architecture
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 71
Un code toujours plus clean
Clean Architecture : Architecture cible
Presenter
Controller
DomainUse Cases
Infra
Views
- Cœur
- Métier
- Fonctionnalités
- Indépendant
- Choix techniques
- Point d’entrée de l’application
- Contient 2 couches : Interface
Adapters et framework & driver
Pas de classe dérivant de MonoBehaviour
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 72
Un code toujours plus clean
๏ Testabilité
๏ Homogénéité du code
๏ Maintenabilité des gros projets
๏ Lourd à mettre en place
๏ Classes passe-plat
๏ Coût d’apprentissage
Clean Architecture : Avantages et Inconvénients
OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
 Guide des bonnes pratiques de développement
<https://github.com/jaayap/Unity_Best_Practices
<https://jaayap.github.io/Unity_Best_Practices/
 https://docs.microsoft.com/fr-fr/windows/mixed-reality/design
 https://unity3d.com/fr/how-to/unity-common-mistakes-to-avoid
 https://docs.unity3d.com/Manual/HOWTO-
ArtAssetBestPracticeGuide.html?_ga=2.24224826.100948709.1536242686-
182448508.1523459279
 Unite Austin 2017 - Testing for Sanity: Using Unity's Integrated TestRunner
<https://www.youtube.com/watch?v=MWS4aSO7HAo
73
Pour en savoir plus…
T H E R E I S A B E T T E R W A Y
Questions ?

Mais conteúdo relacionado

Semelhante a Rebuild 2018 - Bonnes pratiques de développement Mixed Reality

Conference IIM - TLD 28072023.pdf
Conference IIM - TLD 28072023.pdfConference IIM - TLD 28072023.pdf
Conference IIM - TLD 28072023.pdfTanguy Le Duff
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"OCTO Technology
 
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ?
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ? Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ?
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ? OCTO Technology
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Technology
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France François-Guillaume Ribreau
 
Matinale DevSecOps League : Sortez la sécurité de l'obscurantisme
Matinale DevSecOps League : Sortez la sécurité de l'obscurantismeMatinale DevSecOps League : Sortez la sécurité de l'obscurantisme
Matinale DevSecOps League : Sortez la sécurité de l'obscurantismeOCTO Technology
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Les environnements 3 d en entreprise
Les environnements 3 d en entrepriseLes environnements 3 d en entreprise
Les environnements 3 d en entrepriseLaure Neria
 
L'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérativeL'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérativeFrançois Xavier Vende
 
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/GrailsJUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grailscyrilpicat
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"OCTO Technology
 
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...OCTO Technology
 
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?OCTO Technology
 
Performance des applications web - USI Casa 2011
Performance des applications web - USI Casa 2011Performance des applications web - USI Casa 2011
Performance des applications web - USI Casa 2011Eric D.
 
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...Kofi Sika Franck Latzoo
 
Réalité virtuelle + Open source = &lt;3
Réalité virtuelle + Open source = &lt;3Réalité virtuelle + Open source = &lt;3
Réalité virtuelle + Open source = &lt;3Yannick Comte
 
Etat de l'art imprimantes 3D XXL 2020.pdf
Etat de l'art imprimantes 3D XXL 2020.pdfEtat de l'art imprimantes 3D XXL 2020.pdf
Etat de l'art imprimantes 3D XXL 2020.pdfAlexandre Contat
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009JUG Lausanne
 
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolutionLA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolutionOCTO Technology
 

Semelhante a Rebuild 2018 - Bonnes pratiques de développement Mixed Reality (20)

Conference IIM - TLD 28072023.pdf
Conference IIM - TLD 28072023.pdfConference IIM - TLD 28072023.pdf
Conference IIM - TLD 28072023.pdf
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
 
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ?
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ? Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ?
Le Comptoir OCTO - Quoi de neuf pour vos apps mobiles ?
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France Une plateforme moderne pour le groupe SIPA/Ouest-France 
Une plateforme moderne pour le groupe SIPA/Ouest-France 
 
Matinale DevSecOps League : Sortez la sécurité de l'obscurantisme
Matinale DevSecOps League : Sortez la sécurité de l'obscurantismeMatinale DevSecOps League : Sortez la sécurité de l'obscurantisme
Matinale DevSecOps League : Sortez la sécurité de l'obscurantisme
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Les environnements 3 d en entreprise
Les environnements 3 d en entrepriseLes environnements 3 d en entreprise
Les environnements 3 d en entreprise
 
L'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérativeL'histoire d'une infrastructure itérative
L'histoire d'une infrastructure itérative
 
JUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/GrailsJUGL 2009 - Introduction Groovy/Grails
JUGL 2009 - Introduction Groovy/Grails
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"
 
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...
Le Comptoir OCTO - Architecture Hexagonale & Clean architecture : bonnet blan...
 
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?
Le Comptoir OCTO - ChatGPT : Menace ou opportunité ?
 
Performance des applications web - USI Casa 2011
Performance des applications web - USI Casa 2011Performance des applications web - USI Casa 2011
Performance des applications web - USI Casa 2011
 
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...
Gew2013 algeria #webdays oran la technologie microsoft kinect pour les entrep...
 
Réalité virtuelle + Open source = &lt;3
Réalité virtuelle + Open source = &lt;3Réalité virtuelle + Open source = &lt;3
Réalité virtuelle + Open source = &lt;3
 
Etat de l'art imprimantes 3D XXL 2020.pdf
Etat de l'art imprimantes 3D XXL 2020.pdfEtat de l'art imprimantes 3D XXL 2020.pdf
Etat de l'art imprimantes 3D XXL 2020.pdf
 
Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009Maven2 - Philippe Kernevez - March 2009
Maven2 - Philippe Kernevez - March 2009
 
Revit structure pdf
Revit structure pdfRevit structure pdf
Revit structure pdf
 
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolutionLA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
LA DUCK CONF 2023 - La vie d'Ops au coeur d'un SI en évolution
 

Mais de Vincent Guigui

Extended Reality Usecases
Extended Reality UsecasesExtended Reality Usecases
Extended Reality UsecasesVincent Guigui
 
Augmented Retail - Meetup Retail 2021
Augmented Retail - Meetup Retail 2021Augmented Retail - Meetup Retail 2021
Augmented Retail - Meetup Retail 2021Vincent Guigui
 
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021Vincent Guigui
 
Chatbot - La voix du client et l'oreille de la machine - PSBeduParis
Chatbot - La voix du client et l'oreille de la machine - PSBeduParisChatbot - La voix du client et l'oreille de la machine - PSBeduParis
Chatbot - La voix du client et l'oreille de la machine - PSBeduParisVincent Guigui
 
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleMyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleVincent Guigui
 
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot Builder
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot BuilderRebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot Builder
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot BuilderVincent Guigui
 
Social Media Awards 2018 - Le Futur des Expériences Utilisateur
Social Media Awards 2018 - Le Futur des Expériences UtilisateurSocial Media Awards 2018 - Le Futur des Expériences Utilisateur
Social Media Awards 2018 - Le Futur des Expériences UtilisateurVincent Guigui
 
TF1 Parcours Connect - Médias Immersifs
TF1 Parcours Connect - Médias ImmersifsTF1 Parcours Connect - Médias Immersifs
TF1 Parcours Connect - Médias ImmersifsVincent Guigui
 
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...Vincent Guigui
 
Découverte de HoloLens - HubInstitute
Découverte de HoloLens - HubInstituteDécouverte de HoloLens - HubInstitute
Découverte de HoloLens - HubInstituteVincent Guigui
 
HumanTalks - Les Expériences Immersives
HumanTalks - Les Expériences ImmersivesHumanTalks - Les Expériences Immersives
HumanTalks - Les Expériences ImmersivesVincent Guigui
 
Meetup Virtual Association : HoloLens Kezako ?
Meetup Virtual Association : HoloLens Kezako ?Meetup Virtual Association : HoloLens Kezako ?
Meetup Virtual Association : HoloLens Kezako ?Vincent Guigui
 
Les usages réels de la réalité virtuelle - Microsoft HoloLens
Les usages réels de la réalité virtuelle - Microsoft HoloLensLes usages réels de la réalité virtuelle - Microsoft HoloLens
Les usages réels de la réalité virtuelle - Microsoft HoloLensVincent Guigui
 
NCrafts.IO 2015 - Future of User eXperiences
NCrafts.IO 2015 - Future of User eXperiencesNCrafts.IO 2015 - Future of User eXperiences
NCrafts.IO 2015 - Future of User eXperiencesVincent Guigui
 
Softshake 2014 - Création d'expériences immersives
Softshake 2014  - Création d'expériences immersivesSoftshake 2014  - Création d'expériences immersives
Softshake 2014 - Création d'expériences immersivesVincent Guigui
 
JDC2014 - Kinect et usages professionnels
JDC2014 - Kinect et usages professionnelsJDC2014 - Kinect et usages professionnels
JDC2014 - Kinect et usages professionnelsVincent Guigui
 

Mais de Vincent Guigui (16)

Extended Reality Usecases
Extended Reality UsecasesExtended Reality Usecases
Extended Reality Usecases
 
Augmented Retail - Meetup Retail 2021
Augmented Retail - Meetup Retail 2021Augmented Retail - Meetup Retail 2021
Augmented Retail - Meetup Retail 2021
 
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021
Extended Reality usecases for B2C and B2E - Virtual Meetup September 2021
 
Chatbot - La voix du client et l'oreille de la machine - PSBeduParis
Chatbot - La voix du client et l'oreille de la machine - PSBeduParisChatbot - La voix du client et l'oreille de la machine - PSBeduParis
Chatbot - La voix du client et l'oreille de la machine - PSBeduParis
 
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielleMyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
MyUSI 2018 Chatbot : où en sommes nous ? Où est l'intelligence artificielle
 
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot Builder
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot BuilderRebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot Builder
Rebuild 2018 - Comment faire un bon Chatbot avec Microsoft Luis et Bot Builder
 
Social Media Awards 2018 - Le Futur des Expériences Utilisateur
Social Media Awards 2018 - Le Futur des Expériences UtilisateurSocial Media Awards 2018 - Le Futur des Expériences Utilisateur
Social Media Awards 2018 - Le Futur des Expériences Utilisateur
 
TF1 Parcours Connect - Médias Immersifs
TF1 Parcours Connect - Médias ImmersifsTF1 Parcours Connect - Médias Immersifs
TF1 Parcours Connect - Médias Immersifs
 
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...
Virtuality 2017 - Accenture / OCTO La réalité augmentée et la maintenance ind...
 
Découverte de HoloLens - HubInstitute
Découverte de HoloLens - HubInstituteDécouverte de HoloLens - HubInstitute
Découverte de HoloLens - HubInstitute
 
HumanTalks - Les Expériences Immersives
HumanTalks - Les Expériences ImmersivesHumanTalks - Les Expériences Immersives
HumanTalks - Les Expériences Immersives
 
Meetup Virtual Association : HoloLens Kezako ?
Meetup Virtual Association : HoloLens Kezako ?Meetup Virtual Association : HoloLens Kezako ?
Meetup Virtual Association : HoloLens Kezako ?
 
Les usages réels de la réalité virtuelle - Microsoft HoloLens
Les usages réels de la réalité virtuelle - Microsoft HoloLensLes usages réels de la réalité virtuelle - Microsoft HoloLens
Les usages réels de la réalité virtuelle - Microsoft HoloLens
 
NCrafts.IO 2015 - Future of User eXperiences
NCrafts.IO 2015 - Future of User eXperiencesNCrafts.IO 2015 - Future of User eXperiences
NCrafts.IO 2015 - Future of User eXperiences
 
Softshake 2014 - Création d'expériences immersives
Softshake 2014  - Création d'expériences immersivesSoftshake 2014  - Création d'expériences immersives
Softshake 2014 - Création d'expériences immersives
 
JDC2014 - Kinect et usages professionnels
JDC2014 - Kinect et usages professionnelsJDC2014 - Kinect et usages professionnels
JDC2014 - Kinect et usages professionnels
 

Rebuild 2018 - Bonnes pratiques de développement Mixed Reality

  • 1. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Bonnes pratiques de développement Mixed Reality vendredi 14 septembre 2018
  • 2. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 2 Présentation Vincent Guigui Innovative Technologies Advisor @VincentGuigui Jasmine Lebert Experte Réalité Virtuelle / Augmentée / Mixte
  • 3. T H E R E I S A B E T T E R W A Y VR 3
  • 4. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 4
  • 5. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 5 Les casques VR https://blog.octo.com/casques-vr-pour-votre-projet/
  • 6. T H E R E I S A B E T T E R W A Y AR
  • 7. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
  • 8. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
  • 9. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
  • 10. T H E R E I S A B E T T E R W A Y MR
  • 11. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable MR Humain Ordinateur Environnement Perception Interaction Homme- Machine Réalité Conventionnelle Réalité Mixte
  • 12. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Source Wired
  • 13. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
  • 14. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 14 Mixed Reality devices
  • 15. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 15 Mixed Reality devices
  • 16. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 16
  • 17. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 17
  • 18. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 18
  • 19. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 19
  • 20. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 20
  • 21. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable N° 21 PC Windows 10 Holographic CPU / GPU / HPU Accéléromètre/Gyroscope (Custom holographic processing unit)
  • 22. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Mixed Reality Casques immersifs HoloLens Relié à un PC (pour l’instant) Autonome (pour l’instant) Immersion totale Pas d’immersion Contrôleurs Gaze & Tap Room scale World scale Inside-out tracking Markless
  • 23. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable
  • 24. T H E R E I S A B E T T E R W A Y Concevoir un projet pour la MR MR
  • 25. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 25 MR development workflow PublicationImplémentationConception 3D Magic leap world Windows store
  • 26. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 26 Check-list pour commencer un projet  Appareils minimum (un ou plusieurs) pris en charge pour votre projet  Workflow pour les scènes et les Prefabs  Conventions (nommage, format utilisé, …)  Bien comprendre les boucles Unity (Update / Start / … )  Recommencer depuis zéro si vous avez déjà un prototype  https://unity3d.com/fr/how-to/unity-common-mistakes-to-avoid
  • 27. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 27 Travailler avec des personnes non dev Définir un vocabulaire commun Mettre au point un processus de collaboration Connaître les compétences de chacun Modélisation Animation Découpage et Optimisation de mesh Interactivité Développement
  • 28. T H E R E I S A B E T T E R W A Y Parlons un peu de UI MR
  • 29. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  Le champ de vision (FOV) est limité. < Objets Flottants (Tag along) < Epinglés dans l’environnement Manipulation directe, par pointage  Bouton/Slider : skeuomorphisme ou diégétique ou abstrait ?  Input Text : clavier virtuel, commande vocale…  A éviter : Popup & page web  Motion sickness / cinétose: éviter les mouvements de caméra incontrollés 29 Astuces pour votre User Interface https://docs.microsoft.com/fr-fr/windows/mixed-reality/design
  • 30. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 30
  • 31. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 31 Sweet spot d’interaction
  • 32. T H E R E I S A B E T T E R W A Y Bonnes pratiques de modélisation MR
  • 33. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 33 Trouver des Modèles 3D Free3D
  • 34. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 34 Mesh 3D : Vocabulaire OBLIGATOIRE
  • 35. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 35 Mesh : Des triangles partout mais pas trop Polygone 3 ou 4 cotés Topologie X
  • 36. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 36 Mesh : nombre de polygones Low Poly High Poly  Retopology
  • 37. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 37 Mesh : point de pivot
  • 38. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 38 Mesh : format Unity convertit les formats propriétaires en .fbx pendant l’importation. Il n’est pas recommandé d’utiliser les formats propriétaires directement en production. format générique (.fbx, .dae, .obj) format propriétaire (3ds, .dxf, .skp) Chargement dynamique du modèle Taille du fichier Modularité Licence logicielle
  • 39. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  Texture < Image 2D < Les pixels de la texture sont appelés texels (pour les différencier des pixels de l’écran)  Matériaux < Ensemble de map de texture (Albedo, normal, metallic, …) 39 Textures et matériaux
  • 40. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 40 Textures : Exemple sur un modèle 3D
  • 41. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 41 Textures : Normal Map
  • 42. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 42 Textures : Normal Map
  • 43. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Post processing : <traitement de la lumière (baked) <Intensité lumineuse <Effets : brouillard , Ambient occlusion <Flou de mouvement (motion blur) <… Shader < Script pouvant paramétrer une partie du processus de rendu + réalisé directement par la carte graphique <Matériau = Shader <Exemple : Transparent / Opaque / Déformation du mesh <https://unity3d.com/fr/how-to/XR-graphics-development-tips 43 Pour aller plus loin…
  • 44. T H E R E I S A B E T T E R W A Y Créer une appli avec Unity MR
  • 45. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  https://github.com/Microsoft/Mi xedRealityToolkit-Unity 45 MRTK
  • 46. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  Unity / Windows / MRTK : perpétuelle évolution < Problème compatibilité < Mise à jour  Aujourd’hui < Site Unity : Unity 2017.2 et les versions plus récentes (Visual studio 2017) < Site Microsoft : Unity 2017.4 + Visual Studio 2017 < MRTK : Unity 2018.1 46 La course des SDKs
  • 47. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 47
  • 48. T H E R E I S A B E T T E R W A Y Bonnes pratiques de développement avec Unity MR
  • 49. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Versioning Smartmerge ou unityYAMLMerge tool Dev 1 Dev 2 conflit Merge 49 Smart Merge
  • 50. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable ๏ Enregistrer en YAML 50 Versioning Smartmerge ou unityYAMLMerge tool
  • 51. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable ๏ Enregistrer en YAML 51 Versioning Smartmerge ou unityYAMLMerge tool ๏ Créer un git mergetool  UnityYAMLMerge.exe
  • 52. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable ๏ ajout des lignes suivantes dans le fichier .git/config : < [merge] < tool = unityyamlmerge < [mergetool "unityyamlmerge"] < cmd = 'C:Program FilesUnityEditorDataToolsUnityYAMLMerge.exe' merge -p "$BASE" "$REMOTE" "$LOCAL" "$MERGED" < trustExitCode = false < keepTempories = true < keepBackup = false 52 Versioning Smartmerge ou unityYAMLMerge tool
  • 53. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 53 Textures HD Fichier 3DContenu multimédia Versioning versionner un projet avec des fichiers volumineux Comment travailler avec des fichiers volumineux dans un projet versionné ?
  • 54. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Versioning Gérer des fichiers volumineux avec Git LFS 54
  • 55. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Versioning Gérer des fichiers volumineux avec Git LFS 55 $ git lfs install Updated git hooks. Git LFS initialized. $ git lfs track "*.png" Tracking "*.png" $ git add .gitattributes $ git add file.png $ git commit -m "Add image file" $ git push origin master
  • 56. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 56 Versioning Gérer des fichiers volumineux avec Git LFS - ne change pas le fonctionnement de git - Facile à installer et à utiliser - Github / Bitbucket / Gitlab / TFS - Windows / Mac / Linux - Open Source - 2 Go max par fichier - Les fichiers ne sont pas versionnés - nécessite un serveur (https)
  • 57. T H E R E I S A B E T T E R W A Y Tests automatisés MR
  • 58. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 58 Les tests automatisés Quantité de Tests Coût Temps d'exécution Investissement du Développeur Précision Fiabilité Rapidité La pyramide des tests
  • 59. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 59 Unity : les tests unitaires
  • 60. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 60 Unity : les tests unitaires avec bouchons
  • 61. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 61 Unity : tests d’intégration
  • 62. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  using UnityEngine.Assertions <“Assert.AreApproximatelyEqual” <“Assert.AreNotApproximatelyEqual” <“ColorEqualityComparer” <“QuaternionEqualityComparer” <“Vector2EqualityComparer” < “Vector3EqualityComparer” <“Vector4EqualityComparer” 62 Unity : assertions
  • 63. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 63 Unity : Injection de dépendances
  • 64. T H E R E I S A B E T T E R W A Y Clean Code / Clean Architecture MR
  • 65. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 65 Un code toujours plus clean Ouvrages
  • 66. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 66 Un code toujours plus clean Clean Code : Règle d’un design simple (Kent Beck, 1990) ๏ Les tests passent ๏ L’intention du code est claire ๏ Il n’y a pas de duplication de code ๏ Le code a le moins d’éléments possible
  • 67. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable SRP (Single Responsibility Principle) OCP (Open-Closed Principle) LSP (Liskov Substitution Principle) ISP (Interface Segregation Principle) DIP (Dependency Inversion Principle) 67 Un code toujours plus clean Clean Code : principes SOLID S O L I D
  • 68. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable Un code toujours plus clean 68 Clean Code : Boy Scout Rule The boy scout rule « Laissez toujours le code que vous éditez un peu mieux que vous lorsque vous l'avez trouvé » Robert C. Martin (Oncle Bob)
  • 69. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 69 Un code toujours plus clean Architecture hexagonal Domain Infrastructure - Indépendant des Frameworks - Testable unitairement - Indépendant de l’interface utilisateur - Indépendant des bases de données - Indépendant de tout élément extérieur </>
  • 70. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 70 Un code toujours plus clean Clean Architecture
  • 71. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 71 Un code toujours plus clean Clean Architecture : Architecture cible Presenter Controller DomainUse Cases Infra Views - Cœur - Métier - Fonctionnalités - Indépendant - Choix techniques - Point d’entrée de l’application - Contient 2 couches : Interface Adapters et framework & driver Pas de classe dérivant de MonoBehaviour
  • 72. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable 72 Un code toujours plus clean ๏ Testabilité ๏ Homogénéité du code ๏ Maintenabilité des gros projets ๏ Lourd à mettre en place ๏ Classes passe-plat ๏ Coût d’apprentissage Clean Architecture : Avantages et Inconvénients
  • 73. OCTO © 2018 - Reproduction interdite sans autorisation écrite préalable  Guide des bonnes pratiques de développement <https://github.com/jaayap/Unity_Best_Practices <https://jaayap.github.io/Unity_Best_Practices/  https://docs.microsoft.com/fr-fr/windows/mixed-reality/design  https://unity3d.com/fr/how-to/unity-common-mistakes-to-avoid  https://docs.unity3d.com/Manual/HOWTO- ArtAssetBestPracticeGuide.html?_ga=2.24224826.100948709.1536242686- 182448508.1523459279  Unite Austin 2017 - Testing for Sanity: Using Unity's Integrated TestRunner <https://www.youtube.com/watch?v=MWS4aSO7HAo 73 Pour en savoir plus…
  • 74. T H E R E I S A B E T T E R W A Y Questions ?

Notas do Editor

  1. La réalité augmentée : qui ajoute du contenu informatif, des pixels (de la lumière) et du son à des environnements, avec une relation interactive limitée.
  2. La réalité virtuelle qui bypass la vraie réalité au profit d’une réalité faite de pixels et de sons. Immersion totale et isolement idoine.
  3. Outils / logo automatisation : meshlab / simply gone
  4. Exporter des fichiers dans un format générique (.fbx) permet d’avoir un fichier moins volumineux qu’un fichier propriétaire (.3ds) Chaque personne du projet doit avoir une licence du logiciel sur sa machine ( 3DS max) .dae (Collada),
  5. Export 2 morceaux si on veut bouger l’ance
  6. Format des textures : TARGA ou PNG
  7. Trouver shader dédier Mobile et MR
  8. warning : compatibilité / différence des versions / course entre les diff logiciels Unity reactif / mrtk aussi / windows sdk : trois logiciel en perpetuelle évolution Attention mise a jour Recommandation actuelle (unity / microsoft / MRTK)
  9. Structure de document / panneau de propriété / console / solution explorer /
  10. Schema exemple smartmerge
  11. Comment ça marche ? Il faut configurer un merge tool dans git : dans le fichiers git config on va mettre un lien vers un .exe fournit avec l’installation de unity
  12. Comment ça marche ? Il faut configurer un merge tool dans git : dans le fichiers git config on va mettre un lien vers un .exe fournit avec l’installation de unity
  13. permettent de repérer rapidement les régressions ou les mauvais comportements. Rédiger des tests unitaires sert à vérifier le comportement du code
  14. Add : plus de tech / clean archi
  15. KISS : Keep It Simple & Stupid, principe de la responsabilité unique (un élément possède qu’une seule raison d’être modifié). YAGNI : You Ain’t Gonna Need It, essayer d’anticiper les problèmes futurs, n’est pas une bonne idée. Il est préférable de s’occuper du présent et de ne pas faire d’hypothèse sur ce que l’application pourrait utiliser.
  16. - SRP (Single Responsibility Principle) Ne faire qu’une seule chose mais la faire bien. Une classe doit avoir une et une seule raison de changer. - OCP (Open-Closed Principle) Une classe doit être ouverte à l’extension mais fermée à la modification (plugins) - LSP (Liskov Substitution Principle) Toutes implémentation d’une interface doit pouvoir se substituer à une autre - ISP (Interface Segregation Principle) Une classe ne doit implémenter une interface que si elle a réellement le besoin de remplir son contrat - DIP (Dependency Inversion Principle) Le code ne doit pas interagir directement avec l’extérieur mais doit passer par des abstractions (et vice versa).
  17. Robert C.Martin (uncle bob) « Always leave the code you’re editing a little better than you found it »
  18. Domain : Métier, cœur de l’application Infrastructure : « port and adapters »