46 votes

Rendre la vie meilleure en n'utilisant pas les frameworks Web Java?

Je suis tellement fatigué d'avoir à apprendre encore un autre framework web Java tous les autres jours.
JSP, Struts, Wicket, JSF, JBoss Seam, Spring MVC, pour ne citer que quelques - tout cela d'innombrables cadres de là essayer de répondre aux mêmes questions. Cependant, aucun d'eux ne résout vraiment le problème fondamental, c'est pourquoi il y a encore à venir de plus en plus de nouvelles tout le temps.

La plupart semblent très lumineux et brillant sur la première impression, car ils simplifient faisant des choses simples.
Mais dès qu'il s'agit de la mise en œuvre d'une utilisation dans le monde réel de cas est en cours d'exécution dans des problèmes.
Souvent, les cadres ne fournit pas d'aide, mais entravent l'un et en limitant les options en forçant les choses à être mis en œuvre selon les cadres de la logique et de l'environnement.

En bref, je vois les inconvénients suivants lors de l'utilisation d'un framework:

  1. Il est la plupart du temps une courbe d'apprentissage abrupte et vous devez d'abord comprendre parfois assez de concepts théoriques et de savoir la signification et l'emplacement d'un tas de fichiers de configuration avant de commencer.
  2. La documentation est généralement plus ou moins terrible, manque un public accessible en ligne de référence, est impuissant obsolète, confond les différentes versions incompatibles ou tout cela ensemble et souvent ne fournissent pas tous des exemples utiles.
  3. Le cadre se composent de zillions de cours, ce qui fait qu'il est pratiquement impossible de comprendre l'utilisation prévue seulement en naviguant parmi les sources.
  4. Par conséquent, vous devez acheter certains "XYZ en action pour les nuls en 21 jours" genre de livres qui ont une mauvaise interface utilisateur parce qu'il y manque une recherche en plein texte et sont lourds à transporter.
  5. Pour utiliser un de ces cadres vous avez besoin d'apprendre par cœur la façon dont les choses peuvent être fait de la façon dont le cadre exige, en se rappelant de manière adéquate les classes et les noms de méthode jusqu'à ce que votre tête est complètement stupide et inutile que vous ne pouvez pas l'utiliser pour autre chose.
  6. Il y a une grosse surcharge, ce qui ralentit les performances de vos applications et de faire de votre cerveau en état de torpeur lorsque vous essayez de comprendre ce qui se passe vraiment.
  7. Dans le monde réel il n'y a généralement pas le temps de se familiariser avec quelque chose de nouveau à cause de la pression de la productivité. En conséquence de cet apprentissage par la pratique approche, on regarde toujours seulement pour le moyen le plus rapide pour obtenir la prochaine tâche plutôt que de vraiment comprendre le nouvel outil de possibilités.
  8. L'argument qui, à la suite d'une norme serait de permettre aux gens qui sont nouveaux à un projet pour démarrer rapidement n'est pas valable à mon avis, car chaque projet utilise un cadre différent, même au sein de la même entreprise (au moins dans mon cas).

Il me semble que la citation d'Albert Einstein s'adapte très bien ici:

"Nous ne pouvons pas résoudre les problèmes en utilisant le même type de pensée que nous avons utilisé lorsque nous avons créé."

De retour dans mon bon vieux PHP codage jours lors du codage était toujours amusant et productif, j'ai utilisé pour écrire mes propres cadres pour la plupart des choses et il suffit de copier-coller et adopté un projet à l'autre.
Cette approche a payé très bien, résultant dans le développement rapide, pas de frais généraux à tous et un cadre qui, en fait, était plus puissant que la plupart des Java cadres de là, mais avec seulement quelques centaines de lignes de code dans un seul fichier plus quelques simples règles de mod_rewrite.
Ce n'était certes pas résoudre tous les problèmes de développement web, mais il est simple, rapide et droit au but.
Bien que parfaitement adaptée aux exigences du projet en cours, c'était aussi facile extensible et avait une très haute performance en raison de zéro frais généraux.

Alors pourquoi cette dispute avec l'aide de ce cadres, pourquoi ne pas les jeter tout de suite et en remontant aux racines?
Que dois-je dire à mon patron quand nous sommes à partir de demain le projet suivant avec un nouveau cadre nouveau?
Ou il y en a peut-être des cadres qui font vraiment la différence?
Ou cachées des avantages que j'ai ignoré?

35voto

Michael Borgwardt Points 181658

De retour dans ma bonne vieille de programmation PHP les jours lors du codage était toujours amusant et productif, j'ai utilisé pour écrire mon propre cadres pour la plupart des choses et tout copie-collé et adopté un projet à l'autre. Cette approche payé très bien, résultant en rapide de développement, pas de frais généraux à tous et un cadre qui, en fait, était plus puissant de plus Java cadres de là

Pardonnez-moi de croire que pas une seconde.

mais avec seulement quelques centaines de lignes de code dans un seul fichier plus simple les règles de mod_rewrite. C'est certainement n'était pas résoudre tous les problèmes de web du développement, mais c'était simple, rapide et droit au but.

Donc, fondamentalement, vous avez développé votre propre cadre de référence au cours des mois ou des années, adaptés à vos propres besoins, et pourrait très vite avec elle parce que vous la connaissiez intimement.

Et pourtant, vous ne pouvez pas comprendre pourquoi les autres à faire de même et puis essayer de transformer le résultat en quelque chose d'utilisable par tout le monde?

Où est ce grand cadre, vous avez développé? Si il est si puissant et facile à utiliser, où sont les communautés dédiées, des milliers d'utilisateurs et des centaines de sites développés avec elle?

chaque projet utilise un autre même au sein de la même entreprise (au moins dans mon cas)

Eh bien, c'est votre problème. Pourquoi voudriez-vous jeter l'expertise acquise avec chaque cadre après chaque projet?

L'idée est de choisir un cadre et le bâton avec lui sur plusieurs projets, de sorte que vous obtenez la maîtrise. Vous devez investir du temps pour apprendre à le cadre, puis il vous fait gagner du temps en vous permettant de travailler sur un niveau plus élevé.

20voto

Martin OConnor Points 1877

Le problème avec la création de votre propre cadre est que vous allez faire toutes les erreurs que tous les cadres établis ont déjà trébuché et résolues. Cela est particulièrement vrai en matière de sécurité.

Demandez simplement à Jeff et aux gars de ce qu’ils doivent prendre en compte lors de l’implémentation des ADM dans le dépassement de capacité. Je préférerais utiliser ce qu'ils ont produit dans un projet plutôt que de le mettre en œuvre à partir de zéro. Ce n'est qu'un exemple.

12voto

dankoliver Points 372

Voici une citation de Kev de fil Quel est votre plus controversés de la programmation de l'opinion? qui fit à vraiment bien ici:

Je pense que l'ensemble de "l'Entreprise" cadres chose, c'est de la fumée et des miroirs. J2EE, .NET, la majorité de l'Apache cadres et la plupart des abstractions de gérer ce genre de choses à créer beaucoup plus de complexité qu'ils n'en résolvent.

Prendre toute réguliers ou Java .NET OMR, ou de toute soi-disant moderne framework MVC pour qui ne "magique" pour résoudre fastidieux, des tâches simples. Vous finissez par écrire d'énormes quantités de XML standard qui est difficile à valider et à écrire plus rapidement. Vous avez massive de l'Api de la moitié de ceux qui sont juste à intégrer le travail des autres Api, interfaces qui sont impossibles à recycler, et les classes abstraites qui ne sont nécessaires que pour surmonter le manque de souplesse de Java et C#. Nous n'avons simplement pas besoin de plus.

Comment sur tous les serveurs d'applications différentes avec leurs propres sacrément descripteur de la syntaxe, de la trop grande complexité de la base de données de travail collaboratif et de produits?

Le point de ce qui n'est pas la complexité==mauvais, c'est que la complexité inutile==mauvais. J'ai travaillé dans de grandes installations d'entreprise où certains de il était nécessaire, mais même dans la plupart des cas, un peu de la maison-grandi scripts et une simple interface web est tout ce qui est nécessaire pour résoudre la plupart des cas d'utilisation.

J'allais essayer de remplacer l'ensemble de ces enterprisey applications avec de simples frameworks web, open source DBs insignifiantes, et des constructions de programmation.

9voto

toolkit Points 27248

Donc, vous dites qu'on devrait traiter dans les supports et HTTP à chaque fois, nous voulons construire une application web!

Le conteneur de servlet lui-même peut être considéré comme un cadre, car il gère tout ce genre de détails, et vous laisse à écrire beaucoup plus simple de Servlets/Filtres/Auditeurs (c'est à dire: "extensions" du cadre spécifique de votre application).

Tous tout cadre essaie de faire est de séparer banal, répétitif, sujettes à l'erreur, le code du travail sur le terrain à partir de l'amusement spécifique à l'application du code.

Cependant, pour une petite application, vous pouvez vous en sortir avec tout simplement d'avoir un Modèle MVC 2 approche qui utilise uniquement les pages Jsp et les Servlets.

Exemple:

class MyController extends HttpServlet {
    public void doGet(HttpServletRequest request, HttpServletResponse response) throws ... {
        MyBean model = // do something
        request.setAttribute("model", model);
        request.getRequestDispatcher("/view.jsp").forward(request, response);
    }
}

Alors que votre application devient de plus en plus sophistiqué, vous pouvez rechercher à l'aide de Spring MVC pour fournir un couplage lâche (et donc plus souple), de contrôleurs, d'afficher des résolveurs etc..

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X