Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Thank you! Your submission has been received!
Oops! Something went wrong while submitting the form.
Natalia Terlecka
Mariana Berga

Min Read

14 mars 2023

Les choses à faire et à ne pas faire en matière de POO

Programmation orientée objet est devenu le paradigme de programmation dominant dans les années 90, et ses principes restent extrêmement précieux et largement adoptés par plusieurs langages de programmation (par ex. Python, Java, TypeScript, etc.). Si vous programmez, vous devez déjà l'avoir rencontré en cours de route.

Le concept est très simple : transformez tout ce dont vous avez besoin pour travailler en objet. Ensuite, c'est à vous de décider du nombre et du type d'objets que vous créez. Aujourd'hui, je souhaite partager avec vous ce que j'ai appris sur la séparation de l'architecture des applications en objets, en commençant par une brève introduction à la programmation orientée objet (POO).

blue arrow to the left
Imaginary Cloud logo

Qu'est-ce que la programmation orientée objet (POO) ?

Il s'agit d'un paradigme de programmation qui structure un programme logiciel en fonction d'objets. En termes simples, il crée des objets contenant des fonctions et des données. Ce paradigme repose largement sur le concept de classes et objets.

En d'autres termes, dans un langage OOP, du code est écrit pour définir les classes et les objets respectifs en suivant quatre principes : encapsulation, abstraction, héritage et polymorphisme.

blue arrow to the left
Imaginary Cloud logo

Principes de programmation orientée objet

Effectuez une recherche n'importe où sur le Web et vous trouverez rapidement une liste de principes liés à la POO. Ce sont : l'encapsulation, l'abstraction, l'héritage et le polymorphisme. Voyons ce que ces principes signifient réellement :

  • Encapsulation : les attributs d'une entité sont inclus dans elle-même. En d'autres termes, l'encapsulation se produit lorsqu'un objet (à l'intérieur d'une classe) garde son état privé et n'expose que les informations sélectionnées. Ce principe nécessite la capacité de définir certains domaines comme privés ou publics.
  • Abstraction : masquez les informations importantes afin de réduire la complexité. C'est lorsque l'utilisateur interagit uniquement avec les méthodes et/ou les attributs d'un objet spécifique. En masquant des détails complexes à l'utilisateur, l'abstraction réduit par conséquent la complexité.
  • Héritage : comme son nom l'indique, une entité peut hériter des attributs d'autres entités. Plus précisément, les classes pour parents peuvent étendre leurs attributs et leurs comportements aux classes pour enfants, ce qui signifie également que ce principe favorise la réutilisabilité.
  • Polymorphisme : les entités peuvent avoir plusieurs formulaires. D'où le « polype ». En résumé, le polymorphisme se produit lorsque des objets sont conçus pour partager des comportements. En remplaçant ou en surchargeant, la même méthode peut exécuter différents comportements.

The four OOP Principles

Ce n'est cependant pas sur ce point que je vais me concentrer sur cet article. Du moins, pas sur la version la plus savante des principes de programmation orientée objet. Vous trouverez ici plus de connaissances pratiques sur la programmation orientée objet et de véritables idées sur la manière d'améliorer l'art de transformer tout en objet. À la fin de cet article, vous comprendrez parfaitement pourquoi cela est pertinent pour tous ceux qui programment.

blue arrow to the left
Imaginary Cloud logo

Les choses à faire et à ne pas faire en matière de POO

1. N'ayez pas peur de créer trop de classes

D'après mon expérience en programmation, je me souviendrai toujours du jour où j'ai ouvert l'un de ces grands projets et où la quantité de fichiers qu'il contenait était tout simplement incroyable. C'est alors que je me suis dit : c'est impossible à comprendre. L'idée de transformer une idée simple en une énorme quantité de fichiers semble exagérée, mais ce n'est souvent pas le cas.

Pour moi, la question que je me pose le plus lors de la conception de l'architecture d'une application est « dois-je créer un objet pour cela ? » Et, la plupart du temps, la réponse est simple :

Oui, je devrais.

En fin de compte, il est beaucoup plus facile de lire 10 fichiers d'objets différents dont les noms représentent leur fonction qu'une énorme pile de code ça fait tout. Le seul problème ici est d'organiser la grande quantité de fichiers que vous créez dans une structure facile à comprendre et à rechercher pour trouver toute personne susceptible de récupérer votre travail plus tard.

En tant que Développeur iOS, je suis ce que la plupart des développeurs iOS utilisent, à savoir Modèle MVC, et j'essaie toujours d'organiser les fichiers en dossiers au lieu de les déposer tous au même endroit.

2. Utiliser davantage de sous-catégories

Au lieu de créer une classe et de lui donner un ensemble de propriétés et de types d'énumération à configurer, pensez s'il ne serait pas préférable de simplement les séparer en élégantes sous-classes pour faciliter l'identification de ce qu'ils font réellement, en laissant la base suffisamment générique pour continuer à la redimensionner ultérieurement.

3. Rendre les objets génériques

L'une des beautés de la programmation orientée objet est que les classes pour les objets que vous créez peuvent être réutilisés dans d'autres projets, ce qui représente un gain de temps considérable. Pensez-y lorsque vous créez des objets et que vous les rendez génériques. L'approche du sous-classement peut certainement vous y aider.

Il vaut mieux séparer les classes pour les gérer Appels d'API ou dans les achats d'applications pour la version générique que vous pouvez utiliser dans l'ensemble de vos projets et la sous-classer avec une application spécifique qui vous fournira les données dont vous avez besoin.

4. Ne déchirez pas les objets

Parfois, je dois créer une méthode qui nécessite la transmission de nombreuses propriétés. Je ne veux pas les demander un par un, alors j'ai décidé de les mettre tous dans un dictionnaire ou un tableau et de les transmettre.

Cela semble assez pratique, mais cela ne l'est jamais.

J'y reviens un mois plus tard, ou pire encore, quelqu'un d'autre essaie de l'utiliser et il a vraiment du mal à assembler les propriétés exactement comme je l'ai fait, et il passe peut-être même un certain temps à déboguer pourquoi l'une d'entre elles est perçue comme nulle en cours de route.

En fin de compte, il est beaucoup plus facile de passer l'objet entier dont les propriétés appartiennent, même si elle contient beaucoup plus que ce dont vous avez besoin. Cette solution permet également s'adapte mieux car vous ne savez jamais quand vous aurez besoin de l'ensemble du contexte de l'objet, même si vous ne commencez qu'avec une petite partie de celui-ci.

Toutes les langages de programmation Je sais qu'ils sont orientés objet et pourtant, je continue de trouver différentes façons de répondre à cette simple question : quel genre d'objets devrait représenter cela ? Le nombre de possibilités peut représenter un défi en matière de programmation orientée objet, mais l'alternative consistant à ne pas les utiliser n'est ni viable ni souhaitable.

blue arrow to the left
Imaginary Cloud logo

Conclusion

Le paradigme de programmation orientée objet se concentre sur objets et sur la façon dont ces objets interagissent. Cela nécessite que le développeur planifie le codage à l'avance, ce qui conduit à une meilleure structure des données et permet leur réutilisation.

Ce paradigme implique quatre grands principes (encapsulation, héritage, polymorphisme et abstraction) qui doivent être suivis lors du développement d'un logiciel orienté objet.

Lors de la mise en œuvre de la POO, certains meilleures recommandations les développeurs peuvent postuler sont les suivants :


1. Créez autant de classes que nécessaire ;

2. Utiliser davantage de sous-classes ;

3. Rendre les objets plus génériques ;

4. Ne déchirez pas les objets.

Grow your revenue and user engagement by running a UX Audit! - Book a call

Vous avez trouvé cet article utile ? Ceux-ci vous plairont peut-être aussi !

blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
blue arrow to the left
Imaginary Cloud logo
Natalia Terlecka
Natalia Terlecka

Un développeur iOS senior qui fait partie d'une équipe iOS agile et qui donne aux individus les moyens de réaliser leurs rêves et leurs objectifs.

Read more posts by this author
Mariana Berga
Mariana Berga

Stagiaire en marketing avec un intérêt particulier pour la technologie et la recherche. Pendant mon temps libre, je joue au volley-ball et je gâte mon chien autant que possible.

Read more posts by this author

People who read this post, also found these interesting:

arrow left
arrow to the right
Dropdown caret icon