Programmation OOP vs programmation procédurale - page 40

 
Andrei:

Exactement, d'une personne spécifique. Pourquoi un programmeur qui ne souffre pas de schizophrénie s'efforcerait-il de cacher à lui-même l'accès à une partie de son propre code qu'il est en train de déboguer ? Ne préférez-vous pas vous lier les mains ? :)

Eh bien, comme je l'ai dit, essayez de travailler avec le fichier de structure que Peter a donné ci-dessus. "Récupérer" les données dont vous avez besoin à partir de là, puis les remettre au bon endroit.

Et comparez cela à l'obtention des données dont vous avez besoin à partir d'une interface "rognée" qui vous donne un tout petit peu de la même structure. Avec une interface, il n'y a tout simplement aucun moyen d'obtenir autre chose, ou d'écrire quelque chose de "faux".

Non, il est compréhensible que si vous êtes un titan de la mémoire avec une capacité d'oubli atrophiée - alors vous avez de la chance, et vous n'avez pas besoin de POO. Mais tout le monde n'a pas cette chance.

SanSanych propose de remplacer la POO par la documentation - en principe, c'est aussi une option, en fait, elle est beaucoup plus proche des structures proposées par Peter. Mais avec Peter, toute documentation est "dans la tête" et avec SanSanych - sur papier (ou sur support électronique).

 
Andrei:

Je me demande ce qu'est cette "horreur".

Au fait, Renat Fatkhullin, il serait en effet intéressant de regarder des exemples...

 
George Merts:

Non, il est compréhensible que si vous êtes un titan de la mémorisation avec une capacité d'oubli atrophiée, alors vous avez de la chance, et vous n'avez pas besoin de POO. Mais tout le monde n'a pas cette chance.

Ainsi, SanSanych suggère de remplacer la POO par la documentation, qui est aussi une option, en principe, beaucoup plus proche des structures proposées par Peter. Mais la documentation de Peter est toute "dans la tête", tandis que celle de SanSanych est sur papier (ou sur un support électronique).

La signification d'une variable doit être connue dans tous les cas, mais il n'est pas nécessaire de s'en souvenir - vous pouvez écrire un commentaire si le contexte n'est pas clair. Cela semble évident.

Avec la POO, vous devez vous souvenir et documenter beaucoup plus, à savoir ce qui est créé et détruit quand et à quel moment, à travers quelles interfaces circulent à quel moment et d'autres tracas de souris absolument inutiles pour le résultat final - rien que pour cela, toute personne saine d'esprit peut devenir folle et se casser le cerveau.

 

Au fait, pour tous les opposants à la POO, il serait bon de se souvenir de l'époque où les programmes étaient écrits en langage assembleur.

Et en particulier - travailler avec des fichiers en utilisant BIOS et DOS.

À mon avis, la différence entre les approches procédurales et OOP est exactement la même que dans la gestion des disques avec les outils BIOS et DOS.

Le BIOS et le DOS disposent de toutes les fonctions nécessaires pour travailler avec le disque.

Cependant, créer un fichier avec les caractéristiques du BIOS et y écrire "Hello, world !" est un gros problème, même pour les disques FAT. J'avais l'habitude de le faire sur un pari, et ce n'était pas facile pour moi. Sous DOS, il est facile de le faire avec une seule fonction.

Je peux imaginer combien il serait difficile de créer un tel fichier pour un système NTFS en utilisant le BIOS...

 
Andrei:

Lisez attentivement, il s'agit de la classe, pas du constructeur de la classe.

En outre, vous suggérez à nouveau de faire un travail de singe - planter un champ sur une parcelle, si nous pouvons avoir accès aux paramètres sans faire RIEN en cas de variables externes ou en les passant directement, sans aucun mal de tête inutile avec les constructeurs-destructeurs et toutes les fuites de mémoire qui en découlent.


Ouais, j'ai besoin d'entrer et tu me montres la porte là. Vous ne savez probablement pas ce qu'est un constructeur de classe.

Juste les paramètres généraux - ils sont déjà visibles à l'intérieur de la classe, mais les utiliser n'est pas bon, la POO est bonne pour la capacité d'échapper à l'espace commun.

Et directement comment ? Si ce n'est pas par une porte, alors par un mur ? En passant par le constructeur, c'est comme passer directement. Vous pouvez passer des paramètres immédiatement lors de la création d'un objet, même sans new. Vous êtes donc trop paresseux pour décrire les paramètres que la classe doit accepter ? N'êtes-vous pas trop paresseux pour écrire des fonctions et déclarer des variables ?

Vous n'avez manifestement rien compris à ce que j'ai écrit)).

 

Dmitry Fedoseev:

N'êtes-vous pas trop paresseux pour écrire des fonctions et déclarer des variables ?

Vous devez écrire des fonctions et déclarer des variables partout et dans la POO aussi. Ce n'est qu'avec la POO qu'il y aura beaucoup plus d'agitation, et ce, si vous prévoyez à l'avance, de manière prophétique, quelle sera la structure de données à la fin du projet, afin de ne pas avoir à la réécrire cent fois. Cela semble évident.

 
Andrei:

Vous devez écrire des fonctions et déclarer des variables partout et dans la POO aussi. Ce n'est qu'en POO que ce sera beaucoup plus délicat, et ce, si vous prévoyez à l'avance, de manière prophétique, quelle structure de données sera présente à la fin du projet, afin de ne pas avoir à la réécrire cent fois. Cela semble évident.


C'est plus compliqué, mais il y a de nombreux cas où cela en vaut la peine. En général, elle n'est pas mortelle.

 
Dmitry Fedoseev:

C'est plus compliqué, mais il y a de nombreux cas où cela en vaut la peine. Ce n'est pas une fatalité en général.

Vous savez, quand ça vaut la peine - quand vous payez à l'heure, parce que plus il y a d'histoires, plus c'est rentable. :)
 
Dmitry Fedoseev:

Depuis combien de temps travaillez-vous sur votre bibliothèque ?

Deux ans de travail ininterrompu.

Le noyau de l'interface graphique (d'ailleurs, il existe également un proto-noyau contenant des éléments prototypes. Il occupe 2 mégaoctets. Il se compose de tableaux tels que celui que j'ai cité) et contient des milliers de variables. Pensez-vous que si je n'avais pas utilisé le noyau comme centre, dispersé les variables dans des classes et des structures et établi la communication entre elles par le biais de diverses restrictions d'accès, j'aurais pu m'acquitter de ma tâche ? - Jamais tout seul. J'aurais multiplié le nombre d'entités dans mon programme. Les liens dans le code entre les fonctions et les classes deviendraient si complexes que je ne serais tout simplement pas capable de continuer à travailler seul. L'efficacité de l'ensemble du mécanisme se serait effondrée.

J'aurais atteint ma limite beaucoup plus tôt et je me serais arrêté.

Je me suis souvent demandé "qu'est-ce que j'aurais fait si j'avais utilisé la POO?" et à chaque fois, en me basant sur la pratique quotidienne, je me suis rendu compte que je n'aurais pas été capable d'aller aussi loin tout seul.

De plus, ma pensée est structurée comme elle l'est et je n'ai donc pas besoin de la POO à cet égard.

 
Renat Fatkhullin:

Pour le plaisir - R est écrit dans un mode absolument dégoûtant "tout en une seule poubelle sans aucune différenciation d'accès". Une approche vieille école d'il y a vingt ans, sans zones de visibilité, de protection ou de multisession. J'écris comme si j'étais le seul. Oui, le projet est né sous une seule personne par des développeurs non professionnels. Il doit être réécrit à partir de zéro. Au moins une fois.

J'ai eu l'idée de créer une interface normale dans R à partir de MQL5, mais après avoir approfondi le sujet, j'ai immédiatement décidé de ne pas l'intégrer. Le système est catégoriquement incapable de protéger les données et les sessions.

Tant qu'un programmeur ne travaillera pas dans des équipes de développement normales avec des exigences strictes (en se frappant les mains pendant au moins deux ans), il ne deviendra pas un développeur au sens normal du terme. Nous nous prenons la tête 90 % du temps lorsque nous regardons des emplois tests lorsque nous examinons des candidats. L'horreur totale dans le secteur du développement.

Donc, une fois de plus, les opposants à OOP font preuve d'une sorte de bouffonnerie ici.

Désolé encore.


Renat, s'il vous plaît, ne soyez pas nerveux. Je ne suis pas un partisan de R moi-même. Vous êtes un excellent gestionnaire et programmeur, ne prenez pas à cœur les critiques du forum.

Je vous souhaite, ainsi qu'à Rashid et à votre équipe, une bonne santé et un succès créatif !

Raison: