Quand - exactement - utilise-t'on la POO ?

Alorsladaccord

WRInaute occasionnel
Bonjour,

J'avais il y a quelques temps ouvert un sujet intitulé "Les bonnes pratiques de programmation en PHP".
Je viens de le relire.
S'en dégage plusieurs conseils intéressant, mais je n'y trouve pas la réponse à une question précise : Quand - finalement - va-t'on utiliser la POO ?
Est-ce en fonction de la nature du site ? Ou en fonction d'un travail collaboratif ou individuel ? Ou en fonction d'évolutions à venir ?

Par exemple, il s'agit de coder un site relativement simple, qui affiche un article, une bibliographie et des liens entre ces articles et leur bibliographie. Je pourrais donc créer des objets "article" et "bibliographie". Mais ça va être des objets simples, avec peu de fonctions et variables. Est-ce bien utile ?

A la rigueur, je peux quand même utiliser l'objet, même si ce n'est pas utile. Ca serait comme un défis (je n'ai jamais programmé en POO), mais il ne faut pas non plus que ça devienne une faute.


Bref, j'aurais besoin de vos conseils d'experts !


Merci d'avance :)
 

rick38

WRInaute passionné
La programmation non-objet est devenue une hérésie en informatique depuis longtemps.
Sauf quand on fait un script batch par exemple, mais ça n'est pas une application (un site web, c'est une application).

Pour moi je vois ça comme plus de "propreté".
Si on a un fichier pour le header, un fichier pour le footer, et un fichier pour le contenu (un par page), on fait un include header, etc. Mais les variables du fichier dans le header sont propagées du coup aux autres scripts inclus. Il peut y avoir des variables écrasées par d'autres, où initialisées à ailleurs...
Alors que si en plus de faire l'include, on doit faire un "header = new Header()" puis "header->display()" alors tout est hermétique, on agit sur le header proprement, comme "header->title = 'home'" sans avoir un $title qui peut être utilisé dans le content, le footer, etc.

Ca va de paire aussi avec le MVC.

Bref : si c'est un code qui a des chances d'être vu ou utilisé par d'autres, si on ne veut pas avoir honte, il faut faire de la POO un minimum (rien ne doit se trouver en dehors d'une classe).
Côté performances ça n'apporte rien par contre.
C'est pour mieux organiser et réutiliser les classes dans un autre projet, quand tu en feras d'autres, c'est plus simple de reprendre des éléments, car chaque classe est bien indépendante et peut se retrouver dans n'importe quel autre projet.
C'est comme ça que je vois les choses... après on fait comme on veut, il peut y avoir des bons programmeurs sans utiliser de POO et des mauvais qui utilisent la POO...
 

jeanluc

WRInaute accro
rick38 a dit:
il peut y avoir des bons programmeurs sans utiliser de POO et des mauvais qui utilisent la POO...
+1

Les bons programmeurs ont toujours écrit du code lisible et les mauvais écriront toujours du code pourri, mais la POO est à la mode. Pour les petits projets, elle ne fait qu'alourdir les choses.

Jean-Luc
 

Alorsladaccord

WRInaute occasionnel
Bonjour à vous !

J'aime bien la stabilité de rick38. Parce que justement dans l'autre sujet ci-dessus mentionné, les autres membres de wri le contredisent tous quant à l'impérative nécessité d'utiliser l'Objet.
Mais apparemment ça ne l'a pas fait dévier du tout.

Perso je n'ai rien contre l'Objet et c'est une occasion d'apprendre. C'est vrai que ça me parait indispensable, vu que si on veut ensuite travailler sur de gros scripts (wordpress, dotclear, IPB...), ils sont désormais tous en Objet, et de longue date d'ailleurs...

C'est juste que ça me parait malgré tout un peu "lourd" pour un petit site qui liste quelques articles, mais c'est peut-être que je ne vois pas encore comment faire. Une fois qu'on sait, ça parait toujours très simple.

Pour les petits projets, elle ne fait qu'alourdir les choses.
Voilà. Mais bon, je n'ai pas 50 projets non plus, donc peut-être faut-il que je profite de celui-ci.

C'est sûr que ça pourrait être réglé en deux requêtes mysqli, trois if et deux while, mais bon...
 

Alorsladaccord

WRInaute occasionnel
Salut spout !

"Programmation spaguetti" ? C'est le jargon du milieu ? C'est un fourre-tout, quoi. D'ailleurs j'avais lu que wordpress est très mal codé par rapport à dotclear.

Merci pour le tutoriel. Entre ça et quelques gros bouquins php de la bibliothèque, je devrais y'arriver assez vite. L'informatique, c'est surtout une question de motivation.

Ce qui va je sens me poser davantage de problème, ou pour le moins autant, c'est le nouveau Responsive Web design (RWD), qu'il va aussi falloir que j'apprenne.

Autant dire que j'ai intérêt à faire au plus concis dans un premier temps...
 

zeb

WRInaute accro
Perso j'ai un avis plus nuancé que Rick38, le full POO je ne trouve pas ça géant (faut voir au cas par cas). En revanche ou je semble rejoindre tout le monde c'est dans la notion de "programmation structurée". Je ne sais pas si le terme est encore utilisé mais quelques soit le code (Objet ou procédural), il conviens de d'adopter une grosse rigueur d'écriture pour être compréhensible.

Le côté POO me fait toutefois un peu sourire car je ne compte plus les cas ou on bazarde l'ancien sans s'en soucier (sur le web) ...

Le truc qui dicte mes choix c'est la conso machine. Un modèle full objet peut vite devenir lourd si tu brasse énormément d'objets ... Donc écrire une classe oui mais pas forcement pour tout. J'ai vécu des exemple ou j'ai du sortir des objets du code pour revenir a un bête système de requête / boucle / affichage car l'instanciation de multiples objets était une vrai galère machine.

Le secret de la POO semble donc se cacher dans une bonne vision du modèle globale a produire et une étude réfléchie des ressources qu'il va solliciter.
 

Alorsladaccord

WRInaute occasionnel
Oui en l'occurrence c'est pour un petit site qui liste quelques livres et défintions, un site démo plus qu'un site de trafic, dont les histoires de ressource serveur n'ont point d'importance ici. Mais c'est toujours bon à savoir, merci pour le retour, cher zeb.

Donc pour vous donner une idée, il va y avoir quelque chose comme 3 tables, Définitions, Livres et Noms avec 5 variables environ. Ce qui ferait donc 3 objets de 5 variables.

Ca peut être réglé en deux temps trois mouvements avec mysqli, mais si je le fais en objet il faut que j'apprenne la chose, justement. C'est tout l'intérêt, mais encore faut-il que ce soit tout de même utile au final...
 

passion

WRInaute accro
Bonjour la programmation poo va de pair avec la méthode mvc.
Programmer ainsi, c'est t'aider à structurer ton travail. Il n'y a pas de petit ou gros projets. Il y a juste une méthodologie. Et avec le temps et la pratique, tu te rendras compte que tes gros projets sont rapidement fait !
Gain de temps énorme en maintenance et en évolution.
Même s'il s'agit d'un petit projet, c'est formateur.
Le code à l'arrache ne t'apporte rien.
De plus, grâce à des classes comme PDO, elle te permettra d'accéder et sécurisé tes requêtes sql.
Bref.... C'est un non sens amha !
 

jeanluc

WRInaute accro
passion a dit:
Le code à l'arrache ne t'apporte rien.
On est d'accord, mais celui qui fait du code à l'arrache en procédural en fait tout autant en POO.

Ecrire du code de qualité (lisible, structuré, efficace), c'est une question de compétence et de discipline. Après qu'on fasse du procédural ou de la POO, c'est le choix d'un environnement de travail plus ou moins bien adapté au problème à traiter.

Jean-Luc
 

Discussions similaires

Haut