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

Langage Java Discussion :

Quelques questions sur la création d'un logiciel


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut Quelques questions sur la création d'un logiciel
    Bonsoir tout le monde,
    Je me lance dans un gros projet Java et j'ai quelques questions à vous poser.
    Tout d'abord, j'aimerais vous parlez un peu de ce projet : il s'agira d'un éditeur d'IHM fait pour les non développeurs. Un programme qui devrait permettre à "monsieur tout le monde" (avec quelques connaissance informatique tout de même) de créer sa propre application, de la faire évoluer etc.
    Cela fait plusieurs mois que je cherche la meilleure façon de faire ça, pas techniquement parlant, mais plutôt au niveau de l'utilisation. Je crois avoir trouvé un système qui irai bien et je pense que Java est le meilleur langage pour l'implémenter.

    Venons-en à la vrai raison de ce message : mes questions!
    Donc, étant donné que le programme que je vais réaliser créera des interfaces (utilisant SWING je pense), il faudra qu'il puisse générer du code Java. Ma question est : connaissez-vous un moyen pratique pour générer du code Java? Une API? Je trifouille pas mal les expressions régulière ces derniers temps et je me suis dis que ça irai bien pour créer un API qui générerai un tel code, mais si quelquechose à déjà été fait je ne m'en priverai pas!!

    Autre question, j'utilise le design pattern MVC pour mes interfaces mais comme j'utilise beaucoup d'API externe, mes classes Model on tendance à êre vide. Les API que j'utilise remplace l'utilité du Model. Alors, je me dis que je pourrai faire un générateur d'interface qui n'a que la "view" et le "control", est-ce raisonnable?
    Si non, comment en quoi le Model est important?

    Merci d'avoir lu ce post, j'èspère qu'une discussion constructive en suivra ,

    A+
    dede

  2. #2
    Rédacteur
    Avatar de eclesia
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    2 111
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 111
    Par défaut
    ...un gros projet en effet.

    peut etre peux tu regarder du cote de netbeans, et faire un logiciel basé sur Matisse pour faire tes interfaces.

  3. #3
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Bonjour,

    Je ne sais pas si ça peut t'intéresser mais j'ai utilsé Jet pour générer du code Java à partir de templates (même langage que les JSP) :
    http://www-128.ibm.com/developerwork...ary/os-ecemf2/
    http://www.eclipse.org/articles/Arti...tutorial1.html
    Certes, Jet fonctionne avec eclipse pour transformer ces templates en classes. Mais une fois les templates figés et les classes générées, plus besoin de Jet. Il suffit de passer les données aux classes-templates et d'enregistrer le code généré dans des fichiers.

    Concernant la 2° question, je comprends pas ce que tu entends par "Les API que j'utilise remplace l'utilité du Model". Pour moi, au niveau d'une IHM, la vue, c'est les écrans (Swing ...), le controleur (les actions déclenchées par la vue qui execute des traitements, ...) et le modèle, ce sont les données affichées dans la vue et manipulées par les traitements.
    Ceci dit, ayant expérimenté la création d'un framework, il est vrai que lors de la conception de ce dernier, il n'y avait pas grand chose côté modèle, juste quelques interfaces permettant la connexion avec le reste. Et c'est lors de la création d'une vrai application avec le framework que les données viennent : Les classes métiers de l'application.

    Sinon et si ce n'est pas trop indiscret, je serai intéressé pour discuter du "système qui irai bien". Après y avoir un peu réfléchi et même si le principe de création d'une IHM par un utilisateur semble sympathique, je reste perplexe.
    Bien entendu, et même s'il y a un grand écart entre l'idée et l'implémentation, je comprendrai que tu ne veuilles pas en dire davantage. Néanmoins, n'hésites pas si tu veux obtenir des critiques constructives
    La balle est dans ton camps.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    Hum,
    merci pour Jet, je vais regarder ça en détail, ça à l'air super performant et comme tu dis, une fois que t'as fait tes template pas besoin de Jet, donc le template peu être appellé d'une application externe si j'ai bien compris?


    Ceci dit, ayant expérimenté la création d'un framework, il est vrai que lors de la conception de ce dernier, il n'y avait pas grand chose côté modèle, juste quelques interfaces permettant la connexion avec le reste. Et c'est lors de la création d'une vrai application avec le framework que les données viennent : Les classes métiers de l'application.
    C'est de ça dont je veux parlé, du fait que y'a pas grand chose dans mes modèles. Par contre, quand tu parles de tes classes métiers, je crois que mes classes métiers sont situées dans le framework mais c'est du a ma façon de créer l'appli.

    Justement, ca fait partis du système que j'ai trouvé pour créer des applications plus modulables et plus intuitives.
    Je t'explique (ça ne me gène pas du tout d'exposé mes idées, au contraire) :
    En fait, je pense faire un logiciel qui permettera non seulement de créer des applications (une sorte de visual studio mais très très simplifié, donc forcément moins complet) mais aussi de les modifier. L'utilisateur pourra quand il le souhaite lancé le programme de création et modifié lui meme son programme sans être développeur pour un sous.
    L'idée c'est de faire des framework "orienté utilisateur" avec une "méta documentation" qui expliquera de manière intelligible le fonctionnement d'une méthode et ce dont elle a besoin pour fonctionner. Bon bien sûr pour que le fonctionnement d'une méthode soit compréhensible, elle doit faire quelquechose de compréhensible et donc c'est pour cela que le framework est constitué d'une part de méthodes "normale" et nécessaire au fonctionnement interne de l'application et d'autre part, de méthodes qui corresponderai au méthodes de la classe métier d'une application, c'est à dire des méthodes appliqué à quelquechose de plus concret et de plus intelligible.
    L'éditeur de logiciel serait alors qu'un simple éditeur d'interface et de gestion d'évènement qui appeleront ces fonctions métiers déjà codés.

    Donc, ça limiterait certes les possibilités de créations mais au moins ça pourra peut-être permettre a "monsieur toutlemonde" de faire ça propre application, avec l'agenssement et la logique qui lui conviens.
    Après, rien ne l'empêchera de rajouter des méthodes au framework pour pouvoir faire plus de choses.

    Aussi les logiciels seront plus simple d'utilisation (enfin théoriquement) car l'interface sera "adaptative" c'est a dire qu'elle changera en fonction de ce que fait l'utilisateur. Concrétement, ca se traduit par une gestion des activités utilisateur "par couche".
    Par exemple , si un logiciel permet de retouché des photos et de faire du dessin 2D et bah dès le départ on pourra choisir soit de faire du dessin ou soit de retoucher une photo et l'interface sera alors différentes pour les 2 activités et donc moins surchargée.

    Vous comprenez le concept??

    Merci pour vos réponses, je posterais si j'ai d'autres questions,
    Ah ben tiens, il m'en viens une : peu-t-on introduire une fenêtre de rendu 3D généré par un moteur C++ (Ogre par exemple) dans une appli Java???

    A+
    dede

  5. #5
    Rédacteur
    Avatar de benwit
    Profil pro
    dev
    Inscrit en
    Septembre 2004
    Messages
    1 676
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : dev

    Informations forums :
    Inscription : Septembre 2004
    Messages : 1 676
    Par défaut
    Concernant JET, le principe, c'est que JET transpose un template style JSP en une classe Java. C'est cette dernière qui prend des paramètres en entrée et qui génére le texte final qu'il faut alors enregistrer dans des fichiers.
    Cette classe java peut donc être utilisée à partir de tout autre code java.
    Bien entendu, toute modification du template original nécessite une nouvelle transformation par JET : template -> classe Java.
    Donc peut être que ça pourra t'aider ou peut être pas ...

    Concernant le framework,
    Dans mon cas, c'était un framework technique pour faire des applications (interface graphique, persistence, internationalisation, configuration, ...) et donc il n'y avait aucun rapport avec les applications finales. Les applications finales sont basées sur le framework mais concernent un domaine métier (Gestion par exemple). Les vues sont alors les écrans de l'appli de gestion (basées sur des objets graphiques prédéfinies dans le framework). Le controleur, c'est alors les actions déclenchées par l'utilisateur (basées sur des actions prédéfinies (save, create, list, ...)) qui lancent des traitements sur des objets métiers. Les données, c'est alors les objets métiers (Client, Facture, Produit, ...)

    Dans ton cas et si j'ai bien compris, ton framework serait un framework ++.
    Il intégre à la fois des objets techniques et aussi des objets métiers prédéfinis. L'utilisateur n'a alors plus qu'à relier les objets entre eux et ça marche !!!
    Je comprend mieux maintenant le terme de "gros projet". Mais c'est Ennnnnnnnoorrrrrme !!!! Cette approche est très intéressante mais vu le grand nombre de domaines, quels "métiers" penses tu intégrer en premier ? Comment penses tu enrichir ton framework ? par domaine fonctionnel ? par des sortes de plug-ins ? Ou en es-tu dans ton projet ? As tu pensé à te baser sur eclipse par exemple ?

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2005
    Messages : 112
    Par défaut
    C'est clair que ça va être énorme!!!

    Tout d'abord, merci pour Jet ça à vraiment l'air d'être ce qu'il me faut! Je suis en train de faire le tuto que tu m'as filé là, c'est super puissant comme outils!!

    Sinon, pour le framework t'as bien compris ce qu'on pense faire. En fait c'est plus qu'un framework (framework++ j'aime bien lol) c'est un programme à part entière, mais totalement indépendant de l'interface et qui comprend les objets métier.
    Pour ce qui est de l'évolution du framework, je n'y ai pas encore trop pensé à vrai dire... Enfin, j'ai bien quelques idées... En fait, je pensais faire un framework par domaine d'activité. Pour faire évoluer le framework, bah je pensais faire ça "normalement", si on veux rajouter une fonction, on la rajoute; si on veux rajouter une classe, on la rajoute, si on veu spécifier un comportement on créer une classe fille...
    Il faudra définir des règles comme par exemple un documentation obligatoire enfin du moins sur certain points (je pense même créer des paramètre de documentation spécifique à l'application) .

    On compte faire un logiciel de création de jeu vidéo en fait, mais pour l'instant je fais un logiciel de configuration pour ubuntu. Juste un prog qui exectute des commandes linux et qui modifie des fichiers de config. Rien de bien méchant mais c'est cool pour se faire la main.
    Pour le "game maker" ça risque d'être plus complexe et j'avoue que je ne sais même pas si ça sera possible de faire ça en Java... Mais après, rien ne m'empêche de générer des interfaces écrites dans un autre langage (C++, Lua ou autre), à moins que Jet soit limité à l'XML, au Java et au JSP...

    Le truc c'est que j'y vais un peu a taton vu que je suis pas un spécialiste de ces questions, mais c'est intéressant et j'apprend vite!
    Toute aide est la bienvenue .

    A+
    dede

Discussions similaires

  1. [Robocopy] quelques questions sur le .bat et le logiciel lui même
    Par hipparchia dans le forum Scripts/Batch
    Réponses: 5
    Dernier message: 13/07/2008, 20h41
  2. Réponses: 19
    Dernier message: 21/10/2005, 19h24
  3. Quelques questions sur la mémoire
    Par Gruik dans le forum C
    Réponses: 6
    Dernier message: 17/11/2004, 14h38
  4. Quelques question sur Win 32 Appli
    Par lvdnono dans le forum Windows
    Réponses: 5
    Dernier message: 15/06/2004, 12h37
  5. Quelques questions sur le TWebBrowser...
    Par CorO dans le forum Web & réseau
    Réponses: 3
    Dernier message: 17/01/2003, 21h23

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