Je suis un PHPer, et je n'écris pas de code orienté objet.
Quels sont les avantages de l'OO par rapport au code procédural, et où puis-je apprendre à appliquer ces idées à PHP ?
Je suis un PHPer, et je n'écris pas de code orienté objet.
Quels sont les avantages de l'OO par rapport au code procédural, et où puis-je apprendre à appliquer ces idées à PHP ?
Cela ne vous aide pas automatiquement. Vous pouvez écrire des programmes "OO" pires que des programmes structurels, et vice versa. La POO est un outil qui vous permet de créer des abstractions plus puissantes.
Brad : J'ai peur qu'un petit extrait puisse conduire à des conclusions erronées. Sur de petits exemples, les deux méthodes sont plus ou moins "identiques" en termes de qualité. Cela fait une différence lorsque vous commencez à concevoir des systèmes plus importants exprimables en termes OO. Notez qu'il existe de nombreux grands programmes qui ne sont pas OO. Les bons.
Les objets permettent d'isoler votre code entre les différentes sections, de sorte que si vous devez apporter une modification à une section, vous pouvez être sûr qu'elle n'affectera pas les autres sections : couplage lâche.
Ensuite, lorsque vous aurez fait cela pendant un certain temps, vous commencerez à constater que les objets que vous avez créés pour une application sont également utiles dans d'autres, et vous commencerez à mieux réutiliser le code. Ainsi, la nouvelle application a déjà fait une partie du travail et utilise un code éprouvé : les logiciels sont construits plus rapidement avec moins de bogues.
Les gens vous diront différentes choses sur la POO, selon différents points de vue. Mais si vous voulez vous faire votre propre opinion, plutôt que de prendre celle de quelqu'un d'autre, je vous suggère de lire "Object-Oriented Software Construction" de Bertrand Meyer.
Essentiellement, il prend des techniques de programmation non-OOP, et analyse leurs défauts de base. Il dérive ensuite une technique alternative qui corrige ces défauts. En d'autres termes, il dérive la POO à partir des premiers principes. C'est un travail merveilleux et très convaincant.
Lisez-le, vous apprendrez le pourquoi, le quand et le quoi d'une manière que vous pourrez étayer par un raisonnement.
Vous êtes donc en train de dire qu'au lieu d'écouter les opinions de nombreuses personnes de SO, il devrait seulement écouter celles de Meyer... non pas qu'il y ait quelque chose de mauvais dans cette approche, mais je n'appellerais pas cela "se faire sa propre opinion".
C'est vrai, mais Meyer ne se contente pas de vous donner son opinion, il présente la POO comme le résultat final d'un exercice de dérivation. Elle apparaît en quelque sorte à la fin.
Les objets aident à encapsuler la complexité. Pour la plupart des programmes PHP, il est impossible d'écrire un bon code propre pour toute application raisonnablement compliquée. Ecrire du PHP OO vous aide à mettre ce code dans sa propre boîte, l'isolant de tout le reste. Cela a plusieurs avantages.
Poll::Display()
) pour mettre en œuvre l'intégralité de ce que l'application pouvait faire - ce qui a rendu la maintenance de ma page d'accueil beaucoup plus facile.Gardez une chose à l'esprit : l'OO en PHP (même en PHP5) n'est pas un très bon OO comparé à un langage comme Python ou Ruby. En tant qu'ancien programmeur PHP (et ingénieur Zend doublement certifié), je recommande fortement d'explorer l'OO de Python si vous voulez comprendre ce qu'est l'OO. Cela vous aidera à écrire un meilleur code PHP, à tout le moins.
Oui, si tu le comprends vraiment.
Il vous aide à visualiser comment les parties d'un système plus vaste peuvent interagir les unes avec les autres. C'est très utile au niveau de la conception.
Si vous n'écrivez que quelques lignes de code, le seul avantage que vous en tirerez est qu'il est généralement un peu plus facile d'utiliser une bibliothèque décomposée en objets bien conçus que de simples fonctions.
Pour en faire bon usage, vous devez également respecter de bonnes pratiques de conception OO. Toujours encapsuler TOUTES vos données, utiliser de nombreuses petites classes, jamais de grandes classes "fourre-tout". Faire en sorte que la classe fasse le travail à votre place au lieu de lui demander des données et de faire le travail en dehors de la classe, etc.
Il ne vous sera probablement pas d'un grand secours pendant un certain temps, et peut-être même jamais si vous faites toujours de petits sites web (je ne peux pas en être sûr, je ne fais pas vraiment de php), mais au fil du temps et sur de grands projets, il peut être inestimable.
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.