Examen 1 - POO2 Flashcards
Pratiques et principes de programmation
- Nettoyage du code (code mort, warning, formatage etc.)
- Tell don’t ask
- Loi de Déméter
- QCS Query-Command Separation
- KISS
- DRY
- YAGNI
- Clean code
Nettoyage du code
enlever code mort, jamais appeler, resoudre warning, formatage, nettoyer imports, enlever les string/num magiques
Tell don’t ask
ne pas demander une info a lobjet et faire le travail à sa place, juste lui dire de faire son boulot (ex: on demande pas le moteur de la voiture pour le demarrer on dit a la voiture de demarrer)
Loi de Démeter
on connait juste ces amis directe, on ne partage pas plus que necessaire et ainsi on limte les dependances
QCS
querry command separation, ne pas faire une modification et une obtention d’info dans la meme methode
KISS
keep it simple, stupid ne pas se compliquer la vie, ecrire du code simple, ne pas penser a faire des optimisations difficles des le debut
DRY
don’t repeat yourself, ne pas repeter du code, garde le tt simple
YAGNI
you are not gonna need it, reflechir avant de coder qq chose d’inutil qui n’est pas demander, ex : tt les getters ne sont pas forcements a coder
Principes de programmation objet
- SRP (S de SOLID)
- Encapsulation
- Séparation des interfaces (I de SOLID)
- Open-Closed Principle (O de SOLID)
SRP
single responsability principle, une classe ne fait qu’une seule chose et elle le fait bien
Encapsulation
garder attribut privé, ne pas donné accès à n’importe qui, be shyyy
Séparation des interfaces
ne pas obliger une classe a implementer des methodes dont elle n’a pas besoin, favoriser la creation de multiples interfaces que d’une grosse qui est sensé tout faire
Open closed principle
Le principe ouvert/fermé stipule que les entités (classes, modules, fonctions, etc.) doivent être ouvertes à l’extension mais fermées à la modification. Cela signifie que vous pouvez ajouter de nouvelles fonctionnalités sans modifier le code existant.
Nom d’objet = référence de l’objet
MyClass obj = new MyClass();
Ici, obj est une référence à l’objet de type MyClass qui a été instancié.
les differents types de passage
passage en para et les return se sont par valeurs donc une copie
si on fait une copie de la reference la c’est l’original donc si je fait Class ref = class; (class obj creer avant) et que je modifi ref, je modifi aussi class