NodeJS - MVC + temps-réel - Structuration d'application - 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 : NodeJS - MVC + temps-réel - Structuration d'application (/showthread.php?tid=7045) |
NodeJS - MVC + temps-réel - Structuration d'application - Cawrotte - 18-07-2013 Salut tout le monde, j'essaie de construire une application NodeJS. Dans le but
j'aimerais bien faire un petit RPG (pour faire original), parce que j'ai toujours appris la programmation en essayant de faire des RPG. :langue2: Pour cela, je voudrais structurer cette application de la manière suivante :
Si vous voyez BrowserQuest, je voudrais faire un peu la même chose dans l'idée (un jeu temps-réel sans base de données), mais avec une BDD en plus et un site autour.
La première question que je vous pose est à propos de la structuration de l'application. Elle est bien ? Est-ce que je fais quelque chose de travers ? Ensuite, pour la base de données, je me demande comment organiser le jeu temps-réel. Dois-je utiliser un modèle MVC ? Comment gérer ça avec Mongoose ? Je n'arrive pas à me figurer comment mixer le modèle Mongoose et son schéma avec la classe en question qui elle contient des variables, des tableaux contenant des instances d'autres classes... Par exemple, ma classe Map côté serveur aura un attribut players de type Array contenant toutes les instances de la classe Player sur ladite map... Mais je ne vois pas comment stocker tout ce bazar proprement en base de données. Mes propos sont sûrement confus comme je n'ai pas d'expérience avec ces technos mais toute trace d'aide de votre part m'aidera beaucoup. Merci d'avance ! RE: NodeJS - MVC + temps-réel - Structuration d'application - Maks - 18-07-2013 Coucou, Pour organiser ton MVC, j'ai développé un module de 20 lignes : https://github.com/MaksJS/express-simple-mvc Ca tombe bien il y a tout ce que tu veux, un exemple avec express & mongoose. C'est du coffeescript mais tu peux adapter en Javascript. Sinon je pense que ta classe Map ne doit pas être fusionnée avec ton modèle. La couche des données et la couche de jeu doivent être séparées. Pour stocker en base de donnée c'est simple, tu prévoies un toJSON() pour chacune de tes classes et mongo et mongoose feront le reste pour le côté magique. Enfin en ce qui concerne le site à mon avis tu n'as pas spécialement besoin d'aussi utilisé Node, personnellement j'ai préféré utiliser un langage/technologie différente (plus adaptée, éprouvée et rapide à programmer peut être) et base de donnée différente pour le site. Si c'est pour faire le site sous Node avec un équivalent de Rails ça vaut pas vraiment le coup RE: NodeJS - MVC + temps-réel - Structuration d'application - Cawrotte - 20-07-2013 Hello, merci beaucoup pour l'aide mais le problème que j'ai est surtout d'organiser le code, les fichiers, etc... J'avais déjà une bonne base pour un MVC avec Node (j'avais mis le lien), mais je ne vois pas du tout comment mixer une application temps réel avec une base de données concrètement... Je vais faire des schémas, réfléchir, et je vois si je trouve une piste pour l'exposer et voir ce que vous en pensez RE: NodeJS - MVC + temps-réel - Structuration d'application - Cawrotte - 20-07-2013 En m'inspirant de ton système de namespaces, j'ai pensé à faire un truc comme ça : Un seul serveur NodeJS (bien plus simple), et un répertoire /game à côté du MVC qui contiendra des classes liées entre elles pour éviter de solliciter la BDD à chaque demande et faciliter le temps réel. La communication avec ces classes sera uniquement par sockets. Il me reste à trouver un moyen de bien organiser l'I/O Ce dossier contiendra par exemple la classe World qui contiendra dans un de ses attributs toutes les Maps qui elles contiendront des Entity, etc.. RE: NodeJS - MVC + temps-réel - Structuration d'application - Maks - 20-07-2013 ça me parait bien prévoit un dossier node_modules/ à la racine et vendor/ avec bower par exemple (ce qui t'évitera d'avoir les vendor dans game/ ) RE: NodeJS - MVC + temps-réel - Structuration d'application - Cawrotte - 20-07-2013 J'ai quand même une question sur ton système de MVC : comment tu gères les validateurs, virtuels et cie sur https://github.com/MaksJS/express-simple-mvc/blob/master/example/models/Player.coffee ? RE: NodeJS - MVC + temps-réel - Structuration d'application - Maks - 20-07-2013 Tu peux les mettre juste en dessous de l'attribut model
Par contre je te conseille d'externaliser les schémas des classes pour que ça soit plus clair (prévoir un dossier /db/schema par exemple). RE: NodeJS - MVC + temps-réel - Structuration d'application - Cawrotte - 21-07-2013 OK merci beaucoup |