Les principes fondammentaux Flashcards

1
Q

Qu’est-ce qui définit la qualité d’une conception OO?

A

La bonne division de nos objets. Il faut limiter le Ripple Effect

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Quels sont les 4 paradigmes de programmation?

A

OO, fonctionnel, procédural, déclaratif (ex: terraform)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Que représente un objet en OO?

A

Il représente un concept du domaine d’affaire ainsi que ses interactions et comportements

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Que contient un objet?

A

Des données, des comportements (méthodes), une visibilité qui expose un contrat au monde extérieur.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Quelles sont les 2 métriques que nous devons balancer lorsque l’on développe un logiciel? Expliquez ces métriques

A

Cohésion: Degré de couplage entre un groupe d’objets. (Ex: Fromage a un fort couplage avec la fromagerie, mais un faible couplage avec le derrière de la bibliothèque)

Couplage: Niveau de liaisons physiques d’un objet (Ex: Imprimante a un fort couplage avec l’encre, mais un faible couplage avec le papier)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Que sont les principes SOLID+T?

A

Il s’agit de bons principes de conception (guideline appliqué dans bons cas).

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Quels sont les principes SOLID+T? Expliquez chacun brièvement.

A

SRP - Single responsibility principle

Une seule responsabilité pour un seul acteur donné pour un contexte donné

OCP - Open closed principle

Ouverture pour ajouter des versions des concepts qui peuvent évoluer dans le temps sans modifier de la logique actuelle, fermeture à devoir créer de la dette technique en modifiant l’existant pour supporter l’évolution

LSP - Liskov substitution principle

Un enfant ne peut pas avoir un leg refusé d’un parent et l’appelant ne doit pas devoir prendre action en sachant l’enfant

ISP - Interface segregation principle

Favoriser les contrats fragmentés en fonction des concepts que les gros contrats que certains n’ont d’intérêt qu’une partie du contrat

DIP - Dependencies inversion principle

Inverser la flèche de dépendance pour éviter d’être impacté par moins stable que lui (protection cycle d’évolution et modification)

TDA - Tell don’t ask

Faire confiance aux autres dans les traitements des actions, ils vont bien agir et m’informer si je dois prendre action

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Qu’est-ce que le Domain Driven Design?

A

Il s’agit d’une philosophie de conception s’appliquant aux problèmes d’affaire complexes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Quel est le langage promu par le Domain Driven Design?

A

Le langage du domaine d’affaire. Le langage ubiquitaire. Il s’agit d’avoir un langage compris par tous les membres de l’équipe et compris par les gens d’affaire.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Quels sont les 3 objets du DDD? Expliquez chacun de ces 3 objets.

A

Value Object: Représente une caractéristique de domaine. Il est immuable et expose un comportement (Ex: un objet Money, Couleur)

Entité: Possède une identité unique et évolue au courant de sa vie. Il possède des changements d’état, offre des comportements modifiant cet état et contient des données incluant des Value Objects. Il représente les données et les règles d’affaires d’un concept du domaine! (Ex: Permis de conduire)

Aggrégat: Le concept du domaine d’affaire qui a le plus haut niveau dans mon contexte. Englobe tous les Value Objects et toutes les entités. Il s’agit du point d’entrée du domaine et il expose les comportements offerts. (Ex: Dossier conducteur qui englobe le permis)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Qu’est-ce qu’un contexte d’affaire?

A

Il s’agit d’une zone du problème d’affaire, un contexte d’utilisation. (Ex: facturation vs dossiers médicaux)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly