Livre Blanc
Do You Speak Technique ?
Dans ce guide, découvrez :
- Les approches et les méthodologies de projet
- Les principes fondamentaux d'architecture technique
- Les Stacks les plus classiques
- Les différentes bases de données
- Les échanges de données par API
- Les technologies mobiles et cross-platform
- Et encore plus de technique ! avec notamment la gestion du cache, la sécurité et les serveurs
Introduction
Les développeurs ont imaginé un jargon qui est souvent hermétique pour les profanes… Alors si vous êtes en relation avec des développeurs et que vous vous sentez parfois perdus, c’est normal. Chaque métier possède ses codes que ce livre blanc propose de décrypter.
Nous espérons qu’une fois que vous aurez lu ce document, vous pourrez assister à une réunion où l’on parle de technique sans être profondément ennuyé ou vous sentir dépassé ! Avec un peu d’effort (et ce document), vous pourrez engager une discussion sans complexe.
A propos de ce livre blanc
Ce livre blanc fait partie d’une série “Comprendre la tech” qui vise à faire comprendre au plus grand nombre les principaux concepts techniques. La précédente version a été téléchargée plus de 2 000 fois depuis son lancement en 2016 ! Merci à tous les lecteurs de ce livre blanc qui nous ont fait des remarques ou proposés des idées. Votre contribution est précieuse !
Cette version a été améliorée pour préciser les principales stacks techniques (vous découvrirez ce qui se cache derrière ce terme barbare dans ce document) et mettre à jour la partie mobile.
Il s’adresse à tous les acteurs du digital qui ne connaissent pas la technique : product owner, directeur de projet, designer, UX, DSI, responsable innovation. Bref, tous ceux qui souhaitent comprendre ce qui est en jeu dans les projets digitaux des entreprises comme par exemple le développement d’un nouveau projet de plateforme web, une application mobile etc.
Principes fondamentaux de l'architecture technique
Front/Back : un piège pour les non-initiés
Attention au piège ! On peut parler de développement front-end ou back-end en évoquant la technologie respectivement sur le navigateur ou sur le serveur web. Mais on peut aussi parler de front-office ou de back-office. Et, dans ce cas, on distingue les populations d’utilisateurs : le front-office adressant les visiteurs d’un site et le backoffice les gestionnaires.
Quelle est la différence entre un framework et une librairie ?
Un framework n’est pas une librairie ! Si l’amalgame est assez facile à faire entre ces deux termes, c’est tout simplement parce que dans la plupart des cas, un framework inclut une
ou plusieurs librairies.
Ainsi, si une librairie peut être comparée à un ensemble de fonctionnalités, un framework quant à lui peut être perçu comme la structure complète d’un projet ! Ainsi le développeur va appeler une librairie pour disposer de fonctionnalités particulières. Par exemple, notre librairie Open Source Gotenberg permet de transformer n’importe quelle page HTML en document PDF.
Inversement, un framework va permettre de structurer le code pour le développeur en gérant de nombreux aspects tels que la sécurité par exemple. La différence entre un framework et une librairie est donc appelée « Inversion of Control (IOC) » ce qui signifie de manière concrète qu’un framework « contrôle » le code d’un développeur alors qu’une librairie est «contrôlée » par le code d’un développeur.
Parmi les frameworks les plus connus on retrouve : Symfony ou Laravel (PHP), Angular (Javascript), Django (Python), Ruby on Rails (Ruby), … Et cela marche pour tous les langages de programmation !
Architecture client/serveur ou 3 tiers
On oppose souvent les architectures client léger – ou architecture 3 (N) tiers – aux architectures client-serveur – ou client lourd. On parle de client lourd lorsque le matériel de l’utilisateur est utilisé pour les traitements tandis que l’on parle de client léger lorsque l’ensemble des traitements est effectué à distance (sur un serveur web par exemple).
Il y a fort fort longtemps, les débits réseaux ainsi que les ressources serveurs étaient faibles (dans les années 80-90). Une partie des traitements était donc déportée vers les clients (PC des utilisateurs). Depuis, avec l’amélioration des capacités des navigateurs et des connexions internet, les architectures client léger se sont imposées. Aujourd’hui, on revient un peu en arrière avec des traitements qui sont effectués sur les devices (le matériel) des utilisateurs en utilisant les navigateurs ou les OS des mobiles. On cherche à améliorer les performances ou pallier une déficience éventuelle de réseau.
Parfois, par extension ou facilité, on parle aussi d’architecture 3 tiers pour évoquer les différents composants physiques de la solution : le terminal (navigateur web ou téléphone), le serveur web et le serveur de données.
Le design pattern MVC
Il y a des problèmes en programmation qui reviennent tellement souvent qu’on a créé des bonnes pratiques (qui résolvent ces problèmes) que l’on a réunies sous le nom de design pattern. Le design pattern MVC ou Model-View-Controller (Modèle-VueContrôleur) est l’un des plus importants. Il s’agit d’un pattern qui sépare la logique du code en trois parties afin de clarifier la conception des développements :
- Le Contrôleur gère l’enchainement des pages, les URL… (le code PHP qui interroge le modèle et renvoie les éléments à afficher à la vue)
- Le Modèle gère la logique métier et les données (les requêtes SQL)
- La Vue affiche la page (le code HTML et quelques boucles et conditions PHP très simples, pour afficher par exemple des listes)
Les approches et méthodologies de projet
Les approches et méthodologies de projet
L’approche Minimum Viable Product ou MVP
Elle consiste à réduire le temps entre le démarrage du projet digital et sa mise sur le marché.
L’approche « Mobile First »
Elle vise à concevoir l’application mobile en premier.
La méthodologie Agile
Elle propose une approche itérative. Cette approche est particulièrement utilisée pour les projets techniques dont les contours ne sont pas totalement définis.
La méthodologie Cycle en V
Elle permet de définir de plus en plus finement le projet.
Les concepts clés d'architecture technique
Les concepts clés d’architecture technique
Front/Back : un piège pour les non-initiés
On parle de développement front-end ou back-end, mais on peut également faire référence au front-office ou back-office.
Quelle est la différence entre un framework et une librairie?
Une librairie est un ensemble de fonctionnalités alors qu’un framework correspond à la structure complète d’un projet digital.
Architecture client/serveur, 3 tiers
Les architectures client léger, ou architecture 3 tiers, sont souvent opposées aux architectures client/serveur, ou client lourd.
Le design pattern MVC
Il permet de résoudre des problèmes de programmation.
Les Stacks les plus classiques
Les Stacks les plus classiques
Les technologies front-end : HTML, CSS et JavaScript
Le format HTML permet de décrire la structure des pages web.
CSS est le langage qui précise la mise en forme du texte.
Les technologies Back-end
Parmi lesquelles : PHP et JavaScript (Node.js)
Les autres solutions : propriétaires ou Open Source
Les différentes bases de données
Les différentes bases de données
La référence SQL
Le modèle relationnel SQL permet de modéliser les informations existantes entre plusieurs informations.
Logique « not only SQL »
Le no SQL est plus adapté à la gestion des très grands volumes.
API - Echanges de données
API – Echanges de données
Les différents types d’API
Il existe deux grands protocoles de communication sur lesquelles s’adossent les API : Simple Object Access Protocol (SOAP) et Representational State Transfert (REST).
Les différents formats d’échanges de données
Les formats d’échanges de données utilisés sont nombreux : CSV, XML, JSON, notamment.
Les technologies mobiles
Les technologies mobiles
Les applications natives
Elles dépendent du système d’exploitation. C’est le cas par exemple de Java pour Android.
Les technologies cross-platform (React-Native et Flutter)
Elles permettent de compiler un seul code pour plusieurs plateformes.
Progressive Web Application (PWA), une solution alternative ?
Les PWA sont des applications web qui se rapprochent des applications mobiles.
Et encore plus de technique !
Et encore plus de technique !
A l’origine du web : TCP/IP et DNS
Lorsqu’un internaute tape l’adresse d’un site web, le serveur DNS identifie le nom de domaine et renvoie vers la bonne adresse IP.
La gestion du code source (GIT)
GIT est un logiciel de gestion des versions décentralisé
Les serveurs, le hosting
On peut parler de serveur dédié ou mutualisé lorsque le serveur est partagé avec d’autres clients.
La sécurité
Il existe différents types d’attaques et de failles dans un système. Elles sont mises à jour par l’OWASP.
La gestion du cache
Le cache permet de stocker les résultats d’un calcul complexe.
Les moteurs d’indexation
Un moteur d’indexation permet de classer des données. Il en existe plusieurs, parmi lesquels Apache et Elasticsearch.