logo Homepage
+  NewbieContest
|-+  Programmation» Langages Web» Avantages ou inconvénients de la POO ?
Username:
Password:
Pages: [1]
  Imprimer  
Auteur Fil de discussion: Avantages ou inconvénients de la POO ?  (Lu 10156 fois)
FiRe_StoRM

Profil challenge

Classement : 2004/54277

Membre Junior
**
Hors ligne Hors ligne
Messages: 66


Voir le profil
« le: 04 Juin 2010 à 10:40:44 »

(reprise de mon message sur le SDZ, le fainéant que je suis n'a pas envie de retaper tout ^^)

Bonjour à toutes et tous.

Je vais tenter d'expliquer mon petit soucis existentiel dans les grandes lignes.

Je me suis mis avec 2-3 collègues à monter une petite boite web.


Il se fait que je reviens de mes cours du soir où nous avons entamé la programmation orienté objet pour le logiciel Flash (donc ActionScript quoi).

La POO m'a toujours assez "déconcentré" car j'ai la nette sensation malgré mes connaissances en PHP procédural, d'être tout simplement et complétement... paumé.


Mais il se fait que les sites web que nous faisons doivent être gérés via des sites d'administrations et soyons clair; c'est TRÈS redondant comme schéma.

J'avais déjà commencé à faire un script PHP qui arriverait tout simplement à me créer le code (et oui, du code pour créer du code, on devient assez fainéant faut dire ^^).

Et puis c'est en parlant avec le prof (j'ai d'ailleurs adoré sa phrase: "Je me suis cassé le cul plusieurs semaines, maintenant je lance le script en buvant mon café, et j'amasse le fric"), qui lui ne fait plus que de la POO, que je me suis demandé ce qui serait finalement le mieux pour ce genre de chose: procédural ou POO ?

Je ne cherche pas un troll comprenez bien, juste que si je peut faire en sorte de réduire le temps de travail et augmenter l'efficacité.

Le truc c'est que je maitrise bien mieux le procédural et surtout ma tête "réfléchit" procédural (quand on me donne un travail, j'ai déja le schéma du code qui se déroule dans ma tête, c'est instinctif ^^), mais j'ai l'impression que la POO peut m'apporter un certain plus mais par contre je n'ai pas du tout cette logique en tête.

Par exemple quand j'ai vu le TP pour le système de news, la première impression que j'ai eu (mis à part le mal de crâne =P) est que je devais taper 2 fois plus de code qu'en procédural et assez de mal à m'y retrouver (une classe d'accord, mais une classe qui apelle une autre etc, ça devient vite bordel, remarquer les fonctions c'est pareil aussi). Pour le même système de news en procédural, y a t-il une RÉELLE DIFFÉRENCE ou bien est ce plus une question de logique et d'organisation qu'autre chose ?

Je ne cherche pas à dénigrer la POO, au contraire, je voudrais savoir si elle peut m'aider vraiment dans mes travaux, si pour des sites web on peut en tirer un réel avantage ou en fait, c'est juste une manière différente de penser son site et qui équivaut tout à fait au procédural.


PS: Toutefois, je sais que la "société" restera pour le moment au code procédural, simplement parce que j'ai un collègue qui ne savait pas se servir d'une souris il y a 1 an, qui a buté voir quasi étudier par coeur le cours, qui a failli lâcher plus d'une fois mais qui finalement fait son bout de chemin (et qui dit un grand merci à ce site, bah oui je n'aurai su que lui conseiller de lire le tuto de Mateo et ça l'a débloquer plus d'une fois), alors la POO pour lui ça ne sera pas pour tout de suite. ^^ C'est donc plus à titre personnel que je demande ça

Gros merci d'avance pour les réponses.

Sur ce, bonne journée.
Journalisée

Chercher simple, c'est ça le plus compliqué ! =P
the lsd
Administrateur

Profil challenge

Classement : 190/54277

Membre Héroïque
*****
Hors ligne Hors ligne
Messages: 3096

poulping for fun & profit


Voir le profil WWW
« #1 le: 04 Juin 2010 à 10:57:51 »

D'une manière générale, la POO peut être utile, comme elle  peut ne pas l'être. Tout dépend du langage et de la taille du projet.
A mon goût, la POO en PHP n'a aucun intérêt, à moins de très gros projet (et encore). D'une part parce que c'est utiliser un bazooka pour tuer une mouche, et d'autre part parce que la POO PHP n'est pas aussi évoluée que dans d'autres langages (au hasard, Java). Plusieurs fichiers avec des fonctions revient exactement au même (Au lieu d'avoir une classe Test, tu auras un fichier de fonctions Test que tu peux appeler de la même manière).

Sinon, la POO c'est aussi (beaucoup) une manière de coder. Si tu préfère le procédural, c'est très bien aussi.

Par contre, le mal de tête et le fait de rien comprendre c'est normal. Perso, j'ai mis des mois à bien comprendre, et pour ça, c'est tutos, cours, exos, entrainement intensif !

Enjoy

The lsd
Journalisée

Newbie Contest Staff :
The lsd - Th3_l5D (IRC)
Statut :
Administrateur
Citation :
Cartésien désabusé : je pense, donc je suis, mais je m'en fous !
Spl3en

Profil challenge

Classement : 145/54277

Membre Junior
**
Hors ligne Hors ligne
Messages: 53


Voir le profil
« #2 le: 04 Juin 2010 à 13:06:27 »

Pour ma part, mon avis diffère quelque peu de celui de the lsd.
Je rejoins son avis concernant la première phrase ; La POO oui, mais pas pour n'importe quoi et n'importe quand.

Par contre, je ne peux m'exclamer qu'entendre que la POO sur PHP n'a aucun interêt !

Si on prend un exemple quelconque, disons, la conception d'un petit forum (un projet pas si gros que ça), le code te sera bien plus simple et clair à entretenir à mon avis. (pour en avoir fait l'expérience)
Alors certes, tu peux faire ce qu'a dit the lsd et faire un fichier de fonctions "test_*" , mais ... On se rapproche beaucoup de la programmation modulaire / wrapping plus qu'autre chose ici.

Lorsqu'on a un outil à portée, pourquoi chercher à le reproduire alors qu'on l'a sous la main ?

Après, et je pense que c'est le point le plus important à retenir, chacun est différent dans sa manière de concevoir une solution à un problème.

Pour ton idée de "générateur de code", je ne peux m'empêcher de penser ton code en procédurale, car je ne vois que très peu de solutions en utilisant un esprit orienté objet.
Néanmoins, d'autres personnes réussirait certainement à te concevoir une architecture de données qui rendrait le système objet viable pour ce projet, tout comme ca serait le cas pour le procédural.

Pour conclure, je pense que si tu n'es pas encore familiarisé avec l'orienté objet (j'entends par là, avoir eu beaucoup d'expériences et de projets avec un langage de ce type), je pense que c'est normal que tu n'y vois pas un intérêt.
Ce n'est qu'à force de toucher, et même de se tromper, qu'on finit par comprendre le réel interêt de la POO.
Journalisée
Baelrog

Profil challenge

Classement : 363/54277

Membre Junior
**
Hors ligne Hors ligne
Messages: 85


Voir le profil
« #3 le: 06 Septembre 2010 à 09:29:48 »

je rejoins les avis précédent. L'objet c'est bien mais ca dépend pour faire quoi.

De mon point de vue, faire de l'objet pour une petit script, aucun intérêt. Par contre, dès que tu passes à une application, il y a tellement de choses à gérer... si tu veux structurer ton code avec par exemple du MVC (modèle-vue-controleur), en procédural .... t'es pas arrivé alors que tout devient si simple en objet. Coder des classes pour le simple plaisir d'en faire est totalement inutile. La où la programmation objet prend selon moi tout son sens, c'est justement dans la structuration des traitements.

Comme tu le disais, des classes qui en appel d'autre, font leur vérification entre elles directement et t'offre la possibilité de gérer de gros traitement sans même que tu te fasses chié à faire les 400 vérifications d'une arrivée de formulaire ou d'authentification etc.

Pour résumé, poser les bases d'une programmation objet, c'est long. Mais après, ton code sera impec. (car structuré de la même façon par tous les programmeurs passant sur le projet) et les dev seront bien plus rapide car tous les gros traitements chiant seront déjà fait, tu n'auras plus qu'à te concentrer sur l'essentiel de ton algorithme. Et du coup, chose que j'ai pu remarqué, bien que la prog objet multiplie les traitements et donc rallonge les temps de calcul, le code devient tellement mieux structuré qu'il est souvent plus rapide qu'en procédural.


Enfin bref, pour conclure, coder en objet, c'est mieux, mais pas n'importe comment. Je te conseil de t'orienter vers des framework qui ont donc déjà toute une gestion interne pré-établie. Je ne te cache pas qu'apprendre leur fonctionnement te fera un peu repartir à zéro, mais une fois maitrisé, par rapport à du procédural, je pense être assez large en estimant que ton temps de travail sera divisé par 5 sans soucis.
Journalisée
Pages: [1]
  Imprimer  
 
Aller à: