Quelqu'un peut-il m'expliquer ce qu'est un framework logiciel? Pourquoi avons-nous besoin d'un cadre? Que fait un framework pour faciliter la programmation?
la source
Quelqu'un peut-il m'expliquer ce qu'est un framework logiciel? Pourquoi avons-nous besoin d'un cadre? Que fait un framework pour faciliter la programmation?
Je suis très en retard pour y répondre. Mais, je voudrais partager un exemple auquel je n'ai pensé qu'aujourd'hui. Si je vous disais de couper un morceau de papier de 5 m sur 5 m, vous le feriez sûrement. Mais supposons que je vous demande de couper 1000 feuilles de papier de mêmes dimensions. Dans ce cas, vous ne ferez pas la mesure 1000 fois; de toute évidence, vous feriez un cadre de 5 m sur 5 m, puis à l'aide de celui-ci, vous pourriez couper 1000 feuilles de papier en moins de temps. Donc, ce que vous avez fait était de créer un cadre qui ferait un type de tâche spécifique. Au lieu d'exécuter le même type de tâche encore et encore pour le même type d'applications, vous créez un cadre regroupant toutes ces fonctionnalités dans un joli paquet, fournissant ainsi l'abstraction de votre application et, plus important encore, de nombreuses applications.
Techniquement, vous n'avez pas besoin d' un framework. Si vous créez un site vraiment très simple (pensez au Web en 1992), vous pouvez tout faire avec du HTML codé en dur et du CSS.
Et si vous voulez créer une webapp moderne, vous n'avez pas besoin non plus d'utiliser un framework pour cela.
À la place, vous pouvez choisir d'écrire toute la logique dont vous avez besoin. Vous pouvez écrire votre propre couche de persistance / stockage des données, ou - si vous êtes trop occupé - écrire simplement du SQL personnalisé pour chaque accès à la base de données. Vous pouvez écrire vos propres couches d'authentification et de gestion de session. Et votre propre modèle de rendu logique. Et votre propre logique de gestion des exceptions. Et vos propres fonctions de sécurité. Et votre propre framework de test unitaire pour vous assurer que tout fonctionne bien. Et le vôtre ... [continue pendant assez longtemps]
Là encore, si vous faites utiliser un cadre , vous serez en mesure de profiter de la bonne, évaluées par les pairs et très bien testé généralement le travail de dizaines , voire des centaines d'autres développeurs, qui peuvent bien être mieux que vous. Vous pourrez construire ce que vous voulez rapidement, sans avoir à passer du temps à construire ou à vous soucier trop des éléments d'infrastructure répertoriés ci-dessus.
Vous pouvez en faire plus en moins de temps, et sachez que le code cadre que vous utilisez ou étendez est très probablement mieux fait que vous ne le faites vous-même.
Et le coût de cela? Investir un peu de temps pour apprendre le cadre. Mais - comme pratiquement tous les développeurs Web l'attesteront - cela vaut vraiment le temps passé à apprendre à tirer des avantages massifs (vraiment, massifs) de l'utilisation du cadre que vous choisissez.
la source
Le résumé sur Wikipedia (Software Framework) (premier google hit btw) l'explique assez bien:
Vous pouvez en avoir "besoin" car il peut vous fournir un excellent raccourci lors du développement d'applications, car il contient de nombreuses fonctionnalités déjà écrites et testées. La raison est assez similaire à la raison pour laquelle nous utilisons des bibliothèques de logiciels.
la source
Beaucoup de bonnes réponses déjà, mais laissez-moi voir si je peux vous donner un autre point de vue.
En simplifiant un peu les choses, vous pouvez voir un cadre comme une application complète, à l'exception de la fonctionnalité réelle. Vous branchez la fonctionnalité et PRESTO! vous avez une application.
Prenons, par exemple, un cadre GUI. Le cadre contient tout ce dont vous avez besoin pour faire une demande. En effet, vous pouvez souvent faire une application minimale avec très peu de lignes de source qui ne fait absolument rien - mais cela vous donne la gestion des fenêtres, la gestion des sous-fenêtres, les menus, les barres de boutons, etc. C'est le côté cadre des choses. En ajoutant la fonctionnalité de votre application et en la «branchant» aux bons endroits dans le cadre, vous transformez cette application vide qui ne fait rien de plus que la gestion des fenêtres, etc. en une véritable application à part entière.
Il existe des types de cadres similaires pour les applications Web, pour les applications côté serveur, etc. Dans chaque cas, le cadre fournit la majeure partie du code répétitif fastidieux (espérons-le) pendant que vous fournissez la fonctionnalité de domaine à problème réel. (C'est l'idéal. En réalité, bien sûr, le succès du cadre est très variable.)
Je souligne à nouveau qu'il s'agit de la vision simplifiée de ce qu'est un cadre. Je n'utilise pas de termes effrayants comme "Inversion de contrôle" et autres, bien que la plupart des cadres aient de tels concepts effrayants intégrés. Puisque vous êtes débutant, j'ai pensé vous épargner le jargon et partir avec une comparaison facile.
la source
Je ne suis pas sûr qu'il y ait une définition claire de «cadre». Parfois, un grand ensemble de bibliothèques est appelé un cadre, mais je pense que l'utilisation typique du mot est plus proche de la définition apportée par aioobe.
Ce très bel article résume la différence entre un ensemble de bibliothèques et un framework:
Comment un cadre vous aide-t-il? Parce qu'au lieu d'écrire quelque chose à partir de zéro, vous étendez simplement une application fonctionnelle donnée. Vous obtenez beaucoup de productivité de cette façon - parfois l'application résultante peut être beaucoup plus élaborée que vous n'auriez pu le faire vous-même dans le même laps de temps - mais vous échangez généralement beaucoup de flexibilité.
la source
Une explication simple est la suivante: un framework est un échafaudage autour duquel vous pouvez créer des applications.
Un cadre fournit généralement des fonctionnalités de base que vous pouvez utiliser et étendre pour créer des applications plus complexes, il existe des cadres pour toutes sortes de choses. Le framework MVC de Microsofts en est un bon exemple. Il fournit tout ce dont vous avez besoin pour sortir du site Web de construction au sol en utilisant le modèle MVC, il gère les demandes Web, les itinéraires et autres. Tout ce que vous avez à faire est d'implémenter des "contrôleurs" et de fournir des "vues" qui sont deux constructions définies par le framework MVC. Le framework MVC gère ensuite l'appel de vos contrôleurs et le rendu de vos vues.
Peut-être pas la meilleure formulation mais j'espère que cela aide
la source
au niveau le plus bas, un cadre est un environnement, où vous disposez d'un ensemble d'outils pour travailler avec
ces outils se présentent sous forme de bibliothèques, fichiers de configuration, etc.
ce soi-disant "environnement" vous fournit la configuration de base (rapports d'erreurs, fichiers journaux, paramètres de langue, etc.) ... qui peut être modifiée, étendue et développée.
Les gens n'ont en fait pas besoin de frameworks, c'est juste une question de vouloir gagner du temps, et d'autres juste une question de préférences personnelles.
Les gens justifieront qu'avec un framework, vous n'avez pas à coder à partir de zéro. Mais ce ne sont que des gens qui confondent les bibliothèques avec les frameworks.
Je ne suis pas biaisé ici, j'utilise actuellement un cadre.
la source
En général, un travail de cadre est une structure réelle ou conceptuelle destinée à servir de support ou de guide pour la construction de quelque chose qui élargit la structure en quelque chose d'utile ...
la source
Un cadre fournit des fonctionnalités / solution à la zone de problème particulière.
Définition du wiki :
la source
Un cadre nous aide à utiliser le "déjà créé", une métaphore peut être comme,
pense que la matière terrestre est le langage de programmation,
et par exemple "un appareil photo" est le programme, et vous avez décidé de créer un cahier. Vous n'avez pas besoin de recréer la caméra à chaque fois, vous utilisez simplement le framework Earth (par exemple pour un magasin de technologie), prenez la caméra et intégrez-la à votre ordinateur portable.
la source
Un framework a quelques fonctions dont vous pourriez avoir besoin. vous avez peut-être besoin d'une sorte de tableaux dotés de mécanismes de tri intégrés. Ou peut-être avez-vous besoin d'une fenêtre où vous souhaitez placer des contrôles, tout ce que vous pouvez trouver dans un cadre. c'est une sorte de TRAVAIL qui s'étend sur un CADRE autour de votre propre travail.
EDIT: OK, je suis sur le point de creuser ce que vous essayez de me dire;) vous n'avez peut-être pas remarqué les informations entre les lignes "TRAVAIL qui s'étend sur un CADRE autour ..." avant que cela ne tombe plus profondément. J'essaie de lui donner la parole en espérant que vous êtes gracieux:
une bonne explication à la question "Différence entre une bibliothèque et un framework" J'ai trouvé ici
http://ifacethoughts.net/2007/06/04/difference-between- une-bibliothèque-et-un-framework /
la source
Au-delà des définitions, qui ne sont parfois compréhensibles que si vous comprenez déjà, un exemple m'a aidé.
Je pense que j'ai eu une petite lueur de compréhension lorsque j'ai commencé à trier une liste dans .Net; un exemple de cadre fournissant une fonctionnalité adaptée par un code utilisateur fournissant une fonctionnalité spécifique. Prenez List.Sort (IComparer). L'algorithme de tri, qui réside dans le framework .Net de la méthode Sort, doit effectuer une série de comparaisons; l'objet A vient-il avant ou après l'objet B? Mais Sort lui-même ne sait pas comment faire la comparaison; seul le type trié le sait. Vous ne pouviez pas écrire un algorithme de tri de comparaison qui puisse être réutilisé par de nombreux utilisateurs et anticiper tous les différents types que vous seriez appelé à trier. Vous devez laisser ce travail à l'utilisateur lui-même. Donc ici, tri, alias le framework, rappelle une méthode dans le code utilisateur, le type étant trié pour qu'il puisse faire la comparaison. (Ou un délégué peut être utilisé;
Ai-je bien compris?
la source