Quand utilisez-vous réellement programmation orientée objet? Programmeurs de Facebook et Google implémentent même Poo? Y at-il tous ceux qui n’ont pas?

Je suis un étudiant en informatique et je ne sais pas pourquoi on devrait mettre en œuvre la programmation orientée objet.

Réponse

Garry donne une bonne réponse ci-dessous, et il couvre beaucoup de terrain programmation.  Mais pas tous.  Codes exigeant la plus haute performance peut utiliser orientée objet de la programmation, mais exige que pour être couplé avec "programmation informatique orienté" afin d’atteindre de hautes performances.  Permettez-moi de vous donner un exemple : en physique subatomique expérimentale, beaucoup de ce que nous faisons est essentiellement dire à l’ordinateur "Voici une liste de points : voyez si vous pouvez trouver une courbe régulière qui passe par tous les points".  Pour obtenir des exemples, google sur « suivre le montage physique des hautes énergies » et regardez les images trouvées.

de toute façon, la manière dont un manuel de programmation orientée objet vous diront de le faire : vous avez une liste de points, chaque point est donc un objet, contenant x, y et z coordonnées, et peut-être des autres attributs comme quelle partie du détecteur, il appartenait à, était-ce un signal de haute énergie ou à faible énergie, etc..  Ensuite, vous mettez tous ces points dans une liste.

Maintenant la façon dont un de ces algorithmes on travaille il y a certaines fonction f (x, y, z) = c que vous voulez faire « tenir » à la collection de points.  Nous allons rendre facile et supposons que le z est la même pour tous les points et que nous voulons monter une ligne un * x - y = c.  La fonction permettant de calculer cela fonctionnerait consiste à calculer, pour certains choix d’a, un * x - y pour chaque point et puis vérifiez pour voir comment bien qui correspond à c, puis ajuster a et c, puis réessayez.

Les ordinateurs modernes peuvent faire beaucoup d’opérations en parallèle : le moyen le plus rapide de faire cela :

  • Saisissez les valeurs de x de quatre points et pack large Registre
  • Saisissez les valeurs y de ces points et emballer dans un autre
  • faire un * x -y - c pour tous les quatre points en une seule opération « large ».

Maintenant, voici le point : Si vous programmez en OO standard, afin de saisir le x et les valeurs y, il va vous prendre (selon comment smart le compilateur), quelque part entre quatre et seize opérations de faire les deux premières étapes... "sélectionner le point numéro 1.  récupérer l’attribut x de ce point.  stocker dans le registre de large.  aller au point numéro 2".  Dans l’ancien, temps de pre-Poo, vous saviez que vous utiliserait les valeurs de x comme ça, alors vous avez eu un x-tableau et un tableau y, et les deux premières étapes ont été deux opérations :

  • Prenez la tranche contigue de mémoire correspondant aux quatre valeurs x et pousser dans le registre
  • Prenez le contigu... valeurs y...

Donc ce morceau de code vous avez réduit de quelque chose comme dix opérations, à trois, en l’écrivant dans un style "axée sur l’ordinateur" au lieu de l’orienté objet.  Nous sommes atteints de cela grandement en physique des hautes énergies ces jours-ci ; les gens passent beaucoup de temps à défaire beaucoup de POO et de coulée de nouveau dans une forme qui ne descend pas entièrement OO, mais est beaucoup plus « Colorado ».  C’est parce que nous traitons avec pétaoctets d’une valeur de ce type de données, donc un facteur de trois caisses d’épargne dans le CPU est un très gros problème.

Cela étant dit, pour la plupart des régions où les performances les plus élevées ne sont pas nécessaire, OO est une approche parfaitement valide, et je l’utilise le plus souvent quand je programme.


Tags: Programmation informatique, Langages de programmation, Programmation orientée objet