Comment je peux savoir quel est le meilleur Framework web pour mon projet?
Aujourd'hui, presque tous les projets de développement ont une interface web comme partie intégrante du produit. Ce n'est pas un défi si nous avons une équipe qui a travaillé avec de tels projets. Mais qu'advient-il si l'ordinateur n'a pas d'expérience en développement d'applications Web?
Par exemple, vient du monde de l'entreprise, avec des années d'expérience dans le système des clients moyennes et grandes entreprises fait avec des cadres tels que Swing GUI.
Dans un premier temps sous-estiment probablement le monde du web est de penser que tout est un jeu d'enfant que n'importe qui peut le faire par l'embauche d'un designer web de nos problèmes seront résolus. Mais évidemment, vous avez tort et dès qu'il a commencé à étudier les bases sont un certain nombre de concepts tels que la manipulation n'est pas moins session, AJAX, CSS, XSS, SQL-Inyection il faut comprendre avant de pouvoir faire n'importe quel système.
Une fois que nous avons terminé l'étude de ces concepts et nous nous tournons de se sentir sûr de commencer alors seulement que notre problème commence. À ce moment, c'est quand la grande question se pose Que framework web (FW) est celui que j'utilise pour mes projets?
Un couple d'années cela aurait été un problème, la réponse aurait probablement été si nous travaillons en Java, Struts. Mais aujourd'hui cela a changé parce que pour Java sur la page http://java-source.net/open-source/web-frameworks peut trouver plus de 40 cadres, dans lequel celui que j'utilise est pas. Sans oublier si l'on considère FW des différents langages de programmation tels que Ruby, Python, PHP et. Net. Alors, comment pouvons-nous répondre à cette question aujourd'hui?
Ensuite, je vais définir ce que sont les facteurs AMHA que j'ai utilisé pour répondre à cette question qui peut être utile à d'autres face à une situation similaire. Nous supposons que nous avons une équipe de développement ayant une expertise dans un langage particulier qui nous convertir à l'élaboration d'applications Web. Certains des points soulevés n'ont pas de sens par exemple pour un développeur indépendant ou si vous mettez sur pied une équipe à partir de zéro. Lorsque vous travaillez avec une équipe déjà formée pour tenir compte des facteurs ne sont pas directement dépendants de la technologie qui permet de déterminer le meilleur FW dans le monde, pas le meilleur choix, ce qui rend la solution du voisin n'est pas toujours la bonne solution pour un. C'est pourquoi nous devons être prudents avec nos pairs lors de vos meilleures intentions, nous recommandons "FW" et ils ne savent probablement pas le contexte dans lequel vous utilisez. Enfin nous devons être réalistes et nous savons que probablement la fin du processus de sélection plus d'un FW qui peuvent être utilisées et la définition sera finalement une question de préférence avec un degré d'incertitude. La réponse finale saura seulement après avoir été avancés dans le premier projet et peut faire des erreurs et doit reconsidérer sa décision. Pour cette raison il est important de choisir comme l'expérience du projet non critique d'abord.
Les points alors je ne vais pas nommer une commande spéciale.
Points à considérer lors du choix de FW
La connaissance de l'informatique
Il est essentiel d'évaluer où l'équipe est à l'aise de travailler avec. C'est si j'ai toutes les programmeurs Java probablement mieux de trouver un FW de Java de cette manière, l'équipe peut apprendre rapidement le FW et ne pas avoir à perdre du temps à étudier les détails d'une autre langue. D'autre part FW Il ya de bonnes presque toutes les langues de sorte qu'il ne devrait pas être un problème à résoudre ce problème. L'exception à cette règle serait le cas si nous travaillons avec la langue dépassées comme Cobol ou Clipper. Mais ici nous sommes confrontés à un problème majeur est une mise à niveau technologique des systèmes.
Avons-nous besoin de quelque chose qui ne résout que la soumission ou la nécessité de travailler sur toutes les couches?
Il est important de déterminer quel degré de liberté quand nous choisissons. Autrement dit, il s'agit d'une affaire dans laquelle nous avons armé le système et que nous ne devrions donner ou de présentation web est une affaire dans laquelle nous pouvons choisir de la façon de présenter les données sous forme de persister. En fonction de ce nous sommes d'accord d'utiliser quelque chose que toutes nos solutions exigences ou simplement se concentrer sur ce que nous devons résoudre est de la présentation Web. Sur cette base, nous pouvons diviser le FW divisés en deux groupes et donc pas être exclu de notre intérêt. Les groupes sont:
Cadres pile pleine
Sont ceux avec une solution complète allant de la couche de présentation à la couche de persistance de l'information. Les plus récents sont basés sur le modèle MVC. Quelques exemples de ces sommes:
- Rails en rubis et on peut dire que c'est la star du moment
- Groovy Grails
- Php CakePHP
- Spring Roo et Java SEAM
- Python Django
Détaillez chacun n'est pas notre intention de simplement me limiter à commenter que la plupart sont basées sur les principes de la CdC (convention plutôt que configuration), sec (ne pas Repeat Yourself) et que sa composition de base se compose d'un processeur pour les modèles conception de vue (qui génèrent des pages dynamiques), un répartiteur que suite à certaines conventions HttpRequests décide d'envoyer la demande de service. Pour gérer les données ont un framework ORM qui fournit la construction des requêtes dynamiques et un certain nombre de fonctionnalités qui simplifient le travail.
Exposition individuelle:
Ce sont ceux qui sont orientés uniquement à la couche présentation.
Des exemples de ce type sont:
- GWT-trousse à outils Google Web, qui génère un JavaScript à 100% mais qui est programmé en Java
- JSF: Java Server Faces est le cadre des composants de Java officiels
- ASP.NET: c'est l'option au sein de Microsoft
Soutien (communauté, fabricant, des livres, la certification, les perspectives d'avenir)
Un point important, en particulier dans les projets de système d'exploitation est de voir la communauté autour du framework est utilisé. Il est important d'étudier si il ya une société qui investit des ressources dans le développement de produit ou est simplement et uniquement dictées par la communauté. Dans ce dernier cas, c'est quand "la taille importe" et selon la taille de la communauté qui supporte cela dépend du soutien que nous avons. Pour ce rapport est le meilleur cadre de recherche de page qui de nombreux bugs il ya, à quelle vitesse sont résolus, combien de développeurs il ya la correction des billets. Suite à cette même ligne qu'il ya à voir combien de fois une nouvelle version sort, et si il existe des versions conçues pour générer une version stable ou versions sortent seulement lorsque de nouvelles fonctionnalités. Étant donné que nous avons à apprendre à utiliser le cadre que vous avez à étudier la qualité de la documentation de cela, de voir tant de livres publiés (par exemple Amazon) est sur le sujet et si vous proposer une sorte de certification et / ou de formation.
Existence de projets réussis
Comme notre intention est d'utiliser le FW pour un produit qui finira par entrer en production ne sera probablement pas envie d'être des cochons de Guinée. Si le FW est un peu sérieuse, alors vous devriez avoir sur leur site web faisant référence à des systèmes qui sont mis en œuvre avec cela. Pas une mauvaise idée si possible jeter un oeil à ces derniers et voir comment ils travaillent. Il serait bien de trouver un blog d'un de ces projets dans lesquels ils discutent de l'expérience au cours du développement du système.
Intégration avec la plate-forme existante
Si le projet fait partie d'un écosystème complexe, alors nous devons prendre en compte les possibilités d'intégration qui a le FW et si elles sont acceptables dans l'architecture de notre produit. Par exemple, si nous avons d'interagir avec un système qui JEE est important d'établir des installations d'invoquer les EJB de service me donne le FW. Bien sûr, il est toujours possible de développer une couche qui est responsable de l'interaction, mais si elle supporte nativement FW non seulement d'économiser du travail, mais sont en réutilisant ce qui est testé et utilisé par d'autres.
Learning Curve
Le problème aujourd'hui est trompeuse parce modernes FW ont une courbe d'apprentissage très rapide au départ, mais que pour atteindre des niveaux expert est très coûteuse en temps que tout autre cadre. Si l'on ajoute que la plupart des OS sont FW avec une documentation de qualité médiocre, il n'ya probablement pas un soutien local et pour nous permettre de voyager ont de nombreux miles (au moins si le Sud comme moi). Ce qui rend la capacité d'apprentissage de l'équipement est un facteur important. Dans certains cas, pour arriver à résoudre un problème sera nécessaire d'étudier le code source de FW. Devrions-nous être assez chanceux pour que le budget nous permet de former l'équipe et / ou contrat de support, puis n'en doute pas. Maux de tête et de temps vous pouvez gagner sûrement.
Testez, testez et testez
Inévitablement, afin de déterminer le FW devra allouer des ressources et effectuer quelques tests avant d'arriver à une conclusion acceptable et justifiée. Il n'est pas nécessaire de prouver tous d'être assurés que nous utilisons les meilleurs. Lorsque nous évaluons rappeler que nous sommes en regardant à droite pour le contexte que nous devrions utiliser et mieux ensemble. Avec une bonne analyse préliminaire, nous ne devrait probablement pas essayer plus de deux ou trois FW. Pour le test pour être aussi comparables que possible, nous devrions choisir un projet à mettre en œuvre le type e avec laquelle nous allons évaluer FW ..
Comment pouvons-nous comparer le FW?
Pour la comparaison des FW, j'ai utilisé un outil qui m'a aidé à évaluer le temps et peut être utile pour vous aussi. L'outil est un simple tableau qui reflète la plupart des points soulevés. Dans ce tableau nous considérons le FW donnant un score pour chaque point où nous aurions une masse maximale autorisée et la somme maximale de tous les points seront à 100. En définissant le maximum de points différents sont prioritaires pour les éléments à évaluer en fonction de notre contexte. Par exemple, si nous sommes dans un cas où nous avons un certain nombre de systèmes existants avec lesquels nous interagissons sûrement la capacité d'intégrer le FW est l'un des plus de points importants à évaluer alors que si nous n'avons pas d'interagir avec d'autres systèmes, nous avons le temps tyrans et déjà formé une équipe avec une expérience web peu puis la courbe d'apprentissage est un tournant dans notre choix.
Pour clarifier ce point, regardons un exemple:
Max | FW 1 | FW 2 | FW 3 | FW 4 | |
|---|---|---|---|---|---|
Soutien | 25 | 15 | 10 | 20 | 5 |
Projet réussi | 10 | 5 | 10 | 10 | 0 |
Intégration | 50 | 25 | 40 | 35 | 45 |
Learning Curve | 15 | 15 | 10 | 10 | 5 |
Total: | 100 | 60 | 70 | 75 | 55 |
La lecture pourrait rendre le tableau ci-dessus est que nous testons avec le FW2 et FW4 de définir laquelle de ces deux est que nous utilisons. Grâce à l'étude, nous avons mené redijimos au moins la moitié du montant de FW à étudier et à avoir une table qui justifie notre choix.
Évidemment plus vous ajoutez des lignes au tableau aura plus d'informations pour justifier le choix.
Juste au cas précisé que le maximum alloué en sont des exemples et vous devriez définir votre propre fonction de leurs besoins.
En résumé ...
En résumé lorsque vous sélectionnez un FW doit suivre trois étapes:
Nous avons d'abord évaluer les connaissances de l'équipement et de déterminer ce que vous voulez si vous FW à la présentation full-stack ou célibataire.
Une fois que nous avons cela et connaître la langue de préférence peut chercher le sous-ensemble de FW à évaluer. Pour faciliter l'évaluation d'un formulaire comme vu dans la section précédente.
Enfin, avec le meilleur FW classé effectué les tests qui sont fait avec un projet mis en œuvre dans chacun des FW.
Après tout ce que nous savons ce que le FW à utiliser. Il semble que beaucoup de travail, non? Si il est sûr, mais c'est la seule façon de rendre une décision en minimisant le risque de faire des erreurs ... et quand les décisions de la technologie d'une entreprise dépend de nous est bon d'avoir des outils pour justifier nos décisions et en particulier pour assurer le succès de notre travail.
