Qu’est ce que le Back / Qu’est ce que le Front ?

Introduction

Pour cet article nous allons tenter, ensemble, de dépasser la simple distinction entre les définitions du Front-end et du Back-end et s’attacher à comprendre les différences et les convergences des profils des développeurs et leur apport sur les structures logicielles et sites statiques et dynamiques.

Si vous pensez avoir besoin d’un rappel sur le fonctionnement d’un site web, vous pouvez retrouvez notre article détaillé ici.

Le développeur Back-end

Définition détaillée

La partie Back de la programmation est la face cachée de l’iceberg puisque non visible par le visiteur. Elle représente la part de code exécutée par le serveur et servant à rendre un site dynamique via le travail effectué sur les pages web.

Pour tout code effectué en Back, un langage particulier existe : le langage serveur qui se décline ensuite en plusieurs sous-langages dont les populaires PHP, Java, Python, Ruby, ASP.NET Core, ASP.NET MVC, etc.

L’architecture du Back-end peut être hiérarchisée en trois socles primordiaux à son bon fonctionnement : 

  • Le serveur du site
  • L’application, qu’elle soit web ou mobile
  • La base de données servant au stockage et à l’organisation du projet

Le développeur Front-end

Définition détaillée

Souvent plus connue du grand public, la partie front-end est destinée au client (navigateur web) et est représenté visuellement par les composantes du site avec lesquelles il est possible d’interagir en tant qu’internaute (boutons, liens de redirection, vidéos, etc.)

Pour parvenir à ce résultat, une complexe combinaison de codes est nécessaire et renferma plusieurs langages de programmation :  HTML, CSS, JavaScript. C’est par ce codage que le site obtiendra à la fois un design graphique et technique unique.

Important
les navigateurs web ayant pour rôle de traduire le code, ils ont leurs spécificités propres auxquelles il faudra prêter une attention particulière lors de l’écriture.

Le développeur Full-stack

Aussi incroyable que cela puisse paraître (…), la notion de Full-stack détermine un développeur ayant acquis l’ensemble des compétences Back (serveur) et Front (client). Les compétences techniques du développeur Full-stack lui permette de réaliser la globalité des tâches techniques telles que :

  • La programmation d’un navigateur par l’utilisation, entre autres, de JavaScript, Angular ou React.
  • La programmation d’un serveur par l’utilisation, entre autres, de PHP, ASP, Python ou Node.
  • La programmation d’une base de données via SQL, SQLite
  • Pris en compte de l’expérience utilisateur (UX)
  • Intégration HTML

En somme, le développeur Full-stack doit connaître l’ensemble des composantes à même de gérer l’ensemble de la conception d’un projet d’un point de vue technique. Aujourd’hui recherché comme le loup blanc par les petites entreprises, le développeur Full-stack se fait rare notamment du fait de l’évolution exponentielle des méthodes et des outils de travail informatique.

Info mode
Si la tendance est de croire que le développeur full-stack a découlé des deux types de développeurs front et back, c’est en fait l’inverse. Avec de nouvelles spécificités et de nouveaux outils émergeant quotidiennement, le full-stack s’est dissocié pour paraître l’émergence d’experts en front et back.

Les avantages de travailler avec un full stack

Posséder dans son équipe un développeur Full-stack revient à posséder un véritable couteau suisse. Il doit pouvoir être à même de régler la totalité des problèmes techniques, d’où sa rareté. Les avantages sont multiples à posséder cette expertise :

  • Maîtrise de toutes les techniques d’un projet de développement
  • Réalisation rapide de prototypes
  • Fournir l’aide nécessaire aux autres membres de l’équipe
  • Réduire certains coûts du projet
  • Réduction du temps consacré à la communication Back-Front

Conclusion

« Le DevOps est un concept qui vise une collaboration plus étroite et une combinaison des différents rôles impliqués dans le développement logiciel comme le rôle de développeur, de chargé d’opération ou encore de chargé d’assurance qualité, car les logiciels doivent être produits à un rythme effréné alors qu’au même moment le développement en cascade semble avoir atteint ses limites. »

Jeff Knupp

Développeur Full-Stack

Il est important d’ouvrir cet article sur le concept de DevOps. (vous retrouvez un article complet sur le sujet ici). Ce mouvement apparu peu après la notion d’agilité met en exergue le besoin d’associer toutes les parties prenantes d’un projet. A savoir : la partie développement logiciel (les développeurs) et l’administration des infrastructures automatiques.

Le fait de travailler conjointement amène aujourd’hui les profils de développeurs à évoluer pour s’adapter à un écosystème plus global et les obligent à prendre un compte de nouveaux paramètres en considération et à adopter de nouvelles techniques. En premier lieu, le fait d’adopter des cycles de développement itératifs plus courts afin de démultiplier la fréquence de déploiement et ainsi offrir des livraisons de façon continue et développer une logique plus à même de respecter les ambitions économiques de la société porteuse du projet.