Partager cet article

Comme plus de 50 000 freelances, recevez des offres de mission tech à la messure de votre talent sur FreelanceRepublik.

Je m'inscris  ➔

Trouver des Freelances

Besoin d’un freelance tech pour vos projets ? Nous sélectionnons les meilleurs talents pour vous aider à accélérer votre croissance. Trouvez l'expert qui correspond à vos besoins en quelques clics.

En savoir +  ➔

Derniers articles

FreelanceRepublik

+100 missions tech
par semaine

Je m'inscris  ➔

A la recherche d'un freelance ?

Déposez gratuitement votre projet tech sur FreelanceRepublik

En savoir +  ➔
AccueilMétiers de la TechFramework de développement : définition et utilité

Framework de développement : définition et utilité

Si vous êtes développeur freelance, le mot framework vous parle forcément. Cependant, sa définition n’est pas toujours claire, même pour ceux qui en utilisent au quotidien… On a tendance à confondre librairies et frameworks, et on ne sait pas toujours si et quand on doit utiliser un framework.

Dans cet article, nous allons éclaircir ces points, et le framework n’aura pour vous plus aucun secret !

Qu’est ce qu’un framework, exactement ?

Définition

Avant de rentrer dans les détails, définissons déjà ce qu’est un framework. Un framework, que l’on pourrait traduire en français par infrastructure logicielle, est un ensemble de composants structurels, plutôt génériques, imposant un cadre de travail à celui qui l’utilise.

Plus clairement, un framework de développement offre à un développeur des briques et des patterns pour simplifier son travail et lui imposer de coder d’une manière spécifique.

Le but d’un framework

Comme on vient de le voir, un framework est là pour simplifier et cadrer le développement. Plus concrètement, une infrastructure logicielle donne au développeur un accès à tout un tas de features déjà définies, qu’il n’aura pas besoin de coder : templating, gestion des modèles, etc.

Également, quand on parle de cadre de travail, c’est à dire que le framework impose au développeur des patterns, comme une architecture dans ses fichiers, une organisation entre les vues et contrôleurs, etc.

Framework et librairie, même chose ?

La confusion entre un framework et une librairie (aussi appelée bibliothèque, en français), est courante, même parmi les développeurs.

En réalité, cet abus de langage n’est pas dérangeant, car on les utilise souvent dans les mêmes cas, il y a cependant quelques différences.

Ainsi, un framework possède un ensemble de briques génériques, étendant le nombre de cas d’utilisation de l’outil. L’autre grande différence, c’est que le framework impose des patterns de développement au développeur. Typiquement, cela veut dire qu’un développeur sera moins libre dans l’organisation de son projet et de son code qu’en utilisant une librairie.

Pour prendre un exemple concret, parlons de frameworks et librairies JavaScript. On va choisir Angular et React.

Librairie vs framework de développement : angular et react

Si vous avez utilisé les deux, vous savez qu’ils sont bien différents. React est assez permissif, vous faites à peu près ce que vous voulez dans votre projet. Angular, lui, impose un découpage plutôt strict. React est donc une bibliothèque, et Angular un framework.

Historique des frameworks

Les frameworks sont apparus relativement tôt après le boom de l’internet, au début des années 2000. En réalité, ils ont suivi le développement des langages de programmation et l’évolution des technologies.

Par exemple, des frameworks tels que Hibernate et Spring, pour Java, sont apparus respectivement en 2001 et 2003. Symfony, framework PHP, est lui apparu en 2005.

Les frameworks JavaScript sont eux apparus assez récemment, en même temps que l’augmentation de l’utilisation du langage. Par exemple, AngularJS est né en 2010, et son évolution plus utilisée, Angular, en 2016.

Ils continuent à se multiplier et à prendre aujourd’hui de plus en plus d’ampleur, en même temps que les besoins augmentent.

Les différents types de frameworks

Maintenant qu’on a défini ce qu’était exactement un framework, parlons un peu plus des différents types de frameworks qui existent.

Selon Wikipédia, il y a quatre différents types de frameworks :

  • Framework d’infrastructure système, pour développer des OS et interfaces graphiques ;
  • Framework d’intégration intergicielle, fusionnant différentes technologies sous une forme unique ;
  • Frameworks d’entreprise, pour développer des applications adaptées à un secteur défini d’une entreprise en particulier – on en reparlera ;
  • Frameworks de gestion de contenu, pour poser les fondations d’un système de gestion de contenu.

Ces définitions, bien que plus ou moins officielles, ne représentent pas forcément la réalité de ce que vit un développeur au quotidien

Dans la suite de cet article, nous allons découper le framework en deux familles : les frameworks « classiques », que peut utiliser n’importe que développeur, et les frameworks développés par les entreprises, pour une utilisation interne.

Frameworks classiques – exemple avec le développement web

écran avec code pour développement web

Commençons par les frameworks que je qualifierais de classiques. C’est à dire, ceux prêts à l’emploi, qui permettent à un développeur de créer un produit from scratch en simplifiant son développement.

Pour ça, prenons l’exemple du développement web. Imaginons qu’un développeur, ou une équipe, veuille créer une application web complète, front et back. Plutôt que de tout faire en partant de zéro, il décide, pour simplifier son développement, de choisir des frameworks.

Framework back

Maitrisant JavaScript, le développeur choisit logiquement de se tourner, pour le développement back-end, vers Node.js. Pour faciliter la création de son back, il décide de choisir un framework, un des plus connus et maintenus étant Express.js, c’est celui-là qu’il choisit.

Frameworks front

Une fois la techno back choisie, il décide pour le front de là aussi utiliser des frameworks, pour faciliter et accélérer son développement. Et pour le développement web front, il existe plusieurs frameworks JavaScript.

Après un comparatif de ceux-ci, il décide de se diriger vers Vue.js, framework de développement orienté composants. Cependant, le design n’étant pas sa spécialité, il veut utiliser un autre framework en complément, et il choisit Tailwind CSS, infrastructure logicielle CSS permettant d’utiliser des composants graphiques déjà codés et personnalisables.

Cela fait donc deux frameworks pour le front, qui vont grandement simplifier son développement.


On le voit dans cet exemple, rien que pour un développement d’une application web, on retrouve trois frameworks.

Les frameworks d’entreprise « maison »

Parlons un peu maintenant des frameworks d’entreprise. On entend par là l’ensemble des librairies développées dans certaines entreprises, leur permettant de répondre de manière plus rapide, efficace et précise à certains développements spécifiques.

Souvent basés sur des frameworks existants, ces outils sont en fait des briques rajoutées à d’autres déjà existantes. Beaucoup d’entreprises avec une forte culture tech développent leurs propres frameworks, utilisés en interne mais aussi parfois mis en open source sur le net.

Les défauts des frameworks

Maintenant que nous savons exactement ce qu’est un framework, parlons un peu des défauts que l’utilisation d’un tel outil représente.

Car si elle peut simplifier le développement, l’utilisation d’un framework n’est pas exempte de défauts.

Déjà, on peut parler de l’apprentissage que cela nécessite. En effet, un framework doit être maitrisé pour être utilisé correctement. Typiquement, il faut apprendre à travailler avec les patterns imposés, et savoir utiliser les briques mises à disposition. Suivant le framework, cela peut demander un certain temps d’adaptation.

Aussi, il faut essayer d’avoir une vision sur le long terme. Il en apparaît régulièrement des nouveaux, et il n’est pas toujours simple de décider lequel utiliser. Le problème qui peut se poser ici, c’est la durée de vie des frameworks. Si certains apparaissent, d’autres perdent en utilisation au fil du temps, et risquent de ne plus être maintenus, ce qui peut provoquer une dette technique. Par exemple, des briques que vous utilisez qui ne sont plus maintenues, et qui peuvent rentrer en conflit avec de nouveaux protocoles de sécurité, etc.

Quand utiliser un framework ?

Si un framework simplifie le développement, doit-on pour autant l’utiliser sur tous nos projets ? Eh bien parfois, il ne vaut mieux pas.

Typiquement, si vous devez coder un simple site vitrine, qui n’a besoin que peu de JavaScript ou de CSS, il est peut-être mieux de tout faire sans aucun outil – ou presque. L’utilisation d’un framework, ou même d’une librairie, peut dans ce cas-là non seulement ralentir le développement (ça serait comme construire un moulin pour moudre quelques bruns de blé), mais aussi alourdir littéralement le code du projet, et éventuellement dégrader les performances de votre site.

En revanche, pour les gros projets, et les projets faits en équipe, l’utilisation de frameworks est bien plus recommandée. Non seulement pour faciliter le développement, mais aussi pour une question de maintenabilité et de propreté du code. Si toute une équipe doit suivre les mêmes patterns, le code s’en trouvera plus clair, et plus facile à faire évoluer.


J’espère que cet article aura pu vous aider à éclaircir un peu vos doutes non seulement sur ce qu’est un framework, mais aussi sur son utilisation et l’utilité de celle-ci.

Et vous, dans quels cas utilisez-vous un framework ? Et quels sont vos favoris ? Dites-le en commentaire !

X

Vous avez des besoins
en recrutement IT ?

Prenez RDV  ➔

Ces articles peuvent vous intéresser

Autoentrepreneurs : faut-il vraiment opter pour un compte pro gratuit ?

La gestion bancaire est un élément crucial pour les autoentrepreneurs, car elle permet de séparer les finances personnelles des...

Quelles sont les compétences essentielles pour les métiers de la data ?

Les métiers de la data sont au cœur de la transformation numérique et attirent de plus en plus de...

Le Rôle du Chef de Projet Digital Expliqué

Dans un contexte de digitalisation omniprésente, le métier de chef de projet digital connaît une popularité croissante. De plus...

Ne perdez plus de temps à prospecter en vain. Inscrivez-vous gratuitement sur FreelanceRepublik, et recevez de belles offres de missions tech. FreelanceRepublik est gratuit pour les freelances.

Je m'inscris  ➔