JeuWeb - Crée ton jeu par navigateur

Version complète : [split] POO ou Procédural avec PHP
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
Pages : 1 2
Hum je suis pas tout à fait d'accord. Pourquoi mettre un moteur de R5 dans une voiture de course ? Tout simplement parce qu'on à pas de moteur de voiture de course. Pour un graphiste comme moi, coder c'est vivement recommandé, est ce que j'ai besoin de faire un truc optimisé ? Non, est ce que j'ai besoin de faire un truc à la pointe de la technologie ? Non. Est ce que je vais passer une centaine d'heures pour apprendre un langage obscur alors que mes projets n'en ont pas besoin ? Probablement pas mais on ne sait jamais je suis un peu maso. Même pour un projet professionnel, si le boulot à accomplir est simple, qu'il ne demande pas de maintenance et qu'il ne bouffe pas de ressouces c'est pas la peine de se prendre la tête. Je comprends ton point de vue mais tu ne cibles pas ta critique ce qui la rend plus ou moins vide. Perso pour coder un portfolio je vois pas l'intérêt d'apprendre une nouvelle méthode, pour un jeu simple je peux le faire en procédural, je vois pas l'intérêt de diriger quelqu'un comme l'auteur de ce topic vers la POO alors qu'il est plus ou moins clair que même si son projet aboutit ça ne sera pas une merveille de technologie.

Je ne prend pas tes propos pour de la vanité mais plutôt pour un défaut qu'on voit beaucoup chez les développeurs, une certaine difficulté à se mettre à la place des autres... Oui la POO c'est sûrement très abordable, expliqué en cours, quand on l'ETUDIE. C'est déjà plus difficile pour un gland comme moi mais là n'est pas la question, ce qui me chagrine c'est le coté parcours tracé. Il n'y à pas de parcours obligé pour apprendre à développer, chacun fait ça selon sa motivation, son temps, ses projets, ses facilités... Et ce genre de propos ça me rappelle de mauvais souvenirs, en tant que graphiste j'ai été amené à collaborer avec d'autres graphistes, sortis d'écoles de graphismes. Ecoles privés soit dit en passant (il en faut un peu dans la tirelire pour y aller), moi j'arrivais les doigts dans le cul avec mon bagage inexistant. Ils me sortaient tous leurs termes compliqués, avec un coté je-sais-tout. Arrivés aux résultats on à vu qu'on arrivait à la même chose. Je dévie, désolé, mais tout ça pour dire en gros que chacun avance comme il veut, c'est au moment du résultat que la critique arrive. Certains codeurs sur une appli de 50ko vont tout faire pour réduire son poid, moi perso je m'en fous. Pour un jeu fait en tant que projet personnel je ne pense pas que tu devrais dénigrer les gens qui utilisent la POO, l'important c'est de se faire plaisir en créant, on est pas robots. Je suis une merde ne développement mais j'aimerais probablement apprendre la POO un jour et je le ferais, mais pour un amateur qui fait ça pour s'amuser je ne vois pas pourquoi on le dirigerait FORCEMENT vers la POO. Si le procédural lui convient mieux qu'ils fasse du procédural. Mon portfolio est codé en procédural, il n'y à jamais de maintenance à faire, il est pas optimisé du tout, c'est un truc de gros porc =D Mais ça marche, ça n'est pas lourd, donc je vois pas où est le problème =D

Je comprend les puristes mais je ne comprend pas pourquoi ils n'arrivent pas accepter que les autres ne fassent pas comme eux.
Ça dépend vraiment de ce qu'on fait, par exemple dans mes études j'utilise la programmation pour des trucs très basiques, comme les stats (on appèle 3 fonctions on a le résultat), et quelques manipulations simples sur des données. Dans ces conditions la POO est totalement inutile (d'ailleurs on en a jamais entendu parler). L'utilité de la POO ne viens que quand on cherche à faire des choses plus complexes ou plus durables, vouloir à tout prix l'utiliser pour quelque chose de simple reviens à écrire trois fois plus de code pour un résultat identique. Et de plus la POO est difficile à comprendre pour un débutant, ça reste assez abstrait et il est facile de passer à côté de l'intérêt (réduire un objet à "une boite à fonction").

Pour reprendre la comparaison avec les voitures : pourquoi mettre un moteur de voiture de course dans une R5?

Pour l'exemple, le jeu que j'ai commencé à coder, très peu avancé actuellement (pas le temps), j'aurais pu faire ce que j'ai fait en une heure en procédural. Mais je l'ai fait en POO, j'ai du changer 7 ou 8 fois l'architecture de mon projet pour avoir un truc qui tiennent à peut près debout, et encore je sens que si un pro regarderais, il me dirait de recommencer. Sans compter que j'ai facilement doublé le nombre de ligne de code. Bien sur je regagnerais surement le temps perdu avec mon code ainsi organisé, mais si mon projet était basique, le réaliser en procédural m'aurait fait gagner beaucoup de temps.
(10-11-2010, 09:45 PM)Kihmé a écrit : [ -> ]un développement procédural extrêmement bien fait sera toujours moins propre et moins maintenable que de la poo mal faite. Rien qu'en se basant la dessus on oubli le procédural.

Serait curieux de savoir d'où tu tires de tel conclusion.


PS: un moteur de F1 pour faire de la ville est beaucoup trop couteux et puissant, il est donc pas très malin de l'utiliser en ce cas Smile
De toute manière ça reste un débat éternel mais Kihmé t'es un peu à l'extrême, fais tout de même gaffe avant de dire à je sais pas ptet un tiers du forum d'arrêter de coder parce que c'est plus ou moins ce que tu as fait =D Tu as tes raisons de préférer la poo mais être aussi absolu ça ne rime à rien, dire aux gens qu'ils perdent leur temps simplement parce qu'ils opèrent différemment c'est pas productif.
Vous ne m'avez pas bien lu et aussi je me suis mal exprimé.

Là je m'adresse surtout au cas confronté, quelqu'un qui ne connait rien pour le moment et qui veut développer un jeu par navigateur, donc on ne parle pas de page de stats ou de portfolio. C'est surtout dans ce cas que je dis qu'il ne sert à rien d'éviter la poo. Après je ne voulais pas vous dénigrer, et pardon si ça a été pris comme ça, j'ai pourtant écris que je concevais votre réticence étant moi même passé par là, j'ai moi aussi du faire cette transition, c'est pour ça que je me permet certaines conclusions.

Quand je vous lis j'ai l'impression qu'il y a effectivement quelque chose qui cloche, car quand Thêta Tau Tau dit ceci

Citation :Pour l'exemple, le jeu que j'ai commencé à coder, très peu avancé actuellement (pas le temps), j'aurais pu faire ce que j'ai fait en une heure en procédural. Mais je l'ai fait en POO, j'ai du changer 7 ou 8 fois l'architecture de mon projet pour avoir un truc qui tiennent à peut près debout, et encore je sens que si un pro regarderais, il me dirait de recommencer. Sans compter que j'ai facilement doublé le nombre de ligne de code. Bien sur je regagnerais surement le temps perdu avec mon code ainsi organisé, mais si mon projet était basique, le réaliser en procédural m'aurait fait gagner beaucoup de temps.

Je me dis que ce n'est pas possible, ça devrait être le contraire.

La poo ce n'est pas un nouveau langage où il faut tout reprendre à zéro, c'est juste une façon d'organiser, hiérarchiser et factoriser votre application et votre code au maximum.

Je vais voir si je vous trouve pas un tuto bien fait ou au pire en faire un
J'ai rien reprit de zéro, j'ai juste comme tu l'as dit "organisé, hiérarchisé" avec la POO, c'est ça qui m'a pris du temps (pour toi ça n'en prends pas, car tu as déjà du code à copier/coller que tu réutilises à chaque projet, ou que tu connais par coeur, ou un framework que tu maitrises).

Par exemple pour faire une page en procédural ya qu'à balancer du XHTML (directement dans le code, en echo, en include, en fonction... peu importe c'est très rapide à faire). Pour faire la même chose en POO j'ai créé une classe "Page" qui doit gérer pas mal de chose (assemblage de divers éléments comme le header, le menu, le corps.... qui sont aussi des objets...), alors forcément que ça prends plus de temps et de lignes de code, surtout que c'est la première fois que je me lance là dedans. Je regagnerais le temps investi quand mon projet se complexifiera ou quand je ferais des mises à jour (sinon je serais resté en procédural).
sephi on peut diviser le topic steuhplé? le débat est interessant je trouve.


Attention, il ne faut pas mélanger les concepts !
en php je trouve la POO assez chiante et je commence à m'en défaire, notament avec php 5.3 ou on peut avoir une approche plus "programmation fonctionelle" que j'apprécie beaucoup.
Pourtant, j'utilise pas mal les classes comme, cela à été écrit plus haut, des "boites à fonctions" et c'est très pratique. la classe est une structure de langage et je m'en sers comme des 'struct' en C (des classes sans méthodes quoi), des et lib de fonctions statiques. C'est très pratique.
ça permet d'avoir un appli totalement structurée, et pourtant c'est du procédural.

Procédural ne rime pas avec "je fais un script de 12000 lignes que j'appelle avec un include et tant pis si j'ai 5 variables avec le même nom lors du déroulement de mon appli. Tu peux très bien avoir un fichier par fonctionnalité et isoler les variables dans des fonctions.

En plus, le procédural ça va plus vite.

Ensuite, faire du procédural en Java c'est un peu se tirer une balle dans le pied, mais en php, qui est multi paradigme, c'est tout à fait viable.
Abuser des structures et des tableaux permet d'avoir des variable bien rangées, les tableaux étant vraiment pratiques en php car ils sont ordonnés, même avec des clés textuelles.

Je bosse pas mal sur prestashop en ce moment et c'est bien relou d'avoir des fonctions de traitement de base dupliquées dans 50 classes parce que php ne gère pas l'import de fonctionnalités dans les classes comme on peut le trouver en python, ruby ou scala.

Citation :Par exemple pour faire une page en procédural ya qu'à balancer du XHTML (directement dans le code, en echo, en include, en fonction... peu importe c'est très rapide à faire).

hmmm, y a aussi le fait que php est un langage très populaire avec 50 gars qui postent sur le blog des scripts à chier avec 5 lignes de php, 5 lignes de html, 5 lignes de javascript, 5 lignes de html, 5 lignes de php, 5 lignes de html, etc..

Le procédural n'est pas forcément synonyme de bordel total, c'est simplement qu'on n'y trouve pas la logique objet qui veut que chaque structure de données embarque avec elle les fontionnalités qu'on pourrait lui appliquer (transformation, CRUD en base de données, calculs divers), qui veut que ta classe Ferrari, si elle hérite de la classe voiture, ne pourra plus hériter de la classe objet_de_luxe, ceci te forçant à créer des décorateurs encore et encore.

Mais le procédural ne t'empêche pas d'avoir des structures de données viables (tableaux, classes sous forme de struct) et d'avoir une structure MVC propre si tel est ton choix.

De plus, on voit pas mal de mecs proposer des applis en pseudo POO avec maximum 3 classes. Mais il ne font qu'encapsuler des traitements dans une classe comme je le fais en procédural pour que le code soit plus solide.

Se servir des classes en php et du mot clé $this ne signifie pas faire de la POO.
Je suis entièrement d'accord avec le message précédent (de niahoo).

Déjà le post a dérivé sur un débat qui n'a plus rien à voir avec le post initial quelque soit la personne qui l'a posté et l'opinion que certains ont de cette personne.

Ensuite, concernant la POO, il ne faut pas oublier que tout programme en orienté objet, quelque soit le langage utilisé, sera traduit en langage machine que l'on peut apparenter à une traduction en langage procédural.
Et avant la POO, on faisait bien par d'autres biais et notamment le langage procédural. (Même en POO, il m'arrive encore de produire des organigrammes de niveau B avant d'écrire le code).

Le seul "truc" qui compte, c'est que le langage soit structurant (au moins un peu) et que le programme soit lui entièrement structuré quelque soit la méthode de programmation utilisée.
(11-11-2010, 06:52 PM)niahoo a écrit : [ -> ]sephi on peut diviser le topic steuhplé? le débat est interessant je trouve.


Attention, il ne faut pas mélanger les concepts !
en php je trouve la POO assez chiante et je commence à m'en défaire, notament avec php 5.3 ou on peut avoir une approche plus "programmation fonctionelle" que j'apprécie beaucoup.
Pourtant, j'utilise pas mal les classes comme, cela à été écrit plus haut, des "boites à fonctions" et c'est très pratique. la classe est une structure de langage et je m'en sers comme des 'struct' en C (des classes sans méthodes quoi), des et lib de fonctions statiques. C'est très pratique.
ça permet d'avoir un appli totalement structurée, et pourtant c'est du procédural.

Procédural ne rime pas avec "je fais un script de 12000 lignes que j'appelle avec un include et tant pis si j'ai 5 variables avec le même nom lors du déroulement de mon appli. Tu peux très bien avoir un fichier par fonctionnalité et isoler les variables dans des fonctions.

En plus, le procédural ça va plus vite.

Ensuite, faire du procédural en Java c'est un peu se tirer une balle dans le pied, mais en php, qui est multi paradigme, c'est tout à fait viable.
Abuser des structures et des tableaux permet d'avoir des variable bien rangées, les tableaux étant vraiment pratiques en php car ils sont ordonnés, même avec des clés textuelles.

Je bosse pas mal sur prestashop en ce moment et c'est bien relou d'avoir des fonctions de traitement de base dupliquées dans 50 classes parce que php ne gère pas l'import de fonctionnalités dans les classes comme on peut le trouver en python, ruby ou scala.

Citation :Par exemple pour faire une page en procédural ya qu'à balancer du XHTML (directement dans le code, en echo, en include, en fonction... peu importe c'est très rapide à faire).

hmmm, y a aussi le fait que php est un langage très populaire avec 50 gars qui postent sur le blog des scripts à chier avec 5 lignes de php, 5 lignes de html, 5 lignes de javascript, 5 lignes de html, 5 lignes de php, 5 lignes de html, etc..

Le procédural n'est pas forcément synonyme de bordel total, c'est simplement qu'on n'y trouve pas la logique objet qui veut que chaque structure de données embarque avec elle les fontionnalités qu'on pourrait lui appliquer (transformation, CRUD en base de données, calculs divers), qui veut que ta classe Ferrari, si elle hérite de la classe voiture, ne pourra plus hériter de la classe objet_de_luxe, ceci te forçant à créer des décorateurs encore et encore.

Mais le procédural ne t'empêche pas d'avoir des structures de données viables (tableaux, classes sous forme de struct) et d'avoir une structure MVC propre si tel est ton choix.

De plus, on voit pas mal de mecs proposer des applis en pseudo POO avec maximum 3 classes. Mais il ne font qu'encapsuler des traitements dans une classe comme je le fais en procédural pour que le code soit plus solide.

Se servir des classes en php et du mot clé $this ne signifie pas faire de la POO.


+1, si ce n'est "on ne trouve pas la logique objet", qui malgrés le fait d'etre en procedural, n'empeche pas de prendre que certains bons coté de la POO, c'est a dire certains concepts (polymorphisme notament), sans avoir a ce taper toutes la structure et la syntaxe très lourde de la POO... Wink
Pages : 1 2