Les histoires de tonton benou : l'invocation dynamique - Java - Programmation
Marsh Posté le 24-07-2002 à 23:15:57
t'aurais pu parler du rmi en même temps, parce que la l'invocation dynamique toute seule c'est un peu de la
enfin bon bel effort quand même
Marsh Posté le 24-07-2002 à 23:21:52
SchnapsMann a écrit a écrit : t'aurais pu parler du rmi en même temps, parce que la l'invocation dynamique toute seule c'est un peu de la |
hein ?
où tu as vu que l'invocation dynamique ne servait qu'avec rmi ?
Est tu sur de savoir de quoi tu parles ?
et pui si tu as des préisions ajouter sur le sujet, ce topic t'es ouvert
Marsh Posté le 24-07-2002 à 23:30:10
benou a écrit a écrit : hein ? où tu as vu que l'invocation dynamique ne servait qu'avec rmi ? Est tu sur de savoir de quoi tu parles ? et pui si tu as des préisions ajouter sur le sujet, ce topic t'es ouvert |
je ne dis pas que ca ne peut servir qu'avec rmi... je dis juste que dans d'autres contextes je n'y vois pas de réelle utilité, hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires
Marsh Posté le 24-07-2002 à 23:34:42
SchnapsMann a écrit a écrit : je ne dis pas que ca ne peut servir qu'avec rmi... je dis juste que dans d'autres contextes je n'y vois pas de réelle utilité. |
on est d'accord.
mais il y en a. et plein ! dans les 3 premières pages de ce forum tu trouveras 2 topics qui parlent d'invocation dynamique et qui n'ont rien à voir avec RMI ...
Marsh Posté le 24-07-2002 à 23:39:03
benou a écrit a écrit : on est d'accord. mais il y en a. et plein ! dans les 3 premières pages de ce forum tu trouveras 2 topics qui parlent d'invocation dynamique et qui n'ont rien à voir avec RMI ... |
hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires
j'avais bien compris
Marsh Posté le 24-07-2002 à 23:44:00
SchnapsMann a écrit a écrit : ... |
C'est bien la peine que benou vienne donner un cours. Voilà donc les élèves de maintenant, toujours à raler... Sincèrement, benou, tes explications sont de plus en plus claires et précises, c'est vraiment un régal, pour qui veut se donner la peine de lire et de se laisser entraîner dans l'univers que tu tisses pour nous. Merci encore, tonton.
Marsh Posté le 24-07-2002 à 23:44:31
en relisant, je m'aperçoit que j'ai pas trop parlé de l'intérêt de l'invocation dynamique.
Il y a vraiment beaucoup d'exemple d'utilisation possible, je vais juste en siter quelques uns :
- aiguillage d'une application (applet par exemple) en fonction de la version de la JVM installée
- utilisation de classes développées après le programme principal (extensions des fonctionnalités d'un logiciel)
- intéraction avec un programme en cours d'execution (exemple : context 'manager' de tomcat)
- chargement et utilisation de classes en cours d'execution d'un programme (exemple : RMI)
- écriture de programme intégrant du scripting
- etc ...
Marsh Posté le 24-07-2002 à 23:46:26
SchnapsMann a écrit a écrit : hormis la beauté intrinsèque de l'invocation dynamique, le tout en utilisant un class loader pour charger des classes plugins de folie dans des applis java mo - du - laires j'avais bien compris |
mais c'est qu'il deviendrait presque pénible...
Marsh Posté le 24-07-2002 à 23:49:12
Cherrytree a écrit a écrit : Sincèrement, benou, tes explications sont de plus en plus claires et précises |
ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ...
C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ...
Marsh Posté le 25-07-2002 à 03:19:41
benou a écrit a écrit : ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ... C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ... |
Je te poserai les questions demain ou après demain, le temps que ça décante. J'ai l'impression d'avoir tout compris, tu sais.
Marsh Posté le 25-07-2002 à 08:43:55
benou a écrit a écrit : ouais ben moi j'ai pas trouvé que j'avais été très clair: je vous ai balancé un gros exemple bien compliqué et j'ai pas expliqué/détaillé grand chose ... C'est un sujet un peu vaste alors je préfère que vous posiez des questions si y a des trucs que vous avez pas bien pigé ... |
J'ai l'impression que l'invoquation dynamique n'offre pas de nouvelles possibilités, que c juste une manière plus jolie de faire les choses.
Parce que, par exemple, pr le contexte manager par exemple, il est tout autant possible d'invoquer "statiquement" les méthodes, après un aiguillage pas des if else.
Moins beau, je te l'accorde !
D'ailleurs je crois que mainetnant que g bien compris comment ça marche, je vais introduire ce mécanisme ds ma servlet...
Marsh Posté le 25-07-2002 à 09:02:11
benou >>>
Tu seras notre rédacteur de news sur le site
Marsh Posté le 25-07-2002 à 09:25:05
el_gringo a écrit a écrit : J'ai l'impression que l'invoquation dynamique n'offre pas de nouvelles possibilités, que c juste une manière plus jolie de faire les choses. Parce que, par exemple, pr le contexte manager par exemple, il est tout autant possible d'invoquer "statiquement" les méthodes, après un aiguillage pas des if else. Moins beau, je te l'accorde ! D'ailleurs je crois que mainetnant que g bien compris comment ça marche, je vais introduire ce mécanisme ds ma servlet... |
Sisi, ca offre énormément de nouvelle possibilités : tu ne peux pas toujours savoir au moment où tu écris du code le nom des Classes et des méthodes sur lesquels tu devras agir ...
par exemple, si tu prend le programpme que j'ai donné, je me sers d'une String comme objet sur lequel faire mes appels dynamique. c'est vrai que la opn aurait pu faire des gros if parce qu'on connait les méthodes de cet objet, mais j'aurais très bien pu au début du programme demander le nom d'une classe (n'iporte laquelle), crééer une instance de cette classe, et appaler des méthodes deçu. Ca tu ne peux pas le faire avec des if !
Marsh Posté le 25-07-2002 à 09:29:19
DarkLord a écrit a écrit : benou >>> Tu seras notre rédacteur de news sur le site |
ca marche !
Marsh Posté le 25-07-2002 à 09:44:40
Quel régal cette confiture !
Non sans dec', j'ai pas encore étudié le deuxième bout de code (le "gros" ), mais rien que ce t'expliques avant, on comprend tout ! Et ça m'a l'air trop puissant, je savais que ça existait, mais j'imaginais pas exactement comment le mettre en oeuvre, et on trouve pas beaucoup de doc. la-dessus
Merci et merci ! En plus, je pense qu'autour de moi, y en a d'autres que ça va interresser !
Je pense que je faire murir ton bout de code, le tourner dans tous les sens, et après ... j'espère que tu seras là pour répondre aux questions
Marsh Posté le 25-07-2002 à 10:08:33
benou a écrit a écrit : Sisi, ca offre énormément de nouvelle possibilités : tu ne peux pas toujours savoir au moment où tu écris du code le nom des Classes et des méthodes sur lesquels tu devras agir ... par exemple, si tu prend le programpme que j'ai donné, je me sers d'une String comme objet sur lequel faire mes appels dynamique. c'est vrai que la opn aurait pu faire des gros if parce qu'on connait les méthodes de cet objet, mais j'aurais très bien pu au début du programme demander le nom d'une classe (n'iporte laquelle), crééer une instance de cette classe, et appaler des méthodes deçu. Ca tu ne peux pas le faire avec des if ! |
Comme prof, en java, c vrai que c bien agréable de te lire.
Par contre, on va pas te demander des cours d'orthographe !
Marsh Posté le 25-07-2002 à 10:10:56
el_gringo a écrit a écrit : Comme prof, en java, c vrai que c bien agréable de te lire. Par contre, on va pas te demander des cours d'orthographe ! |
vaut mieux pas !!!
et puis bon, ca me fait chier de me relire : j'écris et je valide, alors entre les fautes de frappes et les fautes d'orthographes ...
Marsh Posté le 25-07-2002 à 10:18:13
benou a écrit a écrit :
|
Marsh Posté le 25-07-2002 à 10:35:13
Harkonnen a écrit a écrit : |
ca m'étonnait que personne l'ait vu ...
Marsh Posté le 25-07-2002 à 10:39:36
benou a écrit a écrit : ca m'étonnait que personne l'ait vu ... |
Bon assez rigolé !
Le site : vous faites comment finalement ?
qui héberge ?
en php ? qui s'y colle ?
l'habillage -> ok !
redaction ? reprise des topics du forum ?
specif., cahier des charges, planning ... et tout et tout !
allez allez, faut que ça tourne !
Marsh Posté le 25-07-2002 à 10:55:24
L'interface -> OK.
Si vous voulez on peut l'héberger sur mon compte free, vu que mon site prends pas énormément de place. Avec une redirection Ulimit, rulez. Il faudrait avoir le maximum de liberté, mais pour la beauté du geste, il faudrait éventuellement qu'à chaque article soit associé un relecteur, pour retravailler au moins l'orthographe (pour benou, ça me parait obligatoire, et ça ne me dérange pas d'être ton relecteur). Ensuite il faut savoir ce qu'on met dans le site :
- une JavaFAQ
- des articles
- Quoi d'autre ? (que voulez faire de ce site ?)
Quelle doit être l'esprit : sérieux ? franche camaraderie ? Humour string léopard (la croisière Java@HFR s'amuse) ? Chacun son style ?
Va t'il y avoir beaucoup d'articles. Si c'est un article par semaine, HTML me parait approprié : seulement une page à modifier et une à ajouter... Alors que PHP, faut gérer l'upload, surtout si on veut réaliser des textes accompagnés de graphiques, bref la merde, si on veut tout automatiser... Est-ce donc un bon choix ?
Voilà pèle-mèle les idées qui me tournent dans la tête.
Marsh Posté le 25-07-2002 à 10:55:52
Dans un premier temps, je propose les étapes suivantes:
Une fois qu'on a ces templates, je suggère que chaque personne rassemble ses expériences personnelles du forum ou hors forum et les rédige dans ces fameux templates et exit les zozos avec:
comment faire pour lancer un .bat depuis java
comment faire un .exe de mon prog Java
etc etc
On pourrait aussi faire un forumlaire ou l'internaute décrit son problème et on y répondrai + ajout dans la base du site.
Marsh Posté le 25-07-2002 à 10:57:57
Et ça vous dirait de faire la même chose pour .NET ou MFC ?
Marsh Posté le 25-07-2002 à 10:58:22
DarkLord a écrit a écrit : Dans un premier temps, je propose les étapes suivantes:
|
Euh d'accord avec tout le reste, mais ce dernier item ne vient pas en doublon du forum HFR, sur lequel on s'appuie ?
Marsh Posté le 25-07-2002 à 10:58:51
Harkonnen a écrit a écrit : Et ça vous dirait de faire la même chose pour .NET ou MFC ? |
Le faire non, mais le lire, volontiers !
Marsh Posté le 25-07-2002 à 11:03:43
Cherrytree a écrit a écrit : Euh d'accord avec tout le reste, mais ce dernier item ne vient pas en doublon du forum HFR, sur lequel on s'appuie ? |
Par forumlaire je voudrais obliger les gens à remplir les champs stacktrace et compagnie ...
Mais bon c'est assez vrai ce que tu dis. Laisons tomber
Marsh Posté le 25-07-2002 à 11:09:25
DarkLord a écrit a écrit : Par forumlaire je voudrais obliger les gens à remplir les champs stacktrace et compagnie ... Mais bon c'est assez vrai ce que tu dis. Laisons tomber |
Mieux vaut rédiger un article expliquant la résolution des problèmes (à la rapide) en éduquant le gusse pour qu'il pense à ajouter le stacktrace de lui-même.
Marsh Posté le 25-07-2002 à 11:11:22
Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ...
Je suis d'accord avec Cherytree : il ne faut pas faire de 2ème forum, sinon ça va être la merde ... :-/
EDIT : reformulation de mon posten langage compréhensible
Marsh Posté le 25-07-2002 à 11:33:58
bobuse a écrit a écrit : Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ... Je suis d'accord avec Cherrytree : il ne faut pas faire de 2ème forum, sinon ça va être la merde ... :-/ EDIT : reformulation de mon posten langage compréhensible |
(manquait un r : c'est pour antp -> spécial dédicasse ) Sinon, l'idées des classes utiles, ouais, c'est une bonne idée.
Marsh Posté le 25-07-2002 à 11:36:37
bobuse a écrit a écrit : Je pense que ça pourrait servir à déposer également des classes interressantes ou utiles, histoire de pouvoir recycler des trucs ... |
Entièrement d'accord : la FAQ devra s'accompagner d'exemples et de .java téléchargeables !
D'accord aussi pour éviter de faire un doublon avec ce forum : il faudrait que le site indique qu'on est près à répondre à toute question bien formulée sur le forum prog@HFR.
pour les rubriques :
- présentation du site (le but, les acteurs, infos sur prog@HFR)
- FAQ (les questions les plus posées sur le forum + réponses)
- Articles (des points précis abordés de façon détaillés)
- Utilitaires (les classes ou progs utils développés par les acteurs du site)
- questions (une page donannt l'adresse du forum avec les indications pour poster un "bon" post : stacktrace, code, etc)
ce serait déjà pas mal ca non ?
pour la technique, on peut faire du PHP pour factoriser le travail : des include pour les headers et le sommaire, mais je pense qu'il faut rester le plus simple possible : du HTML statique tout simlpe. Il faut qu'on puisse mettre à jour le site simplement en pushant des pages HTML en FTP ... ca sera plus simple opur tout le monde je pense ...
sinon, pour le correcteur, si je fais des articles, je ferrai un effort sur l'orthographe, ce que je fais pas ici ...
Marsh Posté le 25-07-2002 à 11:38:25
sinon, je pense qu'on peut faire comme sur ce forum : un site à la fois sympa à lire mais sérieux quand on aborde les points techniques
Marsh Posté le 25-07-2002 à 11:40:30
J'ai oublié : il faut aussi une rubrique "Liens" qui indique les bonnes adresses pour le Java,un peu à la façon du Post FAQ java de dark ...
et puis une rubrique "bouquins" ce serait sympa aussi ...
Marsh Posté le 25-07-2002 à 11:42:18
benou a écrit a écrit : pour les rubriques : - présentation du site (le but, les acteurs, infos sur prog@HFR) - FAQ (les questions les plus posées sur le forum + réponses) - Articles (des points précis abordés de façon détaillés) - Utilitaires (les classes ou progs utils développés par les acteurs du site) - questions (une page donannt l'adresse du forum avec les indications pour poster un "bon" post : stacktrace, code, etc) |
Je suis d'accord avec l'ensemble de ton post. Comme je vais essayer de proposer une belle interface, j'ai besoin de connaître les rubriques pour la navigation. Si tout le monde est d'accord sur celles ci-dessus, je commence le design ce soir (si tout se passe bien).
Marsh Posté le 25-07-2002 à 11:42:55
benou a écrit a écrit : J'ai oublié : il faut aussi une rubrique "Liens" qui indique les bonnes adresses pour le Java,un peu à la façon du Post FAQ java de dark ... et puis une rubrique "bouquins" ce serait sympa aussi ... |
OK.
Marsh Posté le 25-07-2002 à 12:04:37
bon c'est chez qui qu'il faut envoyer les adresses emails pour faire une ML ?
De là on distribue les responsabilités et on discute
Marsh Posté le 25-07-2002 à 12:06:18
DarkLord a écrit a écrit : bon c'est chez qui qu'il faut envoyer les adresses emails pour faire une ML ? De là on distribue les responsabilités et on discute |
Chez toi ?
Marsh Posté le 25-07-2002 à 12:10:26
fais peter (en MP)
Marsh Posté le 25-07-2002 à 12:41:18
J trouve ca chouette comme concepte mais en Java je ne vois pas réellement l'utilité. La seule application utile que je connaisse de java.lang.reflect.* c'est l'utilisation qu'est fait pour les beans (http://developer.java.sun.com/deve [...] ect00.html).
Et l'introspection est assez limité dans le sense que toutes les classes de java.lang.reflect.* sont final, donc pas de redéfinition possible.
Marsh Posté le 24-07-2002 à 23:02:43
sur la demande de CherryTree, aujourd'hui, on va parler de l'invocation dynamique : c'est quoi dont, comment ca marche et à quoi ca sert ?
Avant de parler d'unvocation dynamique, il faut déjà connaître l'introspection. L'introspection c'est le fait d'intéroger un objet sur sa nature. C'est à dire lui demander : à quoi tu ressemble ? qu'est ce que tu sais faire ? t'es de quel type ?
Ensuite, l'invocation dynamique, ca permet d'agir sur cette objet : "tu sais faire ca ? et ben très bien, fait le !" ou encore, "t'es de ce type là ? bon ben je voudrais bien un autre comme toi"
Exemple : on va écrire un programme qui liste les méthodes d'une objet
Ici, on a récupérer l'objet Class qui correspond au type de l'objet avec la méthode getClass(). Enuiste on peut faire plein de trucs à partir ce cet objet Class : demander quels sont les méthodes de la class, les attriuts, les constructeurs, etc ...
Dans l'exemple du dessus, on a demander à connaîtres ses méthodes : on a récupéré un t'ableau d'objets Method (java.lang.reflect.Method). Si on avait voulu, on aurait pu obtenir des informations sur cette méthode : ses modificateurs (public, privé, static final ?) ou la liste des ses paramètres, etc ...
dans l'exemple suivant, on va faire un programme un peu plus complexe : on va demander à l'utilisateur de choisir la méthode à executer sur sur un objet ...
Bon attention, c'est assez énorme ! et peut être un peu complexe, mais c'est un bon exemple de ce qu'on peut faire avec l'invocation dynamique.
Le plus simple c'est de faire un copier coller du code dans votre ide préféré ce sera plus simple à lire !
Je m'arrête là pour le moment (j'ai faim). Si vous avez des questions ou que vous voulez que j'aille plus loin dites le ...