Programmation OOP vs programmation procédurale - page 13

 
Alexey Navoykov:

Qu'entendez-vous par efficacité de la solution ?

Par efficacité de la solution, j'entends la qualité de la solution dans laquelle le mécanisme - et le logiciel est sans aucun doute un mécanisme - fonctionnera de la manière la plus stable. Le mécanisme doit être clair, cohérent et productif. La fonctionnalité du moteur doit permettre de réaliser toutes les tâches qui lui sont assignées. Le mécanisme n'accepte rien de superflu et dans le développement de ce mécanisme, tout ce qui est superflu devrait être coupé.

Sinon, il n'y aura pas de développement ou pas d'efficacité.

Ce n'est que mon opinion et je ne l'impose à personne.

 
Комбинатор:

Je ne suis pas un fan de OOP.

Mais en termes de maintenabilité, d'évolutivité et de facilité d'utilisation par des tiers, ce que TC (Peter, pas Karputov) propose est tout simplement de l'âge de pierre.

J'ai la ferme conviction que tout programmeur devrait travailler en équipe, idéalement plus de 4 personnes, pour comprendre que l'efficacité et l'universalité d'un code ne signifient pas que ce code est bon.

Pourquoi avons-nous besoin d'un code "bon" mais pas nécessairement efficace ? La programmation n'est pas de la "poésie" et la valeur de l'"art" est nulle. Les mécanismes ne sont pas estimés par leur beauté mais par leur efficacité. Le code est un mécanisme.
 
Реter Konow:

Je ne veux pas créer un chœur ici, mais je me demande si les partisans de la POO peuvent soumettre un code résolvant un problème, où il est clairement visible que cette solution est plus efficace qu'une solution sans POO ?


Je suis un maître de la résolution de problèmes sans POO et j'aimerais combattre un maître de la résolution de problèmes avec POO.


Je vais essayer de vous expliquer, disons que vous êtes un exécutant et que vous avez un client qui vous donne toujours du travail à faire. Et puis après 5-6 commandes, vous remarquez que toutes ses tâches sont similaires d'une certaine manière... Et que vous pouvez les combiner en un motif... Et le client aime aussi combiner ces modèles entre eux en grandes quantités... Et lorsque le client demande à nouveau un travail difficile, il suffit de créer le nombre nécessaire d'instances (disons 10) de ce modèle (classe) et de définir pour chacune d'entre elles les propriétés (dans le constructeur) qui sont apparues au client... Au final, la décision d'ouvrir un ordre sera simplement basée sur une boucle qui verra le résultat dans chacune des 10 instances, et c'est tout... Vous pouvez riveter de telles commandes en 5 minutes...

Mais vous ne pourrez pas créer une instance sans POO et vous devrez presque tout refaire, en espérant que les changements ne casseront pas ce que vous avez... Par conséquent, vous passerez beaucoup plus de temps...


Conclusion : un programmeur qui connaît la POO sera capable de résoudre des problèmes (qui sont adaptés à la POO) beaucoup plus rapidement et avec moins d'erreurs...

 
Nikolay Ivanov:


Laissez-moi essayer d'expliquer, disons que vous êtes un artiste et que vous avez un client qui vous donne toujours du travail... Et puis après cinq ou six commandes, vous remarquez que toutes ses tâches sont en quelque sorte les mêmes... Et que vous pouvez les combiner en un motif... Et le client aime aussi combiner ces modèles entre eux en grandes quantités... Et lorsque le client demande à nouveau un travail difficile, il suffit de créer le nombre nécessaire d'instances (disons 10) de ce modèle (classe) et de définir pour chacune d'elles les propriétés (dans le constructeur) qui sont venues à l'esprit du client... Au final, la décision d'ouvrir un ordre sera simplement basée sur une boucle qui visualisera le résultat dans chacune des 10 instances, et c'est tout... Vous pouvez riveter de telles commandes en 5 minutes...

Mais vous ne pourrez pas créer une instance sans POO et vous devrez presque tout refaire, en espérant que les changements ne casseront pas ce que vous avez... En conséquence, vous passerez beaucoup plus de temps...


Conclusion : Un programmeur qui maîtrise la POO sera capable de résoudre des problèmes (qui se prêtent à la POO) beaucoup plus rapidement et avec moins d'erreurs...

Vous avez peut-être raison. Je n'ai jamais fait de commandes et je ne sais pas ce que veulent les clients. Ce que vous décrivez ressemble davantage à du travail de routine, alors que c'est de développement dont je parle ici. Probablement pour le travail de routine (qui est également effectué par une équipe), la POO est irremplaçable. Je n'ai pas cette expérience et je ne sais tout simplement pas.

Et vous pouvez donner un exemple spécifique de ces tâches de type unique, qu'il vaut mieux ne pas faire sans la POO ?

 
Комбинатор:

Je ne suis pas un fan de OOP.

Mais en termes de maintenabilité, d'évolutivité et de facilité d'utilisation par des tiers, ce que TC (Peter, pas Karputov) propose est tout simplement de l'âge de pierre.

Je crois fermement que tout programmeur doit travailler en équipe, idéalement plus de 4 personnes, pour comprendre que l'efficacité et la généralité du code ne signifient pas que le code est bon.


Oh, travailler en équipe est une autre chanson ! Et diriger une équipe de programmeurs est une chanson dans une mesure égale au nombre de participants.

Je vais vous raconter une histoire, un samedi soir. A propos de l'époque où notre entreprise avait l'habitude de plonger dans le fer. Si c'est répété, je m'excuse, j'ai peut-être déjà parcouru l'histoire il y a quelque temps.

Mon patron m'a convoqué et m'a demandé : "Tu es trop occupé au travail ?". J'ai dit : "Pas vraiment.

-Qu'est-ce que tu fais maintenant, de toute façon ? Le chef n'a jamais su ce que je faisais, car je me suis fait un emploi du temps personnel, qui incluait un absentéisme constant)).

J'ai dit : "Oui, je suis juste en train d'écrire un paquet de test pour notre équipement. Le chef était ravi : "Super, juste à temps pour l'essayer en Sibérie". Alexey, on doit survoler, les gars sont coincés là-bas, ils n'arrivent pas à comprendre. J'adorais les voyages d'affaires, j'avais une liberté totale.

Je prends l'avion pour Krasnoyarsk, mes gars me rencontrent et me regardent, ils ont tous l'air coupable. On est allé dans un café, on a pris un verre, on a parlé. Je lui ai demandé ce qui n'allait pas chez toi. Le chef était perplexe, vous étiez en voyage d'affaires depuis trois mois et vous étiez bloqué à un endroit. Il a seulement le temps de vous envoyer de l'argent par transfert.

Eh bien, ils sont à l'air libre. Ils ont conduit jusqu'à un village sibérien, sont restés dans une maison d'hébergement, et il y avait là deux jeunes sœurs. Alors l'amour a tourné et les amis se sont impliqués, pour que personne ne soit offensé.

Je leur ai dit que je ne te dénoncerai pas, je suis pareil. Mais nous devons maintenir le rythme. Ajustons toute la couronne, il ne reste que quelques kilomètres, 500 kilomètres, puis je te donnerai un bonus, j'essuierai l'argent du patron et toi et ces amis fêteront la nouvelle année, d'accord ?

Maintenant, les femmes vont être scandalisées, mais Lekha a été la première à accepter, en disant que ma femme devrait accoucher, je préfère rester ici pendant un certain temps ! Tout le monde était marié et pour une raison quelconque, aucun d'entre eux ne voulait rentrer chez lui).

D'un autre côté, je comprenais dans mes tripes à quel point les gars pouvaient travailler dur quand de jeunes et belles filles sibériennes les attendaient).

 

Ce n'est pas du tout un argument.
Toute tâche peut être résolue avec ou sans POO. Sans la POO, vous pouvez aussi facilement créer des fonctions unifiées, qui seront utilisées de nombreuses fois et le programme entier ne se cassera pas à cause des changements que vous y introduisez. Il y a un peu plus de code avec la POO. La lisibilité s'améliore-t-elle grâce à l'utilisation de la POO? Je ne sais pas.
Chaque classe est stockée dans un fichier distinct et chaque fonction également dans un fichier distinct. C'est juste une question d'habitude et de commodité.

 

Un autre exemple plus simple, qui est à la surface même... Générateur d'EA dans MetaEditor... N'importe qui, même s'il ne sait pas programmer, peut bricoler un EA contenant un grand nombre d'indicateurs et de conditions en 10 secondes))). Et tout cela est OOP ;))


 
Alexey Oreshkin:

Il n'y a rien à discuter du tout.
Toute tâche peut être résolue avec ou sans POO. Vous pouvez également créer facilement des fonctions unifiées sans POO qui seront utilisées de nombreuses fois et le programme entier ne se cassera pas à cause des changements que vous y introduisez. Il y a un peu plus de code avec la POO. La lisibilité s'améliore-t-elle grâce à l'utilisation de la POO? Je ne sais pas.
Chaque classe est stockée dans un fichier distinct et chaque fonction également dans un fichier distinct. C'est juste une question d'habitude et de commodité.


Dans ce fil de discussion, il y avait un exemple d'un problème qui peut être résolu sans POO, mais d'une manière très irrationnelle.

 
Alexey Oreshkin:

Ce n'est pas du tout un argument.
Toute tâche peut être résolue avec ou sans POO. Sans la POO, vous pouvez aussi facilement créer des fonctions unifiées, qui seront utilisées de nombreuses fois et le programme entier ne se cassera pas à cause des changements que vous y introduisez. Il y a un peu plus de code avec la POO. La lisibilité s'améliore-t-elle grâce à l'utilisation de la POO? Je ne sais pas.
Chaque classe est stockée dans un fichier distinct et chaque fonction également dans un fichier distinct. C'est juste une question d'habitude et de commodité.

Je peux dire avec certitude que je n'ai pas besoin de la POO dans mon développement personnel, mais je n'en suis pas si sûr pour le travail en équipe sur un grand projet. Développer et lier du code créé par différents programmeurs ne m'a jamais effleuré et je ne sais pas comment je le mettrais en œuvre à ma façon. C'est le seul argument en faveur de la POO dans le développement que j'accepte maintenant.
 
Реter Konow:
Je peux dire avec certitude que je n'ai pas besoin de la POO dans mon développement personnel, mais je ne suis pas sûr du travail en équipe sur un grand projet. Le développement et la communication de codes créés par différents programmeurs ne m'ont jamais effleuré et je ne sais pas comment je le mettrais en œuvre à ma façon. C'est le seul argument en faveur de la POO dans le développement que j'accepte actuellement.

Ce n'est pas l'argument principal.

Il n'existe pas d'équivalent du polymorphisme dans la programmation procédurale.