Retour sur le forum PHP 2024
Revivez les moments forts du Forum PHP 2024 avec l'AFUP ! Découvrez l'avenir du PHP et les innovations qui feront la différence.
Vous en avez marre de ne pas comprendre ce que fait votre cousin dans l’IT ? Cet article est fait pour vous. En effet, ce domaine regorge de termes ou formulations que tout le monde ne comprend pas, mais pas de panique, nous vous avons concocté un glossaire du vocabulaire du monde du développement.
Ce type de logiciel permet de faire le lien entre les utilisateurs et les composants matériels d'un ordinateur. Il gère les ressources matérielles (comme le processeur, la mémoire, le disque dur, les périphériques d'entrée/sortie) d'un ordinateur et fournit, à travers une interface conviviale, des services aux programmes et aux utilisateurs. C’est en quelque sorte un chef d’orchestre qui mène la danse.
Il existe plusieurs types de systèmes d’exploitation. Les plus connus et utilisés sont Windows de Microsoft, macOS d’Apple et Linux, qui est un système d’exploitation open-source. Ces derniers sont des systèmes d’exploitation pour ordinateurs. Pour les téléphones, nous connaissons tous Android, ou encore iOS.
Tout d’abord, il faut faire la différence entre les deux principaux types de développement, concentrés sur les aspects d’une application web : le back-end et le front-end.
On parle ici du développement qui se base sur la logique métier, la gestion des données et les aspects d’un serveur, d’une application web. C’est donc le côté serveur, la face cachée d’un site.
Ici les fondamentaux sont :
Ce type de développement est principalement concentré sur l’interface utilisateur et son expérience sur une application web. Cela revient à la partie exposée d’un site, le côté client.
En voici les principales missions :
Vous savez maintenant faire la différence entre le développement back-end et front-end. Nous avons rapidement évoqué les termes du côté client et du côté serveur. Voilà les principaux points à retenir.
Nous faisons ici référence à ce qui se passe dans le navigateur web de l’utilisateur. Comprenant tout ce qui touche à la mise en page, les boutons, les formulaires, les images et tout autre élément visible.
Le développement côté client utilise des langages de programmation comme HTLM (structure), CSS (esthétique) ou encore JavaScript (interactivité).
Ce côté est connu pour sa rapidité, cependant le code est visible par le client, donc il n’y a pas de réelle confidentialité.
Le côté serveur se réfère à toutes les opérations qui se déroulent sur le serveur sur lequel est hébergée l'application web. C'est la partie invisible pour l'utilisateur et qui gère le traitement des données, la logique métier et les interactions avec les bases de données.
Les langages utilisés ici sont JavaScript, Python, Ruby, ou encore PHP, un des plus connus.
Retenez bien que les deux types de développement et les deux côtés travaillent ensemble pour créer et maintenir une application web fonctionnelle et interactive.
Et si, on utilisait une comparaison surprenante pour comprendre plus simplement ces termes. Les pièces d’un garage vous donnent une voiture…
Le framework représente ici un entrepôt de pièces détachées, dans lequel un garage, ici un IDE (environnement de développement intégré), va venir piocher les fonctionnalités (ou pièces) qui l’intéressent. Pour finir, les pièces de métal ou de plastique sont le langage de programmation.
C’est une infrastructure logicielle qui fournit des outils à la base d’un logiciel ou d’une application. Un framework, ou en français une structure logicielle, rassemble des bibliothèques, des composants et des modèles de conception. Ceux-ci permettent aux développeurs de créer plus facilement et efficacement des applications, basées sur une structure préétablie. Notez bien qu’un framework n’est pas une application autonome, mais plutôt une base sur laquelle un développeur peut construire son projet, en utilisant les fonctionnalités proposées et la possibilité d’en ajouter d’autres. Un framework est bien souvent associé à un langage de programmation, par exemple PHP pour notre framework Symfony.
De son vrai nom, environnement de développement intégré, cette forme d’application permet aux développeurs de générer du code et de programmer grâce aux nombreuses fonctionnalités proposées. Chaque développeur peut organiser son workflow, alias son espace de travail, grâce à un IDE. Si vous souhaitez plus d’informations sur le sujet, vous pouvez les retrouver dans cet article.
C’est un ensemble de règles, de syntaxes et de symboles qui permettent la rédaction d’instructions exécutées par l’ordinateur. C’est grâce au langage de programmation que les logiciels sont créés.
Il existe de nombreux langages de programmation, chacun avec sa propre syntaxe, ses règles et ses fonctionnalités spécifiques. Comme cités précédemment : PHP, JavaScript, HTML, Python ou encore les langages en C.
On parle ici de la version lisible par les humains d’un programme informatique. Il s'agit du texte d’un langage de programmation spécifique, écrit par un développeur pour créer une application web. Il nécessite d’être traduit en langage machine pour être compris par l’ordinateur.
Ce système de gestion de versions distribué est amplement utilisé dans le développement web. Grâce à celui-ci, on peut suivre les modifications apportées aux fichiers d'un projet, travailler en collaboration avec d'autres personnes et même gérer efficacement les différentes versions du code.
Git utilise un système de fichiers distribués, ce qui signifie que chaque personne qui travaille sur un projet dispose d'une copie complète du dépôt Git sur son propre ordinateur. Les modifications sont enregistrées localement dans un "commit".
Lorsque l’on utilise Git, on dit que l'on vient Push des commits sur des branches secondaires. Pour valider une de ces branches, il faut demander la Merge, sous forme d’une Pull request sur Git Hub ou une Merge request sur Git Lab, à l’administrateur ayant les droits du dépôt. On vous explique tous ces termes.
C’est l'action d'envoyer vos commits locaux vers un référentiel distant qui met ainsi à jour l'historique et permet aux autres membres de l'équipe de récupérer vos modifications. Cela facilite la collaboration et la synchronisation des travaux sur un projet commun.
Un “commit” représente l’action d’enregistrer les modifications apportées sur un ensemble de fichiers sources, appartenant à un système de contrôle de version. Il permet ainsi de conserver un historique des modifications et de faciliter la collaboration entre les développeurs.
Merge, ou “fusionner” en français, est un terme régulièrement utilisé en relation avec les systèmes de contrôle de versions, comme Git. Il fait référence à la combinaison de deux branches distinctes (la branche principale et la branche de développement) d’un dépôt Git en une seule. Les branches sont des copies distinctes du code source, qui aident les développeurs à travailler sur des fonctionnalités ou bugs, sans affecter la version principale du projet, juste en créant la nouvelle version du code.
Les tests sont essentiels dans le domaine du développement web, ils font référence aux processus de vérification et de validation du bon fonctionnement d’un projet.
Il existe plusieurs types de tests, en voici les principaux :
À noter : les tests peuvent être réalisés manuellement par les développeurs à l’aide d’outils fournis dans un framework.
Si l’on simplifie la chose, c’est un grand excel rempli de termes anglais. Plus concrètement, une base de données, c'est un système organisé et structuré permettant de stocker, gérer et récupérer des données de manière efficace et cohérente. Elle joue un rôle essentiel dans tous projets mis en place. Elle offre la possibilité de stocker et de gérer de grandes quantités de données de manière structurée.
Ce système permet de stocker temporairement des données fréquemment utilisées dans une mémoire rapide, appelée cache. Cela permet d’accélérer les opérations ultérieures d’accès à ces données. La mise en cache permet d’être plus rapide dans la récupération des données, plutôt que d’avoir à aller les chercher dans une source de données plus lente. La mise en cache améliore les performances et la réactivité du système en réduisant la charge de la source de données.
Le terme production se rapporte à l’environnement dans lequel une application est mise à disposition des utilisateurs finaux. En d’autres termes, c’est le serveur public. Cette phase de production est la dernière étape du cycle de développement, elle représente l'état dans lequel l'application est prête à l’emploi dans un environnement réel. Cette étape regroupe donc le travail de l’équipe de développement et de l’équipe d’exploitation, qui est chargée de la maintenir à niveau, on appelle ça le DevOps, combinaison des mots Développement et Opération.
______
Docker est un outil populaire dans le développement web. C’est une plate-forme de virtualisation de conteneurs open-source. Elle permet aux développeurs d'emballer une application et ses dépendances dans un conteneur isolé, portable et autosuffisant qui peut être exécuté sur n'importe quel système d'exploitation.
C’est une unité logicielle légère qui vient encapsuler une application et tous les composants nécessaires d’une application. Il est mis en place de manière isolée sur un système d’exploitation hôte partagé. Cela fait de lui, une unité portable et simple à déployer.
Il simplifie le déploiement et la gestion des sites web, tout en permettant la création de conteneurs autonomes qui peuvent être exécutés sur n’importe quel système d’exploitation compatible.
Docker utilise une technologie appelée “la virtualisation”. Pas de panique, on vous explique. Cela veut dire qu’il repose sur les fonctionnalités du noyau du système d’exploitation utilisé pour isoler les conteneurs les uns des autres et du serveur hôte. Chaque conteneur utilise des ressources partagées de manière efficace, ce qui lui permet d'exécuter plusieurs conteneurs sur un seul hôte sans surcharge significative.
Docker est donc un outil puissant pour créer, déployer et exécuter des applications web dans des conteneurs isolés.
Si l’on prend pour exemple notre framework, Symfony. Celui-ci effectue des mises à jour majeures tous les deux ans, entre-temps, il en existe des mineures et des corrections. Une migration, c'est la transition d’une version à une autre pour un projet. L’idéal étant de limiter les migrations trop importantes pour ne pas avoir de projet obsolète.
Cette action, bien connue des dev, aide notamment à la contribution à des projets open source.
Un fork est une copie d’un dépôt de code source existant (en général un projet logiciel hébergé sur GitHub ou ses camarades de gestion de versions). Celui-ci crée une copie complète du projet de l’espace de travail utilisé, ce qui permet de travailler dessus indépendamment.
On utilise cette technique lorsqu’on veut contribuer à un projet existant, sans avoir de droits d’accès en écriture, pour y apporter des modifications directes. On vient créer une branche distincte sur laquelle on apporte nos modifications pour les partager ensuite.
Même les meilleurs ont besoin de pouvoir vérifier dans la documentation officielle, des informations sur lesquelles ils peuvent avoir des doutes. Elle est donc essentielle dans le monde du développement web. Les blogs des différents frameworks ou langages de programmation sont remplis de réponses aux questions de chacun.
Déclinables en de nombreuses versions ou applications, ces méthodes permettent une gestion du développement des projets. Elles fonctionnent sur la base de l’itératif et de l’incrémental. Les méthodes agiles établissent un ensemble de tâches et d’étapes à effectuer, qu’elles classent selon leur degré de priorité. Une étape est nommée “ticket” et il n’est possible de passer au prochain ticket qu’en ayant fait valider le précédent par le client. Ces méthodes agiles sont reconnues pour la communication qu’elles proposent.
Nous espérons vous avoir aidé à mieux comprendre le vocabulaire utilisé par les développeurs. Il est possible que vous entendiez ces termes lors de discussions avec eux ou lorsque vous faites appel aux services d’une agence web comme Efficience IT !