JeuWeb - Crée ton jeu par navigateur
Modèle MVC - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Modèle MVC (/showthread.php?tid=1769)

Pages : 1 2


Modèle MVC - Kalan - 18-09-2007

Bonjour,

sans doute êtes-vous nombreux à développer vos jeux en respectant la séparation du modèle (les objets propres au jeu),des vues (la génération et l'affichage des pages et du controleur (ce qui gère l'enchainement des pages).

Sous J2EE, Struts est fortement pratiqué (j'aime pas car c'est trop riche et avant de maîtriser totalement, il faut des semaines si ce n'est des mois. En général on n'a pas besoin de plus de 30% de l'ensemble du Framework).

J'ai vu qu'un projet Struts pour PHP existait. Le responsable technique du site de Gloire et Pouvoir avec qui je travaille, a opté pour Copix.

C'est un Framework MVC, intégrant des fonctionnalités AJAX et initités par des français. Cela signifie que toutes les docs sont accessibles dans notre bonne chère langue française.

J'avoue ne pas avoir encore plongé mon nez dedans; mais vu l'entousiasme de mon pote, ca doit valoir le coût.

Pour en savoir plus, le site est là.

Si certains connaissent, je suis aussi intéressé par vos retours d'expérience notamment :
- facilité d'apprentissage
- maintenabilité du site développé avec ce Framework
- performance

Merci


Kalan


RE: Modèle MVC - joshua - 18-09-2007

bah comme tu as pu le voir, ici on se bat pour symfony Big Grin


RE: Modèle MVC - Kalan - 18-09-2007

Hum hum... Mais encore ?

Pourrais-tu m'expliquer (globalement) l'architecture du Framework. Ce qui, pour vous, en fait un bon outil productif ? Les particularités, au delà de la séparation modèle/vue/controleur ?

Bref, me macher le travail et m'éviter de me taper toute la littérature à son sujet :-b.

J'ai discuté avec Pascaltje ce midi qui me semble aussi intéressé par Synphonie en le rapprochant un peu de Rubi on line version PHP.

Merci de ton analyse.


Kalan


RE: Modèle MVC - pascal - 18-09-2007

oui, Symfony se rapproche de Ruby On Rails ( _pas on line, faut dire, bruyant ce restau_ ), enfin c'est ce que j'ai lu.

les points positifs :
_ la ligne de commande génére plein de trucs :
-- un module ( = répertoire avec qques fichiers pour démarrer le module )
-- une admin selon les données pour une table, avec gestion de tables liées; c'est personnalisable, via un fichier de config
-- la couche d'accès aux données
-- la base de données, depuis sa description dans un fichier, et inversement, un fichier de description de la base via le schema actuel en base ( pratique pour ajuster le modèle de données en quelques passes )
_ plein de plug ins, dont :
-- un CMS ( pour les regles du jeu et les pages statiques hors jeu )
-- un blog ( pour les news )
-- une gestion de membres, avec des groupes et des droits
_ la gestion de langues, en DB et dans la vue
_ des régles de routage, permettant des url humainement lisibles / référençables mais aussi la possibilité de mettre des liens dans les vues indépendamment des noms/chemins réels de fichiers
_ support d'ajax
_ un outil de tests unitaires
_ une debug toolbar très complete en mode développement ( fichiers appelés, requetes SQL, valeur de variables, timer, ... )
_ un système de config qui se spécialise par niveau dans l'arborescence : projet / application / module
_ beaucoup de doc et de tutoriaux
_ projet actif et fait pour durer

les points négatifs :
_ la doc est en anglais, il faut se concentrer plus qu'avec une doc en français ( mais environ 20% de la doc traduite )
_ il faut être débrouillard : savoir installer PHP5, pear, configurer le path, utiliser la ligne de commande

voilà en gros, de mémoire.

bref, ce qui me botte le plus :
_ la génération d'admin rapide
_ l'outil pour créer la DB / récupérer sa structure

A+

Pascal


RE: Modèle MVC - Kalan - 18-09-2007

En effet, ca a l'air assez pratique, notamment en maintenance.

Merci, je jetterai un oeil :-).


RE: Modèle MVC - joshua - 18-09-2007

Bon, ce qu'on te dit pas c'est que pascaltje c'est un bon pote a moi IRL..... Et qu'on a juste une promo de différence, donc je me fais aider d'un convaincu :p


RE: Modèle MVC - Kalan - 18-09-2007

Je cherche pas à être convaincu :-). Je ne connais pas les framework PHP. Je m'informe sur ce qui existe et je suis sur que ca peut être d'une grande valeur pour ceux qui se lancent.

Si ca permet de faire comprendre l'intérêt de la conception d'un jeu AVANT de commencer Sla réalisation et montrer que, une fois la conception aboutie, des Frameworks aident à la productivité, à la maintenabilité, ce sera tout bonus pour la pérennité des jeux :-)


RE: Modèle MVC - joshua - 18-09-2007

donc... tu es convaincu? on a reussi Smile)
tiens je vois qu'il a pas parlé de l'internationalisation native et du passage de variable evident entre la couche controller et le template :p


RE: Modèle MVC - Kalan - 18-09-2007

:-). A vrai dire, c'est plus pour ma culture. Le site de G&P est maintenant maintenu par mon pote qui utilise Copix et moi je travaille plutôt en ASP.NET :-)

Mais que ce soit PHP, J2EE, Python ou quoi que ce soit, quand un concept est bon, il l'est dans tous les langages. D'où l'intérêt de suivre un peu (même de loin) ce qui se fait un peu partout.


RE: Modèle MVC - zzarbi - 19-09-2007

Salut,

par contre faut pas confondre MVC et framework... Je suis sûr qu'il est possible de trouver un framework sans MVC...
MVC est un design pattern, qui en français veut dire en gros un algorithme... En fait des développeurs comme nous se sont dit un jour... "C'est bizarre mais àa chaque développement on se pose les même question..."
MVC répond à la question "Comment avoir une architecture modulaire ?" Ce qui permet de séparer la partie "calcul" de la partie affichage et stockage de donnée...

Enfin le vrai modèle MVC est bassé sur un Controleur qui utilise une Vue et un Modèle pour avoir un résultat...

Ca c'est pour le MVC.

Un framework est un énorme ensemble de classe, de design pattern (singleton, MVC, etc....), de notion de codage, de notion de nommage, de règles, et souvent maintenant d'une partie génération automatique...

Depuis la dernière discussion qu'on a eu sur symfony, j'ai pris le temps de l'installer, de lire la doc et de faire quelques essais...

Bah il est sûr et certain que je n'utiliserai jamais symfony sauf si j'y suis forcé ^^ En fait je déteste tous le coté génération automatique, autant au début je m'était dit "Chouette c'est super il fait du code pour moi", autant une fois avoir vu comment il le fait, ça ne donne pas envie d'aller jouer avec des XML pour avoir ce résultat. Aprés il est certain que niveau passage du code à un copain, ça c'est génial il est tout simplement impossible de le faire autrement. Je trouve qu'on est trop encadrer...

Je ne parle pas de limite dans ce qu'on peut faire... non. Mais de limite dans ce qu'on doit coder. C'est assez compliqué à expliquer... Surtout que la différence est extrèmement fine.
C'est comme si pour coder quelque chose normalement on a 2 choix possible or ici, on ne peut qu'en utiliser 1 seul et unique choix.
Sinon de symfony j'adore le système de BDD (qui est pas de symfony comme toute les autres briques :p)

Ensuite je déteste ce type de génération automatique de code... En effet si l'application doit générer automatiquement des DAO et des BO, je trouverais ça normal dans le sens où c'est du code qui se répete de classe en classe avec juste des petite modifications...

Or la génération automatique d'admin c'est super... Mais en pratique je préfèrerais avoir du code qui ne soit pas générer tout seul même si on peut le modifier en suite... (Oui c'est pas très malin comme reflexion... 9a me passera ptet avec le temps)

Mais je reste quand même sur mes positions qui sont symfony est beaucoup trop lourd... Je préfère Copix... Mais aucun des deux ne correspond à mon modele "MVC" en 5 couche :
BO -> DAO -> SERVICE -> APPLICATION -> PRESENTATION
+ une couche implicite d'exception et un controleur.
La couche BO est le seul moyen de communication entre chaque couche..
Et la couche présentation par exemple ne peut pas accéder à la couche application, service ou DAO.
PS: Si vouc connaissez un framework qui gère ça ^^ Smile

Citation :- facilité d'apprentissage
- maintenabilité du site développé avec ce Framework
- performance
La facilité d'apprentisage depend du framework, mais par exemple Copix me semble plus facile que symfony. Mais symfony doit surement se ratrapper quelques part comme sur le passage du code à quelqu'un d'autre !!!

La maintenance est selon moi équivalent chez chaque framework.
La performance dépen du framework... Mais à mon avis il ne doit pas y avoir bcp de différence.