Souhaitez-vous essayer de persuader votre client que l'utilisation de la programmation orientée objet est beaucoup plus propre?
Je pense que vous devez vous renseigner davantage sur les paradigmes de programmation. Le code programmé orienté objet n'est pas nécessairement plus propre, et en fait, il n'est pas universellement applicable. En outre, un bon codeur orienté objet sait faire du bon travail en utilisant un procédural / modulaire (avec les paradigmes fonctionnels et déclaratifs, c'est un peu plus difficile, mais il ne devrait pas être trop difficile pour un bon programmeur d'arriver - via la lecture et la déduction - vers une solution FP / déclarative acceptable.)
Vous ne pouvez presque jamais, je le répète, vous ne pouvez presque pas avoir une bonne compréhension du moment et de la façon d'utiliser l'orientation d'objet sans avoir une bonne compréhension de la programmation procédurale et modulaire. OO est bien plus que la simple déclaration de classes et de hiérarchies d'héritage.
Ou essayez-vous de suivre ce dont il a besoin et de lui donner un code merdique?
Si vous ne pouvez pas écrire du bon code de manière procédurale, je doute que vous puissiez écrire du bon code d'une manière orientée objet. Période. Je n'essaie pas de juger ici, mais cela doit être affirmé.
L'orientation objet est une extension de la programmation procédurale et modulaire. L'orientation objet vous fournit simplement des outils qui, lorsqu'ils sont utilisés de manière appropriée, vous offrent de meilleurs mécanismes pour gérer les problèmes d'encapsulation, de couplage, de cohésion et de réutilisation / extensibilité du code.
Mais tous ces problèmes ne sont pas inhérents et uniques à OO. Ils existent dans le code procédural / modulaire (et dans d'autres paradigmes d'ailleurs). C'est le type de problèmes de complexité qui, à la base, est indépendant du paradigme. Si vous ne pouvez pas les manipuler sans colle OO, il est peu probable que vous puissiez les manipuler avec.
=========
Revenons à votre question initiale, à savoir s'il faut essayer de convaincre votre client. Ça dépend. Comme l'a dit l'affiche Sean McMillan, si le client essaie simplement de micro-gérer l'effort de développement d'un programme (lire, politique de bureau), éloignez-vous. Les gens qui font des projets de sabotage pour blâmer quelqu'un d'autre ou pour pousser un programme particulier. Vous ne voulez pas vous impliquer là-dedans.
OTH, il pourrait y avoir d'autres raisons pour une telle exigence. De nombreuses boutiques intégrées, pour le bien ou pour le mal, choisissent de mettre beaucoup de contraintes sur ce que vous pouvez faire avec C ++ (pas de méthodes virtuelles, pas d'exceptions, par exemple.) Parfois, cela se fait de manière agressive. D'autres fois, il existe des raisons techniques valables de le faire.
Vous devez donc comprendre pourquoi le client veut éviter le code OO. Et si vous pouvez supposer qu'il n'y a pas d'agenda politique (pas de drapeaux rouges), alors vous devriez faire la chose professionnelle à faire, qui est simplement de faire le code procédural / modulaire, et de faire du bon travail.
Il n'y a vraiment aucune excuse pour fournir du code merdique, indépendamment du paradigme de programmation. Si vous ne pouvez pas produire de code acceptable avec un seul paradigme, vous ne pouvez certainement pas produire de code acceptable en général.