POO & Design Patterns
Introduction
Objectifs du cours (1/2)
Le but du cours n'est pas simplement de coder l'application mais de proposer une architecture logicielle :
- maintenable
- testable
- évolutive
Non seulement, vous apprendrez à mieux architecturer votre code mais surtout, vous pourrez expliquer pourquoi votre architecture logicielle est performante.
⇛ Changement d'état d'esprit de votre part :
pas seulement, "est-ce que ça marche" mais plutôt:
est-ce que je peux défendre ce code dans un cadre professionnel ?
Objectifs du cours (2/2)
- Principes du developpement orienté objet dans le monde professionnel
⇛ principes SOLID
- Les design patterns les plus courants pour un développeur full-stack:
- identifier les situations où les design patterns s'appliquent,
- savoir les mettre en place,
- illustrer des exemples des pratiques SOLID,
- répondre aux questions dans les entretiens d'embauche.
⇛ plus que des recettes les design patterns crée un langage commun pour les développeurs.
Objectifs secondaires
- Base d'ULM
Suffisament pour pouvoir parler de code au tableau, ce ne sera pas du tout un cours complet.
- Comprendre les nombreux dogmes que vous avez appris en L3 et M1.
100% Forax-compatible ⇛ tous les codes que vous avez vu en Java jusqu'à maintenant adhèrent aux principes SOLID.
Philosophie du cours
- Les principes SOLID et les design patterns peuvent être très abstrait si l'on n'a pas d'exemples concrets.
- Les exemples aident mais seule la pratique permet de réellement comprendre.
- Beaucoup de mises en situation en Java.
- Ne pas traiter tous les design patterns seulement les patterns qui reviennent tout le temps.
Pourquoi le choix du language Java ?
Les exemples du cours seront en Java mais tous les principes et les design patterns que nous verrons s'appliquent à n'importe quel langage permettant la programmation orientée objet.
Mais monsieur...
- C++ permet l'héritage multiple et pas Java
- Rust ne permet pas l'héritage
- ...
Nous verrons que l'héritage est un moyen technique de factoriser du code, qu'il est souvent peu adapté. Un seul design pattern utilise l'héritage.
Organisation
- Un examen final sur machine,
- Il faut finir et déposer les exercices sur e-learning,
- Il faut travailler tous les exemples du cours.