Est-il judicieux d’utiliser un cadre pour une application Web Java simple?

J’ai beaucoup travaillé sur le développement Web java à l’aide de jsps et de servlets, et j’ai trouvé cette approche simple et flexible. Cependant, certains travaux préparatoires, tels que la gestion des connexions à une firebase database, sont plutôt fastidieux et il faut beaucoup de travail simplement pour lancer une nouvelle application Web.

J’envisage donc d’utiliser un framework pour la première fois, mais mon impression est que ceux-ci sont principalement utilisés pour les applications J2EE volumineuses et impliquent de nombreuses configurations complexes. Ce que je recherche, c’est quelque chose de simple qui (après la courbe d’apprentissage initiale) me permettra d’être opérationnel avec une nouvelle application Web aussi rapidement que possible.

Ma question est donc la suivante: est-il judicieux d’utiliser un cadre pour une application Web Java simple?

Notez que je ne demande pas quel framework utiliser (si un framework est recommandé), comme cela a déjà été demandé ici .

Cela fait beaucoup de sens. Mon équipe a passé presque cinq ans avec notre stack open source et peu importe, et nous avons un projet “source” (qui ressemble à appfuse) que nous utilisons pour créer toutes les nouvelles applications Web. Même les deux simples pagers du pov de maintenance de l’application, il ressemble à toutes les autres applications, juste plus petit.

En bref, vous ne recevrez pas de retour sur investissement pour le moment, mais vous en tiendrez compte de l’évolution du projet et de son maintien.

Si vous n’utilisez pas de framework web, vous finirez généralement par en écrire un – de manière médiocre.

Oui, j’utiliserais un framework web pour les raisons suivantes:

  1. Augmentation des capacités et des contrôles de navigation. Même si vous n’en avez peut-être pas besoin, ils sont à votre disposition si vous en avez besoin à tout moment.
  2. Comme d’autres l’ont indiqué, les applications se développent avec le temps et vous ressentirez le besoin de ce cadre à un moment donné dans le futur. Lorsque vous devez append des pages et une navigation supplémentaires
  3. Fonctionnalités vous permettant de vous connecter à d’autres infrastructures telles que les infrastructures de sécurité et d’access à la firebase database. Le spring est un exemple typique dans le monde Java. Vous ne devez jamais utiliser Spring, mais il se twig si bien avec Struts, Spring MVC, Hibernate, Acegi, etc. Il vous évite d’avoir à vous soucier de la plomberie.
  4. Soutien!!! Les bonnes structures ont presque toujours une communauté dynamic pour les soutenir et poser des questions.

Cela peut sembler trop compliqué au départ, mais vous permet de gagner beaucoup de temps à l’avenir.

Je dirais que le cadre dans lequel vous vous dirigez compte beaucoup. Quelque chose comme Spring MVC est assez discret dans votre code et vous permet d’exécuter beaucoup de choses existantes. D’autres frameworks ont des idées beaucoup plus spécifiques sur la façon dont vous devriez faire les choses.

Oui, cela a du sens. Les applications peuvent évoluer et changer et peuvent nécessiter quelque chose qu’un framework peut fournir facilement à l’avenir.

Par exemple, sur mon lieu de travail, nous avons une application simple jsp / servlet. Il doit être réécrit juste à cause de ce que j’ai expliqué ci-dessus. Si quelqu’un avait pris le temps de simplement configurer le cadre, nous serions mieux aujourd’hui.

Oui c’est logique. Cependant, votre question implique implicitement que le mauvais cadre (pour vous) peut être plus pénible qu’il ne vaut la peine – et c’est vrai. Il existe un monde de différences entre un cadre J2EE lourd et quelque chose de léger et de gai comme le grail.

Quelle est l’alternative? Rouler les vôtres? Intégrer toute la navigation et la logique dans les JSP?

Je suis d’accord avec ceux qui disent qu’un framework web en vaut la peine. Il y en a littéralement des centaines maintenant (par exemple, Struts, JSF, Spring, Wicket, etc.). Choisissez celui qui vous convient.

Il existe deux types d’applications:

1) le type que vous jetez et n’utilisez plus jamais, et ne devrait donc pas vous préoccuper de la modularité, de la maintenabilité et de la clarté.

2) le vrai genre.

Il peut parfois sembler que votre application n’a jamais besoin de se développer, de s’agrandir ou de desservir un ensemble de fonctionnalités / base d’utilisateurs plus vaste que celui que vous envisagez actuellement … Je vous assure que cette perception est toujours erronée.

Les frameworks, en particulier Struts pour MVC en Java, Spring pour MVC et Dependency Injection, Hibernate pour la modélisation relation-object sont tous des outils extrêmement précieux pour la modularité, la maintenabilité et la clarté du code. Donc, pour répondre à votre question initiale … Oui, catégoriquement.

Non ce n’est pas sauf si:

  1. vous n’avez aucune expérience Java dans votre équipe
  2. vous faites juste un prototype qui doit être prêt en quelques heures
  3. vous ne faites pas assez confiance à vos développeurs pour les laisser écrire votre application
  4. vous ne prévoyez pas laisser vos développeurs apprendre et améliorer

Les dangers liés à l’utilisation des frameworks incluent, mais ne se limitent pas à:

  1. vous aurez tous les défauts du framework par vous-même
  2. vous serez incapable de faire des estimations réalistes jusqu’à ce que vous connaissez parfaitement le cadre
  3. votre équipe n’apprendra pas comment programmer un serveur Web
  4. Votre équipe passera de plus en plus de temps sur Google à résoudre des problèmes en écrivant du code.

La seule chose qui soit pire que de choisir un framework open source, c’est d’avoir une équipe de R & D distincte dans l’entreprise qui devrait créer le “gros framework complet d’entreprise ultime”.

mais mon impression des frameworks est qu’ils sont principalement utilisés pour de grandes applications J2EE et impliquent beaucoup de configuration complexe

Pas nécessairement vrai. Les bons frameworks sont conçus pour évoluer correctement et vous permettre de passer des petites applications aux très grandes applications. Aujourd’hui, de nombreux frameworks s’orientent vers une configuration zéro, vous les trouverez ainsi plus faciles et plus faciles à utiliser.

Vous avez raison, il faut un effort initial pour apprendre le framework lui-même, mais cet investissement est rentable dès la première application que vous développez. Et les méta-frameworks tels qu’AppFuse facilitent la mise en route, car ils préconfigurent les frameworks pour vous.

Les frameworks ont du sens pour la plupart des applications. Vous devrez peut-être créer votre propre cadre ou en adopter un autre. La question la plus importante est la granularité de vos structures de données. Ce que je veux dire par là, est-il nécessaire de simplement saisir des données ou d’parsingr, de comstackr et d’exécuter du code dynamic?

Si vous pensez qu’un cadre fonctionne comme une jauge et qu’à gauche se trouve un travail de cadre existant, open source ou fermé, et à droite, tout un cadre personnalisé, super imposez votre code par-dessus ce travail lorsque le niveau de complexité augmente à droite. Plus vous allez à droite, plus vous aurez de conflit avec le travail sur châssis (IMO).

Cependant, vous pouvez également migrer lentement d’un framework existant vers un framework personnalisé.

Il y a aussi la question sur votre entreprise. Si vous travaillez pour une entreprise qui ne considère pas le logiciel comme une compétence essentielle telle qu’une banque ou un hôpital, vous devez en tenir compte dans la mesure du cadre que vous souhaitez créer.

En bout de ligne, un cadre d’un certain type sera toujours utile.

L’utilisation d’une structure peut append des frais généraux au développement de votre application Web en raison de la courbe d’apprentissage. Toutefois, selon le cadre que vous choisissez, vous pourrez peut-être bénéficier des avantages suivants:

  1. L’évolutivité
  2. Maintenabilité
  3. Division claire de votre modèle (par exemple, MVC)
  4. Composants prêts à l’emploi (gestion de session, authentification, etc.)
  5. Plugins tiers
  6. Modularité héritée du framework
  7. Beaucoup d’autres.

En outre, la courbe d’apprentissage est un facteur variable. Certains frameworks peuvent être plus faciles à apprendre que d’autres en fonction de vos compétences.

Il est tout à fait logique d’envisager d’utiliser un cadre, même si ce n’est pas pour rien que cela vous donnera un nouveau domaine de connaissances. Si vous avez le temps d’investir dans l’apprentissage d’un framework, vous constaterez peut-être avec le temps qu’il est plus facile et plus rapide de l’utiliser pour de nouveaux projets, aussi simples soient-ils.

Aussi, si je pouvais voter pour le poste de SamBeran, alors je le ferais. Commencer avec un framework impliquera plusieurs moments de “oh super! Je n’ai pas besoin d’écrire à nouveau tout ce bricolage!”.

Je dirais en utiliser un – comme vous l’avez dit, il est assez fastidieux de lancer des choses pour même une simple application web Java. Si le cadre vous aide à faire le travail plus rapidement et à fournir les services dont vous avez besoin, je dirais que c’est logique.