Démêlons la stack technique !

Temps de lecture estimé = 6 min

PHP, Laravel, Symfony, Ruby, Python, JS, Angular, … qu’est-ce que la stack technique d’une plateforme ? Quelle est la meilleure ? Faut-il choisir le meilleur le langage ? Est-ce qu’au final il y a un meilleur langage… Déjà, pour me présenter en deux mots, je m’occupe de la relation client chez Ochelys. Je ne suis en rien développeur, je vais donc prendre des raccourcis, mais le but n’est pas d’entrer dans le détail de chaque technologie. Je vous propose ici de définir les rôles de ces différentes technos, pour bien comprendre ce qu’est la stack technique.

Pas une, mais plusieurs technos

Premièrement, il faut savoir qu’une plateforme n’utilise pas un seul langage et une seule technologie, mais plusieurs. On va notamment différencier des technologies qui vont gérer l’affichage (Front-end) et des technologies qui vont gérer le fonctionnement de la plateforme et sa connexion à différents services (Back-end) ainsi que la base de données. On peut ajouter à cela le Dev OPS, qui s’occupe de mettre en place des outils pour faciliter les tests, les mises en ligne, le suivi de la plateforme.

Front-endGère l’affichage, l’interface utilisateur
Back-endGère la logique « métier » de votre plateforme
Base de donnéesStocke les données
Dev OPSDéployer, tester, surveiller la plateforme

 

Ces technologies s’empilent, c’est à dire que chacune interagit directement avec celle d’en dessous, mais généralement pas avec les autres, d’où le nom de « stack » technique.

Quelle techno pour faire quoi ?

Précisons que pour le Front End, la pile peut encore se découper. L’intervention d’un intégrateur web et/ou d’un développeur Front-end, démarre à la livraison des maquettes graphiques. Sa mission est de coder l’ensemble des éléments qui vont définir l’apparence du site : contenus, images, liens, barres de menus, etc. Il utilise différentes technologies :

  • HTML qui gère la structure et les contenus de la page
  • CSS qui gère l’apparence, le style de la page
  • Javascript qui gère les interactions

On arrive donc sur une pile qui s’enrichit, et pour chaque niveau de la pile, différences technologies existe, les principales que l’on peut citer sont les suivantes :

Front-endApparence visuelleCSS
Front-endInteractionsJavascript
Front-endStructure et contenusHTML
Back endLogique métier et gestion des servicesPHP, Ruby, Python, .NET, …
Base de donnéesStockage des donnéesMySQL, Postgre, MongoDB, …
Dev OPSDéployer, tester, surveiller la plateformeDocker, Ansible, Kubernetes, …

Des frameworks pour compléter chaque techno

A chacune de ces technos peut s’ajouter un framework. C’est une sorte de cadre de travail qui facilite la vie du développeur en proposant une organisation du code et une sorte de bibliothèque de fonctions déjà codées qui permettent en général de gagner du temps et de ne pas réinventer la roue. C’est aussi une bonne pratique d’utiliser un framework car il facilite la reprise de code par une autre personne étant donné qu’il impose certains standards. L’agence qui vous propose un développement uniquement via le langage (sans frameworks) doit avoir de bonnes raisons qu’il faut challenger car un code sans framework peut être problématique en termes de sécurité, performances, maintenance, évolution, reprise de l’existant par d’autres développeurs, etc.

Il existe des framework pour quasiment tous les langages, Front-end comme Back-end, et pour les plus fréquemment utilisés on peut citer :

  • Laravel, un framework PHP
  • Symfony, un framework PHP
  • Ruby On Rails, un framework Ruby
  • Django, un framework Python
  • Vue, un framework Javascript
  • Angular, un framework Javascript
  • React, un framework Javascript
  • Bootstrap, un framework CSS
  • Tailwind, un framework CSS
  • et bien d’autres…

Et toute la suite des services externes spécifiques…

Il existe aussi une infinité de technos spécifiques qui permettront d’ajouter ou d’enrichir les fonctionnalités de votre plateforme :

  • Recherche : Algolia, Elastic Search
  • Paiement ligne : Stripe
  • Signature électronique : Yousign, Universign
  • E-mailing : Mailjet, mailgun
  • Cartographie : Open street maps, Google maps
  • etc.

Il n’y a pas de limite aux services que vous pouvez intégrer, ils font partie de la stack technique de votre plateforme.

On peut donc résumer une stack plus complète :

Front-endApparence visuelleCSS (avec Tailwind, Bootstrap, …)
Front-endInteractionsJavascript (avec Vue, Angular, …)
Front-endStructure et contenusHTML
Back endLogique métier et gestion des servicesPHP (avec Laravel, Symfony), Ruby (avec Rails), Python (avec Jango), .NET, …
Services externesBesoins spécifiquesStripe, Mailjet, Yousign, Elastic Search, etc.
Base de donnéesStockage des donnéesMySQL, Postgre, MongoDB, …
Dev OPSDéployer, tester, surveiller la plateformeDocker, Ansible, Kubernetes, …

Les applications mobiles ?

Pour vos projets d’applications mobiles, vous allez voir passer 2 philosophies différentes : 

  • les langages natifs (Android, IOS) qui vont permettre d’optimiser les possibilités fonctionnelles mais nécessite un développement pour chaque système
  • les langages comme React Native ou Ionic qui permettent de générer aussi bien une application IOS qu’Android avec une seule base de code
  • les PWA, Progressive Web App, qui sont une sorte d’intermédiaire entre une application mobile et un site Internet

Et les CMS dans tout ça ?

Un CMS n’est pas un language, mais une application complète en soi, qui intègre de nombreuses fonctionnalités courantes déjà développées. Un CMS amène donc toute sa stack technique.

  • CMS orientés contenus : WordPress (le plus utilisé), Drupal, SPIP, Strapi, …
  • CMS orientés e-commerce : Prestashop, Magento

Il est intéressant d’utiliser un CMS si l’on veut bénéficier de nombreuses fonctionnalités assez standards.

Et donc le.a développeur.se full-stack ?

Vous l’avez sûrement deviné, lorsque l’on parle de développeur full-stack, cela désigne donc une personne capable d’intervenir sur toute la stack technologique de votre plateforme. Une stack complète peut être assez complexe à maitriser, et un.e développeur.se full -stack concerne généralement un profil expérimenté.

Les technologies utilisées chez Ochelys

Côté Ochelys nous avons fait le choix depuis nos débuts de travailler avec des technologies open-source. Nous ne sommes pas figés sur une technologie précise, voici celles que nous utilisons fréquemment

  • PHP / Laravel en Back-end
  • Ruby / Rails en Back-end
  • Vue JS, React, Angular en Front-end
  • Docker pour la virtualisation de nos environnements

Vous commencez à y voir plus clair sur ce que propose une agence ?

Il faut donc retenir que :

  • Une application web n’utilise pas une seule techno mais toute une pile technologique
  • Il n’y a pas en soi de meilleure stack techno, elle doit être adaptée à votre projet

Il faut prendre le réflexe de demander au prestataire pourquoi il a fait ces choix. Vous pouvez aussi vous poser de bonnes questions comme :

  • est-ce que je vais vouloir recruter à un moment ? et donc est-ce que des ressources humaines sur ces technos sont faciles à trouver ? 
  • comment vais-je gérer les maintenances curatives, évolutives et donc correctives de mon application ? 
  • qu’est-ce qu’il est pertinent dans mon projet de développer sur-mesure, ou d’exploiter via des technologies externes ?

Chaque agence fait ses choix et maîtrise plus ou moins d’associations de technologies. Notre CTO (responsable technique) peut vous aider à y voir plus clair. Chez Ochelys, nous restons assez ouverts car nous avons fait le choix de développer des compétences sur plusieurs technologies afin de vous apporter la réponse la plus logique par rapport à l’ensemble de vos contraintes métiers.  Plus d’infos sur nos compétences tech : ici N’hésitez pas à nous contacter pour une mission de préconisation technique ou pour développer directement vos solutions web métier. 

On espère que cet article vous aura aider à clarifier ce qu’est la stack technique et les bonnes questions à se poser.

Bonne journée !

 

A lire aussi dans Tech