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

Java Discussion :

Avis sur un programme


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut Avis sur un programme
    Bonjour,

    j'aimerai avoir votre avis sur un petit programme, un morpion en Java en utilisant le modèle MVC en mode console.

    Le programme marche mais je voudrai savoir si j'ai bien utiliser le MVC et si la façon de programmer est bonne...

    Merci à vous.

    PS : Le projet a étéfait avec eclipse.
    Fichiers attachés Fichiers attachés

  2. #2
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    je n'ai pas beaucoup de temps pour me pencher sur ton code mais j'ai remarqué plusieurs chose. Pour ce qui est de la conception MVC ça me semble pas mal. J'ai repéré quelques petits points dans ton code :

    • évite les commentaire inutile
    • commente ce que fait chaque classe
    • génère la javadoc, cela permet de plus vite rentrer dans ton code
    • utilise des espaces pour indenter ton code
    • évite les variable == false, si tu oublie un = tu peut avoir de gros problèmes
    • tu pourrais utiliser des instructions tel que break, cela rend le code plus simple
    • pour les switch/case il y a les enums qui sont pas mal ou les constante, cela permet de savoir un peu ce que le code est sencé faire.
    • pourquoi ne pas avoir utilisé un tableau de char ?
    • dans viderGrille() dans la seconde boucle utilise plutôt grille[i].length
    • trouve un autre nom que setNbreVictoire
    • tu pourrais factoriser ton code en utilisant une boucle pour tester les verticales et les horizontales
    • le commentaire de verifierMatchNul me semble faux, return !testerSiPlace() aurait été plus simple
    • Trouve autre chose que Ihm comme nom, ça m'est pas très parlant


    Il y a tout de même quelques petites choses qui me chagrinent au niveau du mvc :
    • n'utilise pas directement le tableau pour connaitre l'état des cases
    • la position pourrait être donné en séparant par une virgule et non une double entré

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Citation Envoyé par Fmunch Voir le message
    je n'ai pas beaucoup de temps pour me pencher sur ton code mais j'ai remarqué plusieurs chose. Pour ce qui est de la conception MVC ça me semble pas mal. J'ai repéré quelques petits points dans ton code :

    • [1]évite les commentaire inutile
      [2]commente ce que fait chaque classe
      [3]génère la javadoc, cela permet de plus vite rentrer dans ton code
      [4]utilise des espaces pour indenter ton code
      [5]évite les variable == false, si tu oublie un = tu peut avoir de gros problèmes
      [6]tu pourrais utiliser des instructions tel que break, cela rend le code plus simple
      [7]pour les switch/case il y a les enums qui sont pas mal ou les constante, cela permet de savoir un peu ce que le code est sencé faire.
      [8] pourquoi ne pas avoir utilisé un tableau de char ?
      [9] dans viderGrille() dans la seconde boucle utilise plutôt grille[i].length
      [10] trouve un autre nom que setNbreVictoire
      [11] tu pourrais factoriser ton code en utilisant une boucle pour tester les verticales et les horizontales
      [12] le commentaire de verifierMatchNul me semble faux, return !testerSiPlace() aurait été plus simple
      [13] Trouve autre chose que Ihm comme nom, ça m'est pas très parlant


    Il y a tout de même quelques petites choses qui me chagrinent au niveau du mvc :
    • [14] n'utilise pas directement le tableau pour connaitre l'état des cases
      [15] la position pourrait être donné en séparant par une virgule et non une double entré
    Merci d'avoir pris du temps pour me donner ton avis.

    1 - C'est vrai que j'ai tendance à mettre des commentaire même quand il servent à rien. Mais si je l'ai met pas, il va pas y avoir un manque pour la javadoc?

    2 - Je le ferais ferais.

    3 - Ok, je vais me renseigner pour comment la générer.

    4 - Mon code est pas indenter? Ou alors tu veux dire utilise des espaces au lieu des tabulations?

    5 - Je dois faire if(variable) c'est ça? J'ai pris l'habitude de bien (ou trop) détailler mon code pour (essayer) d'être le plus lisible possible.

    6 - J'ai lu et entendu dir que les break et continue sont pas recommandés en programmation, on peut toujours faire sans... Ou tu pense que j'aurai du en mettre?

    7 - j'y penserai pour le prochaine switch.

    8 - J'avais l'impression de rendre les calcules plus claires au lieu de 'O' + 'O' + 'O' = 237.

    9 - C'est fait.

    10 - Je comprends pas pourquoi?

    11 - Oui j'avais prévu de le faire mais j'ai zappé.

    12 - Oui ça aurait été plus simple...

    13 - Oui j'avoue.

    14 - Comment faire?

    15 - Oui je vois.

    Merci pour ton avis en tout cas.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 156
    Par défaut
    • 1/ le nom de la fonction peut être assez explicite, après c'est aussi une histoire de gout, généralement j'écrit mon code en anglais, tout comme la javadoc
    • 4/ c'est juste des espaces, c'est mieux pour échanger du code, enfin la aussi c'est pas mal une question de gout.
    • 5/ la vérification que tu as faite est dangereuse, si tu oublie un = tu assigne la valeur, pra exemple false ou true à ta variable, et donc le bloc de code sera toujours exécuté quelque soit l'état de ta variable. Je pense que le code ne doit pas être non plus excessivement détaillé. Il faut pas que le détail engendre un excès de variables. Personnellement je n'utilise que exceptionnellement le do while.
    • 6/ Je trouve que un break ou un continu rendent le code plus lisible. Si pour les éviter du multiplie par deux ou trois la taille de ton code, que tu fait des teste en plus, c'est plus compliqué, donc je préfère pas.
    • 8/ c'est mieux que ce soit pas les symboles en faite, cela correspond plus à la philosophie mvc : le modèle n'a rien à voir avec ce que l'on voit, la vue le traduit.
    • 10/ si je me souvient bien setNombreVictoir, augement un nombre de 1, recherche dans tes classes, la j'ai pas le temps. addNombreVictoir serait mieux je pense.
    • 14/ c'est assez simple, c'est pas vraiment un problème du mvc ( encore que, mais j'y suis pas très doué ) c'est plus un problème de conception objet, il faudrait que la vue fasse appel à une méthode qui demande l'état de chaque cases : cela rend le liens entre la classe vue et modèle moins fort.
    • 15/ la c'est une question de quelle éléments on considère comme une entité, la tu pourrais créer une classe position, avec 2 entiers, mais bon c'est pas vraiment nécessaire, la profusion de classes n'est généralement pas très apprécié.


    J'ai fait beaucoup de commentaire, mais ton code est pas mal, surtout au niveau de la séparation MVC, après à mon goût le code est très long. Et la javadoc c'est franchement un plus. Il doit aussi y avoir une option pour la générer même pour les champs marqué private. Une solution pour t'aider au découpage c'est de te demander ce qu'il faudrait si tu fait une interface graphique, comment les différentes parties de l'application communiquerais dans ce cas.

    PS : pense à mettre que le problème est résolu une fois qu'il l'est

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Janvier 2008
    Messages
    623
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 623
    Par défaut
    Merci pour tout ces conseils et commentaire, c'est pour ça que j'ai poster mon code.

    J'aurai aimé plus d'avis mais comme le tiens est m'apporte déjà beaucoup de piste pour m'améliorer, ça me va donc sujet résolu (Ça n'empêche pas d'autre personne de venir critiquer donc n'hésitez pas).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Turbo Pascal] Votre avis sur un programme (utilisation fichiers)
    Par dourpil dans le forum Turbo Pascal
    Réponses: 1
    Dernier message: 15/10/2009, 09h13
  2. Réponses: 1
    Dernier message: 21/08/2009, 17h17
  3. Votre avis sur mon programme
    Par grinder59 dans le forum Général Dotnet
    Réponses: 0
    Dernier message: 19/09/2008, 11h05
  4. votre avis sur mon programme
    Par warubi dans le forum C++
    Réponses: 6
    Dernier message: 19/02/2007, 09h47
  5. Avis sur un programme
    Par _kal_ dans le forum C
    Réponses: 9
    Dernier message: 31/07/2006, 22h11

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