IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C++ Discussion :

Amélioration design code


Sujet :

C++

  1. #21
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par koala01 Voir le message
    La donnée est là, si on l'utilise, tant mieux, sinon bah, ben tant pis
    C'est bien ce que je dis: on surcharge le réseau.
    C'est sûr que dans mon exemple avec une classe et deux propriétés, ce n'est pas un problème, mais dans la vraie vie, on aime bien avoir le plus de donnée possibles, et il devient donc rapidement nécessaire de faire un tri et ne garder vraiment que ce dont on a besoin.

    D'autant plus que dès qu'on est dans les problématiques réseau, chaque donnée supplémentaire qui transite pose de nouveaux problèmes (définitions, protocoles, sécurité, synchronisation, etc.).
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  2. #22
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    Par défaut
    Citation Envoyé par r0d Voir le message
    C'est bien ce que je dis: on surcharge le réseau.
    Pas si tu ne la transmet que lorsque la valeur change!

    L'idée, comme je l'ai précisé, n'est d'envoyer sur le réseau que ce qui est modifié, et non "tout à chaque fois".

    Si une propriété est utilisée coté serveur mais inutilisée (ou modifiée uniquement lors du passage de niveau, par exemple) coté client, il ne faudra l'envoyer que... lorsqu'il y a réellement modification
    C'est sûr que dans mon exemple avec une classe et deux propriétés, ce n'est pas un problème, mais dans la vraie vie, on aime bien avoir le plus de donnée possibles, et il devient donc rapidement nécessaire de faire un tri et ne garder vraiment que ce dont on a besoin.
    Et l'on peut parfaitement faire ce tri quand il s'agit d'envoyer les données sur le réseau, non
    D'autant plus que dès qu'on est dans les problématiques réseau, chaque donnée supplémentaire qui transite pose de nouveaux problèmes (définitions, protocoles, sécurité, synchronisation, etc.).
    Ca, par contre, je suis tout à fait d'accord.

    Et c'est bien pour cela que la première chose que j'ai dite à ce sujet, c'est qu'il fallait limiter au maximum les données transmises
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

  3. #23
    r0d
    r0d est déconnecté
    Expert éminent

    Homme Profil pro
    tech lead c++ linux
    Inscrit en
    Août 2004
    Messages
    4 262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : tech lead c++ linux

    Informations forums :
    Inscription : Août 2004
    Messages : 4 262
    Points : 6 680
    Points
    6 680
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par koala01 Voir le message
    Pas si tu ne la transmet que lorsque la valeur change!
    C'est effectivement l'approche standard.
    Mais dans la pratique ça pose plusieurs problèmes. Déjà ça ajoute une couche "décisionnelle" qui consiste à "faire le tri" de ce que l'on envoie et quand (en général on retrouve des modèles type mepg2: on envoie les modifs "on the fly", et à chaque intervalle I, on envoie une "photo", un ensemble plus important de données, qui permet de s'assurer qu'on est bien synchronisé). Ensuite, étant donné le rapport asymétrique entre client et serveur, cette couche sera différente des deux côtés. Tout cela réuni peut poser de sérieux problèmes de maintenance, en particulier du fait que toute modification dans la couche métier aura un impact sur cette couche "décisionnelle".

    Nous cherchons une sorte de graal, une méthode qui permettrait de pouvoir serializer sauvagement nos classes métiers. Ça simplifierait tellement les choses, autant lors de la conception, que lors du développement, mais surtout de la maintenance, que ce serait vraiment magique. Et à priori, je ne pense pas que ce soit impossible, seulement il faut sortir du MVC.
    « L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
    Spinoza — Éthique III, Proposition VII

  4. #24
    Expert confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    1 711
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2012
    Messages : 1 711
    Points : 4 442
    Points
    4 442
    Par défaut
    Citation Envoyé par koala01 Voir le message
    La donnée est là, si on l'utilise, tant mieux, sinon bah, ben tant pis
    Citation Envoyé par r0d Voir le message
    C'est bien ce que je dis: on surcharge le réseau.
    C'est plus le fait de fournir des données inutiles au client qui est gênant: c'est dans le client, donc disponible en allant fouiller ou il faut en mémoire.
    Si le client n'a pas besoin de données, il ne faut juste pas les fournir, ça évite pas mal d'exploits

  5. #25
    Membre régulier Avatar de Sytten
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    72
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 72
    Points : 76
    Points
    76
    Par défaut
    Bon le sujet diverge un peu du but initial, comme koala () a répond à beaucoup de mes interrogations, je vais clore le sujet très bientôt

    J'ai décidé d'utiliser pour mon prochain jeu un moteur existant (sûrement cocos2d-x même si je trouve qu'il n'est pas parfait vu que c'est un portage de celui fait pour objective-c qui est un langage quand même très différent du c++) afin de me concentrer seulement sur le jeu en lui-même, ce qui risque m'aider à obtenir une meilleur qualité de code . Aussi, cela permettra à notre équipe de se souder un peu plus. Je crois qu'avant de tout de suite passer à la création de mes propres outils, je dois voir ce qui existe et comment ces outils sont bâtis. Je dois voir ce dont j'ai besoin dans mes jeux et tester les limites des outils avant de pouvoir dire que je suis à prêt à en créer de nouveaux (et réinventer la roue comme le fait germino et sa team^^). Je réalise que j’essayais de passer par-dessus certaines étapes dans mon processus d'apprentissage . Il me reste beaucoup à apprendre avant de prétendre être capable de faire un jeu (ou un moteur) de façon 100% autonome .

    P.S.: je laisse ouvert le sujet pour quelques jours si vous avez des commentaires (qui me sont extrèmement utiles en passant )
    À toute erreur il y a une solution

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Amélioration de code
    Par Devilju69 dans le forum Langage
    Réponses: 3
    Dernier message: 07/10/2008, 15h01
  2. Optimisations et Améliorations de code
    Par womannosky dans le forum Langage
    Réponses: 19
    Dernier message: 02/07/2008, 15h05
  3. [Optimisation]Peut-on améliorer ce code ?
    Par progfou dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 09/08/2007, 15h43
  4. [Tableaux] Amélioration de code (if)
    Par Sir Tengu dans le forum Langage
    Réponses: 3
    Dernier message: 24/12/2006, 00h26
  5. [Sécurité] Comment amélioré mon code ?
    Par Nadd dans le forum Langage
    Réponses: 14
    Dernier message: 03/03/2006, 20h13

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo