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

avec Java Discussion :

Question C*# : qu'est ce qu'un framework?


Sujet :

avec Java

  1. #1
    Membre averti Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Points : 406
    Points
    406
    Par défaut Question C*# : qu'est ce qu'un framework?
    Bonjour à tous,

    Voilà quelques mois que j'ai commencé à utiliser java dans ma vie professionnelle. Partout(comprendre sur le forum) j'entends parler de ces "Frameworks", mais honnetement que sont-ils? Que vont-ils m'apporter? Sont-ils lourds à mettre en place? Et par ou commencer?

    Alors bien sur j'ai essayé de lire un peu les bases de Spring, Struts. Mais si vous pouviez m'éclaircir un peu la chose avant que je ne me jette corps et ame dans l'un d'eux(ou plusieurs?).

    "Créer la nouvelle discussion" avec un peu de gene.

  2. #2
    Membre éclairé Avatar de JoeChip
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    536
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 536
    Points : 803
    Points
    803

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur d'études J2EE
    Inscrit en
    Avril 2009
    Messages
    82
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Ingénieur d'études J2EE

    Informations forums :
    Inscription : Avril 2009
    Messages : 82
    Points : 99
    Points
    99
    Par défaut
    Je ne connaissais pas trop les framework avant de commencer à développer en J2EE. J'étais partisan du "code tout en dur" ! Quelle erreur !

    Les frameworks, c'est génial ! Quand tu te dis : "tiens, je ferais bien un système en Java qui permet d'accélérer la création des JSP, qui gère automatiquement les erreurs et qui respecte le pattern MVC !" => Inutile de te casser la tête à faire un truc pas terrible et non exhaustif parce que des types ont déjà développé Struts ou les JSF

    Quand tu te dis : "tiens, j'en ai marre d'instancier à la main tous mes singletons et de mettre au début de chacune de mes méthodes toujours le même code de logger ! Je ferai bien un truc pour accélérer ça !" => Inutile de te casser la tête à faire un truc pas terrible et non exhaustif parce que des types ont déjà développé Spring ou le AspectJ

    Bref, les framework font souvent gagner un temps considérable dans le développement d'une application. Il faut toutefois les utiliser avec parcimonie...

    Enfin voilà... Mais c'est mon humble avis

  4. #4
    Membre averti Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Points : 406
    Points
    406
    Par défaut
    Merci DaveRidic.

    Est ce que l'utilisation d'un framework d'impose un certain style de programmation? Est-il compatible avec toutes les APIS?

    Pour ma part je travaille essentiellement sur des applications web/entreprise. Quel(s) Framework(s) me conseillerais tu?

  5. #5
    Membre averti Avatar de Drakiss
    Homme Profil pro
    Consultant MOE
    Inscrit en
    Octobre 2010
    Messages
    185
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Consultant MOE
    Secteur : Finance

    Informations forums :
    Inscription : Octobre 2010
    Messages : 185
    Points : 435
    Points
    435
    Par défaut
    Citation Envoyé par coshibe Voir le message
    Est ce que l'utilisation d'un framework d'impose un certain style de programmation? Est-il compatible avec toutes les APIS?
    Oui un Framework ou littéralement cadre de travail, te soumet à suivre ce cadre, mais en général ce "style de programmation" est une bonne chose et permet à plusieurs personnes travaillant sur le même projet d'avoir la même vision des choses, et d'avancer plus rapidement sans chercher à comprendre pourquoi X à fait sa méthode comme ça, ou que Y à essayé de surcharger un truc qui sert à rien...
    Un Framework est un ensemble d'API et donc peuvent être "compatible" entre eux à condition qu'il ne fassent pas la même chose.
    Typiquement tu va pas mettre l'API JDBC et Hibernate en même temps puisque les deux font de la persistance...

    Citation Envoyé par coshibe Voir le message
    Pour ma part je travaille essentiellement sur des applications web/entreprise. Quel(s) Framework(s) me conseillerais tu?
    Si c'est à toi de prendre la décision de quel framework utiliser, je te conseille ceux qui suivent car pour ma part je bosse avec :
    -spring,
    -struts (qui pour moi sont des classique obligatoire dans toute application JEE)
    et je commence le gwt-p (passage du MVC au MVP un peu ardu dans mon cerveau pour le moment, et manque de documentation).

  6. #6
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    en programmation, un framework c'est une boite à outils. Chaque outil permet de faire certaines choses mais amène certaines contraintes. Un marteau t'imposera d'utiliser des clou, un tounevis, des vis à la bonne taille, etc.

    De la même manière, spring va t'imposer certaines règles pour te faciliter certaines opération, hibernate d'autres règles pour d'autres besoins, etc.

    Un framework n'est pas "compatible avec tout", il est compatible avec tout ce qui ne viole pas ses règles

    Ainsi, hibernate marchera avec une base de données JDBC, mais pas avec une base no-sql. Spring peux instancier tes objets, mais ne peux pas prendre le controle d'objets d'une autre api instanciés à l'intérieur de ladite api.

    JSF va exige que tu respecte le cycle de vie JSF. Vaadin, va exiger une application évènementielle avec code coté serveur. Le deux peuvent tourner en parallèle mais pas sur la même requete. Pareil avec struts /JSF

  7. #7
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Points : 15 059
    Points
    15 059
    Par défaut
    Bonjour,

    Citation Envoyé par DaveRidic Voir le message
    Je ne connaissais pas trop les framework avant de commencer à développer en J2EE. J'étais partisan du "code tout en dur" ! Quelle erreur !

    Les frameworks, c'est génial ! Quand tu te dis : "tiens, je ferais bien un système en Java qui permet d'accélérer la création des JSP, qui gère automatiquement les erreurs et qui respecte le pattern MVC !" => Inutile de te casser la tête à faire un truc pas terrible et non exhaustif parce que des types ont déjà développé Struts ou les JSF

    Quand tu te dis : "tiens, j'en ai marre d'instancier à la main tous mes singletons et de mettre au début de chacune de mes méthodes toujours le même code de logger ! Je ferai bien un truc pour accélérer ça !" => Inutile de te casser la tête à faire un truc pas terrible et non exhaustif parce que des types ont déjà développé Spring ou le AspectJ

    Bref, les framework font souvent gagner un temps considérable dans le développement d'une application. Il faut toutefois les utiliser avec parcimonie...

    Enfin voilà... Mais c'est mon humble avis
    Je ne suis pas trop de cet avis. Pour l'apprentissage, mieux vaut apprendre les bases et coder soit même. C'est quant on arrive à comprendre les fonctionnements, c'est là qu'on passe à l'utilisation des Frameworks pour faciliter les tâches.
    Des fois l'utilisations des frameworks sont trop abusives (usine à gaz). Je parle de façon général mais pas seulement du coté Java.

    A+.

  8. #8
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Alors, il y a des fois où l'utilisation d'un framework prend plus de temps, à apprendre et/ou à comprendre, que de se coder directement le truc. Je pense à un singleton par exemple. Toutefois, dans un projet, c'est la somme de ces petites utilisations qui est importante et qui justifie l'emploi du-dit framework. Là je parle des petites fonctionnalités. Evidemment, il y a des frameworks comme Struts qui sont tellement pratique et qui font gagner tant de temps qu'on a envie de les utiliser même sur les petits projets.

    Pour ce qui est de l'apprentissage, je dirais que c'est bien que les étudiants commencent par les bases, sans utiliser de framework. Et quand ils maîtrisent les basiques, on leur montre qu'il existe des framework qui font deja tout le boulot, et souvent qui savent faire plein de choses en plus, et bien mieux que ce qu'aurait pu écrire le développeur lambda.

    Je pense par exemple à mes élèves à qui je montre comment lire des fichiers CSV (cf. article sur dvp), ce qui impose de gérer des listes, traiter des buffers, des fichiers, des streams, etc. Et puis quand les bases sont acquises, ils découvrent des problèmes de multithreading, de grosses volumétries, de performances, etc. Et là on passe à des frameworks comme open-csv qui s'occupent de tout et qui le font bien.

  9. #9
    Membre averti Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Points : 406
    Points
    406
    Par défaut
    Merci à tous pour toutes vos réponses. si d'autres veulent ajouter leur avis n'hésitez pas, je ne compte pas mettre ce topic en résolu avant d'avoir fait un choix.

    J'aimerai que vous m'éclaircissiez également sur un autre point, j'ai cru lire qu'un EJB pouvait etre utiliser de la même manière qu'un framework, est ce vrai? est ce absurde? Comment utilise-t-on un EJB?

    Ensuite la plupart d'entre vous font la distinction entre petits et gros projets, apparemment vous semblez unanimes pour dire que lorsque le projet est trop peu conséquent ça ne vaut pas la peine d'utiliser un framework. Mais qu'est ce que c'est un gros projet pour vous?

    Merci à tous pour vos conseils.

  10. #10
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Rhoooo, grosse question là.

    Pour moi, un gros projet, c'est au moins 5 personnes sur 12 mois.

    Où se situe la limite ? J'ai fais des projets de 2 ans avec 75 personnes. Là on peut dire que c'est gros. Je fais aussi plusieurs petits projets en parallèle, avec une équipe réduite à deux membres durant quelques mois, et même pas à temps plein. Là c'est du petit projet.

  11. #11
    Membre averti Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Points : 406
    Points
    406
    Par défaut
    Je commence à me dire que c'est magique un framework^^

    Par exemple actuellement pour toutes les applications que je fait, j'ai une JSP, une classe ecran contenant diverse informations pour faire le lien entre formulaire et servlet, une servlet. A l'aide d'un framework je pourrai automatiquement générer ces 3 fichiers(ou du moins leur trame?). En fait je suis sur qu'il doit etre possible de créer un framework pour faire ca... Ils sont ou les tutos??????? Très sérieusement je ne sais pas quoi chercher pour ce que je veux faire.

  12. #12
    Rédacteur
    Avatar de thierryler
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    4 078
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 078
    Points : 12 815
    Points
    12 815
    Par défaut
    Et tu veux faire quoi ?

  13. #13
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Points : 48 807
    Points
    48 807
    Par défaut
    faut que t'arrête de penser framework pour commencer. Un framework = une libirairies = une solution pour résoudre un problème courant. Tu dois donc réfléchir non pas "quand dois-je utiliser un framework?" mais plutot "j'ai un besoin précis X, est-ce que ça vaut le coup d'utiliser Y pour le résoudre?"

  14. #14
    Modérateur

    Avatar de Robin56
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Juin 2009
    Messages
    5 297
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Architecte de système d'information

    Informations forums :
    Inscription : Juin 2009
    Messages : 5 297
    Points : 13 670
    Points
    13 670
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    faut que t'arrête de penser framework pour commencer. Un framework = une libirairies = une solution pour résoudre un problème courant. Tu dois donc réfléchir non pas "quand dois-je utiliser un framework?" mais plutot "j'ai un besoin précis X, est-ce que ça vaut le coup d'utiliser Y pour le résoudre?"
    Totalement sinon tu risques justement de comparer le Java à un plat de spaghetti.

    Citation Envoyé par coshibe
    Je commence à me dire que c'est magique un framework^^
    Il ne faut mieux pas, enfin, il faut cerner ce qu'apporte ton framework. Sinon tu risques de ne pas pouvoir te plonger dedans à la moindre modification à apporter.

  15. #15
    Membre averti Avatar de coshibe
    Homme Profil pro
    Développeur Java
    Inscrit en
    Septembre 2011
    Messages
    183
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur Java
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 183
    Points : 406
    Points
    406
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    faut que t'arrête de penser framework pour commencer. Un framework = une libirairies = une solution pour résoudre un problème courant. Tu dois donc réfléchir non pas "quand dois-je utiliser un framework?" mais plutot "j'ai un besoin précis X, est-ce que ça vaut le coup d'utiliser Y pour le résoudre?"
    Donc avant toute chose j'ai intérêt à lire la documentation d'un framework pour mieux comprendre dans quoi je me lance. Je vais lire la doc de struts et ensuite je reviendrai avec une armée de questions beaucoup moins vagues.

    Merci pour votre aide.

Discussions similaires

  1. [XNA] Question bête : où est le designer ?
    Par Daikyo dans le forum XNA/Monogame
    Réponses: 3
    Dernier message: 21/04/2008, 21h38
  2. Qu'est-ce que le framework spring ?
    Par jimi154 dans le forum Spring
    Réponses: 2
    Dernier message: 28/08/2007, 00h07
  3. C'est quoi delphi.net, framework ?
    Par maamar1979 dans le forum Delphi .NET
    Réponses: 2
    Dernier message: 31/05/2006, 08h57
  4. [Concept][Définition] Qu'est ce qu'un framework
    Par nighthammer dans le forum Général Java
    Réponses: 2
    Dernier message: 16/03/2006, 13h15
  5. [question bete] qu'est-ce qu'un handle?
    Par hansaplast dans le forum C++
    Réponses: 10
    Dernier message: 28/12/2005, 13h02

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