Académique Documents
Professionnel Documents
Culture Documents
Technologie permettant de déterminer la localisation d’un objet ou d’une personne avec une
certaine précision. La technologie s’appuie généralement sur le système GPS ou sur les interfaces de
communication d’un téléphone mobile. Les applications et finalités de la géolocalisation sont
multiples : de l’assistance à la navigation, à la mise en relation des personnes, mais aussi à la gestion
en temps réel des moyens en personnel et en véhicules des entreprises, etc.
Cette technique pour situer un objet connecté est désormais très précise et permet un grand nombre
d'utilisations qui révolutionnent la vie quotidienne des professionnels et des particuliers.
Cette technique pour situer un objet connecté est désormais très précise et permet un grand
nombre d'utilisations qui révolutionnent la vie quotidienne des professionnels et des
particuliers.
Sommaire
Sur le plan juridique, la géolocalisation fait l'objet d'un encadrement bien spécifique. La Cnil
est notamment attentive à ce que cette technologie soit utilisée en parfaite conformité avec la
réglementation sur le respect des données à caractère personnel et de la vie privée. D'une
façon générale, pour tous les acteurs du numérique, la géolocalisation représente à la fois un
enjeu commercial majeur et un défi en termes de cybersécurité.
Voir le dossier
Exemples de géolocalisation
Aujourd'hui, la géolocalisation est utilisée dans de nombreux secteurs d'activités, autant que
dans le domaine de la vie privée. On la retrouve en particulier dans le transport et la
protection de marchandises (on sait à un moment précis à quel endroit se trouve une
marchandise), la protection, la sécurité et le suivi de personnes (skieurs hors piste, personnes
dépendantes, personnalités, etc.), la sécurité des biens (voiture par exemple).
Et en ce qui concerne l'utilisation courante par les particuliers, voici quelques exemples
d'utilisation pour des applications :
Transports : elle permet de suivre un chauffeur de VTC (Uber ou Heetch par exemple)
Livraison : indique la progression d'une livraison en cours (Deliveroo, Epicery, Frichti
proposent ce service à leurs utilisateurs)
Sport : certaines applications sportives proposent de retracer l'itinéraire de l'utilisateurs
lors d'un footing ou d'une randonnée pour lui donner des informations plus précises
sur ses performances.
Recherche locale (exemple le plus courant) : l'utilisateur géolocalisé peut chercher des
professionnels autour de lui. Google, Les Pages Jaunes, Bing disposent de cette
fonctionnalité.
Suivi d'itinéraire : Waze, Google, etc.
CONTENUS SPONSORISÉS
PUBLICITÉ Avoir toutes les chaînes télé ? C’est désormais possible TV SuperBoost
PUBLICITÉ Les tenues les plus inoubliables des Oscars de tous les temps Restwow
PUBLICITÉ [Photos] Histoire vraie : le destin brisé de cette jeune athlète Restwow
PUBLICITÉ [Photos] Les pires races de chiens à adopter selon les vétérinaires xfreehub
PUBLICITÉ Les tenues les plus inoubliables des Oscars de tous les temps - Lecap Restwow
PUBLICITÉ [Photos] Le destin brisé de cette athlète à cause d’une photo compromettante
Restwow
PUBLICITÉ [Photos] Cette liste contient les races de chiens que vous voudrez éviter peu
importe le coût. xfreehub
PUBLICITÉ [Photos] Que devient Allison Stokke 10 ans après la polémique qui a mis fin à sa
carrière Restwow
Outils
CMS ou système de gestion de contenu : définition
Système d'exploitation : définition, traduction et acteurs
Framework ou infrastructure logicielle : définition et traduction
FTP (serveur FTP) (File Transfer Protocol) : définition, traduction
Thread : définition simple et pratique
ERP ou PGI : définition, rôle et caractéristiques
Browser sur Internet : définition et liste d'exemples
Plugin : définition simple et pratique
IDE en informatique : définition pratique et détaillée
Driver : définition, traduction
Template : définition et exemples
Artefact en informatique : définition et rôle
Extension sur un navigateur : définition et exemples
SDK (Software Development Kit) : définition, traduction
Pattern : définition simple et pratique
RAD en informatique : définition et phases de la mise en pratique
Spring en informatique : définition concrète et caractéristiques
VoIP (Voice over IP) : définition, traduction et acteurs
Manifest en informatique : définition et utilisation
.htaccess : définition
Prototype informatique : définition concrète et détaillée
Barre d'outils (Toolbar) : définition, traduction et acteurs
Introduction
La géolocalisation est un procédé permettant de positionner un objet (une personne, une
information, ...) sur un plan ou une carte à l'aide de ses coordonnées géographiques.
Cette opération est réalisée à l'aide d'un terminal capable d'être localisé (grâce à un récepteur
GPS ou à d'autres techniques) et de publier (en temps réel ou de façon différée) ses
coordonnées géographiques (latitude/longitude). Les positions enregistrées peuvent être
stockées au sein du terminal et être extraites postérieurement, ou être transmises en temps réel
vers une plateforme logicielle de géolocalisation. La transmission temps réel nécessite un
terminal équipé d'un moyen de télécommunication de type GSM/GPRS, radio ou satellite lui
permettant d'envoyer les positions à des intervalles réguliers. Ceci permet de visualiser la
position du terminal au sein d'une carte à travers une plateforme de géolocalisation le plus
souvent accessible depuis internet.
Techniques de géolocalisation
Géolocalisation par géocodeur
La géolocalisation par satellite consiste à calculer, grâce aux signaux émis par une
constellation de satellites prévue à cet effet, la position actuelle sur la face terrestre d'un
terminal équipé d'une puce compatible. Cette position est alors traduite en termes de latitude,
longitude et parfois altitude (ex : 43° 5494 N - 1° 48472 E) et peut alors être représentée
physiquement sur une carte. Le réseau satellite de positionnement le plus connu est le GPS
(Global Positionning System), bien que l'alternative Européenne nommée Galileo soit en
cours de déploiement. Dans le cas du GPS, pour que le repérage spatial fonctionne, un
immense réseau constitué de 27 satellites (dont 3 de secours) tournant autour de la Terre (2
tours en 24 heures) à une altitude de 20 200 km et répartis sur 6 orbites (4 par orbite)
différentes est nécessaire. Ces satellites constituent un maillage du ciel et servent de repères
aux navigateurs GPS dans leur processus de calcul de position. Ce système de satellites est
conçu de façon à ce qu’il y en ait toujours au moins quatre « visibles » par les navigateurs
GPS, sans quoi la position ne peut pas être déterminée.
Pour qu'un terminal soit capable de se géolocaliser grâce au réseau GPS, celui-ci doit
absolument être équipé d'une puce électronique GPS (ex : SiRFstar III).
Le GPS offre une précision allant de 15 à 100 mètres pour les applications civiles.
Cette technique permet le positionnement d'un terminal GSM en se basant sur certaines
informations relatives aux antennes GSM aux quelles le terminal est connecté.
La précision du positionnement par GSM peut aller de 200 mètres à plusieurs kilomètres,
selon si le terminal se trouve en milieu urbain (où la densité d'antennes est supérieure), ou en
milieu rural.
Aujourd'hui, la méthode GSM la plus utilisée est celle du Cell ID. Cette méthode consiste à
récupérer les identifiants des antennes GSM aux quelles le terminal est connecté. Par la suite,
grâce à une base de données faisant le lien entre les identifiants des cellules et les positions
géographiques des antennes, le terminal est capable de déterminer sa position et d'émettre une
estimation.
Ces bases de données peuvent être mises à disposition par les opérateurs pour leurs abonnés,
ou par des sociétés privées qui recensent les antennes GSM ou ayant des partenariats avec les
opérateurs. Des bases de données communautaires existent et sont le plus souvent alimentées
par les utilisateurs eux-mêmes.
Étant donné que les bases de données Cell ID ne sont pas stockées localement dans le
terminal, une connexion internet de type GPRS/EDGE ou 3G peut être nécessaire afin
d'émettre une requête pour obtenir la correspondance Cell ID / Longitude Latitude.
De la même façon qu'un terminal GSM peut se localiser par la méthode du Cell ID sur un
réseau GSM, un terminal WiFi peut utiliser la même méthode en se basant sur les identifiants
des bornes WiFi (Adresses MAC) qu'il détecte. Il existe des bases de données recensant une
multitude de bornes d'accès WiFi ainsi que leur position géographique. Ces bases peuvent
appartenir à des entreprises privées ou à des communautés qui les publient gratuitement. Ces
bases de données sont construites en utilisant la méthode appelée War Driving, qui consiste à
parcourir les rues des villes en voiture avec un ordinateur portable équipé du WiFi et relié à
un récepteur GPS, afin de recenser un maximum de points d'accès WiFi.
La technologie RFID peut être utilisée pour la géolocalisation indoor. Pour se faire, une série
de lecteurs RFID équipés de différents types d'antennes sont positionnés de façon à couvrir
l'ensemble de la zone souhaitée. La zone est alors découpée en cases dont la surface varie en
fonction du nombre de lecteurs déployés et de leur puissance. Lorsqu'une personne équipée
d'un tag RFID actif sera dans ces zones là, le système sera capable de calculer sa position en
se basant sur le nombre de lecteurs qui détectent le tag et de déduire la position approximative
de l'individu en se référent au schéma de découpage établi. En temps réel, cette technique
reste néanmoins très approximative et sa précision permettra uniquement de déterminer la
pièce ou le couloir dans lequel se trouve la personne géolocalisée.
Cette technique de géolocalisation ne doit pas être confondue avec la localisation indoor d'une
personne en se basant sur la dernière détection de son tag lors d'une entrée ou sortie de zone.
Cette technique est notamment utilisée dans les hôpitaux grâce à des lecteurs RFID faible
puissance positionnés dans certaines portes du bâtiment et qui permettent de dire si une
personne équipée d'un tag les traverse.
L'iPhone d'Apple est un exemple de terminal capable d'utiliser une méthode hybride de
géolocalisation grâce à son interface GSM, WiFi et à son récepteur GPS. Cette fonction est
fournie par la société skyhookwireless, qui en l'occurrence met à disposition les bases de
données appropriées pour transformer les identifiants des cellules GSM et des points d'accès
WiFi en latitude/longitude et rayon de précision.
La position géographique d'un terminal géolocalisé reste néanmoins une information brute qui
peut être exploitée et couplée à d'autres données afin de créer une vaste quantité de services à
forte valeur ajoutée.
Afin d'exploiter cette information, la donnée (position) générée par un terminal qui se trouve
sur le terrain doit être transmise à une plateforme logicielle qui va la traiter, la présenter
graphiquement à l'utilisateur et l'associer à d'autres données afin d'enrichir les informations
relatives à l'état du terminal ou de la flotte de terminaux.
Aperçu et Fonctionnalités
Voici une liste de fonctions typiquement offertes par les plateformes de géolocalisation
professionnelles :
Télérelève d'information
La télérelève d'information consiste à récupérer à distance une série d'informations issues de
capteurs ou de systèmes informatiques, électroniques ou électriques. La géolocalisation est
très souvent couplée à des systèmes de télérelève via des boîtiers télématiques, ce qui permet
de combiner la position géographique d'un terminal ou d'un véhicule à une série
d'informations annexes relatives à l'objet géolocalisé. Dans un véhicule par exemple, ces
boîtiers peuvent se connecter au chronotachygraphe (pour le transport routier) ou à divers
capteurs ou voyants, ce qui permet de relever des informations telles que :
la vitesse du véhicule
les kilomètres parcourus
l'état d'une porte (ouverte/fermée)
l'état d'une remorque (accrochée/décrochée)
la température (pour les camions frigorifiques
Applications professionnelles
Quelques domaines dans lesquels la géolocalisation est communément utilisée sont listés ci-
dessous.
Semi-remorques
Remorques
Citernes
Camions frigorifiques
Conteneurs
Convoyeurs de fonds
Transport de matériaux dangereux
Possibilités fonctionnelles :
Camions benne
Bennes à ordures ménagères (BOM)
Bornes d'apport volontaire (BAV)
Véhicules d'entretien de parcs
Possibilités fonctionnelles :
Transport de passagers
Autobus
Navettes
Bateaux mouche
Taxis
Possibilités fonctionnelles :
Travailleurs isolés
Exploitants agricoles
Techniciens de maintenance
Commerciaux
Agents de sécurité
Journalistes, reporters
Possibilités fonctionnelles :
Suivi en temps réel et historique
Localisation exacte de lieu d'incident
Calcul de proximité
Envoi d'ordres de mission
Navigation vers les lieux d'intervention
Détection de verticalité
Bouton SOS avec envoi de message
Fonction levée de doute
Alarme par arrachement (via cordon jack)
Possibilités fonctionnelles :
Autres applications
Applications personnelles
Possibilités fonctionnelles :
Animaux de compagnie
Chevaux
Bétail
La géolocalisation : définition :
La géolocalisation est tout simplement la fonction permettant de localiser géographiquement
une personne via son téléphone portable, sa tablette, son PC ou tout autre objet connecté
permettant cette utilisation. Elle est utilisée dans divers secteurs et pour diverses raisons. Sur
internet, l’objectif est très souvent de proposer des produits ou des services situés dans une
zone proche de l’internaute et notamment à des fins marketing pour des offres personnalisées.
La géolocalisation est notamment très utile pour les commerces connectés ou les marques
puisqu’elle va permettre d’indiquer à l’internaute la boutique la plus proche au sein de
laquelle il va pouvoir réaliser une bonne affaire en terme de marketing mobile. Cette
technique est également très pratique pour personnaliser des messages commerciaux. Par
exemple, le message peut inclure le nom de la ville où se trouve l’internaute. Celle-ci sera
donc détectée automatiquement grâce à la géolocalisation. Il faut faire attention à ne pas trop
abuser de la géolocalisation, car l’internaute peut la percevoir comme une atteinte à la vie
privée.
Il est utile de préciser que la géolocalisation permet une visibilité sur les moteurs de recherche
et un bon positionnement sans même avoir besoin d’un site web. En effet, selon Google 18 %
des recherches locales mènent à un achat conte 7 % des recherches non locales. Plusieurs
tâches sont importantes à travailler pour optimiser sa géolocalisation sur le web comme
l’intégration de Google My Business.
les avis clients : les avis clients jouent un rôle important dans la construction de votre
réputation en ligne, cependant, avoir des positives apparentes sur votre profil d’entreprise
en indiquant votre géolocalisation. Cela renforcera votre notoriété dans le secteur de votre
activité et votre région.
le contenu localisé : vous le savez déjà, dans le référencement, le contenu est le roi, c’est
pourquoi, il est important de bien renseigner votre géolocalisation ainsi que les autres
informations concernant votre entreprise, cela peut se faire dans le footer de votre site web.
Google maps : Google a mis au service des entreprises l’outil Google maps qui vous sert à
identifier votre localisation. Pour que votre position soit bien optimisée il faut toutefois avoir
une proximité de votre entreprise par apport à la géolocalisation enregistrée par Google sur
votre mobile ou ordinateur.
Par ailleurs, Google a mis en place le service Google my business qui vous permettra
d’afficher votre profil directement sur les moteurs de recherche et les
SERP (Search Engine Result Page, la page de résultats de recherche). Ceci est en plus des
résultats de recherche naturelle, pour le paramétrer, il faut remplir les informations
suivantes :
Il faut savoir qu’un client sur deux se rend physiquement dans le lieu dans les 24 h qui suit
après avoir visité la fiche Google My Business, d’où l’importance de bien optimiser cette
dernière.
Si cet article vous a plu, nous vous invitons à découvrir notre méthodologie l’Acquisition
Strategy Design et à télécharger notre livre blanc « Placez le Marketing Digitale au
coeur de votre stratégie d’Acquisition ».
JavaScript est l’un des langages de programmation les plus populaires au monde.
Aujourd’hui, il propulse des millions de sites web et il a attiré des masses de développeurs et
de concepteurs pour créer des fonctionnalités pour le web. Si vous êtes novice en
programmation, JavaScript est facilement l’un des meilleurs langages de programmation à
maîtriser.
Au cours de ses 20 premières années, JavaScript a été utilisé principalement pour les scripts
côté client. Étant donné que JavaScript ne pouvait être utilisé qu’à l’intérieur de la balise
<script>, les développeurs devaient travailler dans plusieurs langages et frameworks entre
les composants frontend et backend. Plus tard est apparu Node.js, qui est un environnement
d’exécution comprenant tout ce qui est nécessaire pour exécuter un programme écrit en
JavaScript.
Le runtime utilise Chrome V8 en interne, qui est le moteur d’exécution JavaScript, et il est
également écrit en C++. Cela ajoute des cas d’utilisation supplémentaires au répertoire de
Node.js, comme l’accès aux fonctionnalités internes du système (comme la mise en réseau).
Node.js fonctionne différemment. Jetons un coup d’œil à chaque étape qu’il traverse :
Puisque Node.js utilise moins de threads, il utilise moins de ressources et de mémoire, ce qui
permet une exécution plus rapide des tâches. Ainsi, pour nos besoins, cette architecture
single-thread est équivalente à une architecture multi-threads. Lorsque l’on doit traiter des
tâches à forte intensité de données, l’utilisation de langages multi-threads comme Java est
beaucoup plus logique. Mais pour les applications en temps réel, Node.js est le choix évident.
Caractéristiques de Node.js
Node.js a connu une croissance rapide au cours des dernières années. Cela est dû à la vaste
liste de fonctionnalités qu’il offre :
1. Facile – Easy-Node.js est assez facile à prendre en main. C’est un choix incontournable pour
les débutants en développement web. Grâce à de nombreux tutoriels et à une vaste
communauté, il est très facile de se lancer.
2. Évolutif – Il offre une grande évolutivité aux applications. Node.js, étant single-thread, est
capable de gérer un grand nombre de connexions simultanées avec un débit élevé.
3. Vitesse – L’exécution non bloquante des threads rend Node.js encore plus rapide et plus
efficace.
4. Paquets – Un vaste ensemble de paquets Node.js open source est disponible et peut
simplifier votre travail. Aujourd’hui, il y a plus d’un million de paquets dans l’écosystème
NPM.
5. Backend solide – Node.js est écrit en C et C++, ce qui le rend rapide et ajoute des
fonctionnalités comme le support réseau.
6. Multi-plateforme – La prise en charge multi-plateforme vous permet de créer des sites web
SaaS, des applications de bureau et même des applications mobiles, le tout en utilisant
Node.js.
7. Maintenable – Node.js est un choix facile pour les développeurs, car le frontend et le
backend peuvent être gérés avec JavaScript comme un seul langage.
Git est de loin le système de contrôle de version le plus largement utilisé aujourd'hui. Git est
un projet open source avancé, qui est activement maintenu. À l'origine, il a été développé en
2005 par Linus Torvalds, le créateur bien connu du noyau du système d'exploitation Linux.
De plus en plus de projets logiciels reposent sur Git pour le contrôle de version, y compris des
projets commerciaux et en open source. Les développeurs qui travaillent avec Git sont bien
représentés dans le pool de talents disponible, et la solution fonctionne bien sur une vaste
gamme de systèmes d'exploitation et d'environnements de développement intégrés (IDE).
Performances
Les performances brutes de Git sont très élevées par rapport à de nombreuses alternatives.
Commiter de nouveaux changements, créer des branches, faire des merges et comparer les
anciennes versions… Toutes ces actions sont optimisées pour les performances. Les
algorithmes implémentés dans Git tirent parti de connaissances approfondies sur les attributs
courants des arborescences de fichiers de code source réel, la manière dont ils sont modifiés
au fil du temps et les schémas d'accès.
Contrairement à certains logiciels de contrôle de version, Git n'est pas dupe des noms des
fichiers au moment de déterminer le type de stockage et l'historique de version de
l'arborescence des fichiers. Au lieu de cela, Git se concentre sur le contenu du fichier lui-
même. Après tout, les fichiers de code source sont fréquemment renommés, partagés et
réorganisés. Le format d'objet des fichiers du dépôt Git associe le codage différentiel
(stockage de différences de contenu) et la compression ; en clair, il stocke explicitement les
contenus du répertoire et les objets de métadonnées de version.
Par exemple, imaginons qu'Alice, une développeuse, apporte des changements au code source
en ajoutant une fonctionnalité pour la livraison 2.0 à venir, puis qu'elle crée des commits de
ces changements en y associant des messages descriptifs. Ensuite, elle travaille sur une
deuxième fonctionnalité et réalise à nouveau des commits de ces changements. Bien sûr, ces
changements sont stockés comme des tâches isolées dans l'historique de version. Par la suite,
Alice bascule sur la branche de la version 1.3 du même logiciel pour corriger un bug qui
n'affecte que cette version plus ancienne. Le but est de permettre à l'équipe d'Alice de livrer
un correctif de bug, la version 1.3.1, avant que la version 2.0 ne soit prête. Alice peut ensuite
retourner sur la branche 2.0 pour continuer à travailler sur de nouvelles fonctionnalités pour
cette version ; le tout sans accéder au réseau, ce qui lui permet de travailler rapidement et
efficacement. Elle pourrait même effectuer ces tâches à bord d'un avion. Une fois qu'elle est
prête à envoyer tous les changements commités individuellement vers le dépôt distant, Alice
peut les « pusher » en une fois.
Sécurité
L'intégrité du code source géré a été la priorité absolue lors de la conception de Git. Le
contenu des fichiers, les liens entre les fichiers et les répertoires, les versions, les tags, les
commits : tous ces éléments du dépôt Git sont sécurisés à l'aide d'un algorithme de hachage
sécurisé cryptographiquement, appelé SHA1. Celui-ci protège le code et l'historique des
changements contre toute modification accidentelle ou malveillante, tout en assurant une
traçabilité complète de l'historique.
Avec Git, vous êtes sûr de disposer d'un historique authentique de votre code source.
D'autres systèmes de contrôle de version ne prévoient pas de protection contre des
modifications secrètes à une date ultérieure. Toute entreprise qui dépend du développement
logiciel peut ainsi faire face à d'importantes failles de sécurité.
Flexibilité
Lors de la conception de Git, l'un des principaux objectifs a été la flexibilité. Git est flexible à
plusieurs niveaux : que ce soit pour la prise en charge de divers workflows de développement
non linéaires, pour son efficacité dans l'élaboration de projets de différente envergure ou pour
sa compatibilité avec de nombreux systèmes et protocoles existants.
Git a été conçu pour prendre en charge le branching et le tagging en priorité (contrairement à
SVN), et les opérations qui concernent les branches et les tags (comme les merges et les
reverts) sont également stockées dans l'historique des changements. Peu de systèmes de
contrôle de version offrent un tel niveau de suivi.
Git offre les fonctionnalités, les performances, le niveau de sécurité et la flexibilité dont la
plupart des équipes et des développeurs ont besoin. Ces avantages de Git sont repris en détail
ci-dessus. Lorsqu'elles les comparent à d'autres solutions, beaucoup d'équipes préfèrent Git.
Parmi les outils du genre, Git est le plus adopté. Git séduit pour plusieurs raisons. Chez
Atlassian, le code source de nos projets est essentiellement géré dans Git.
Un grand nombre de développeurs ont déjà travaillé avec Git, et il est fort probable qu'une
proportion importante de jeunes diplômés ne connaissent que cet outil. Si certaines entreprises
ont beaucoup de choses à apprendre au moment de passer d'un autre système de contrôle de
version à Git, bon nombre de leurs développeurs actuels et à venir n'ont pas besoin de
formation.
Outre le large pool de talents, la prédominance de Git implique aussi que de nombreux
logiciels et services tiers sont déjà intégrés à Git y compris les IDE et nos propres outils
comme le client de bureau DVCS, Sourcetree, le logiciel de suivi des tickets et des projets,
Jira, ainsi que le service d'hébergement de code, Bitbucket.
Si vous êtes un développeur inexpérimenté et que vous souhaitez acquérir des compétences
utiles dans les outils de développement, en particulier le contrôle de version, Git doit figurer
sur votre liste.
Git est largement approuvé et compte une vaste base d'utilisateurs. La documentation est
excellente et abondante : elle inclut des livres, des tutoriels et des sites Web dédiés. Mais ce
n'est pas tout : vous trouverez également des podcasts et des tutoriels vidéo.
La mise en open source réduit les coûts pour les développeurs amateurs, puisqu'ils peuvent
utiliser Git gratuitement. Pour les projets open source, Git est incontestablement le successeur
des anciennes générations de systèmes de contrôle de version ayant fait leurs preuves, comme
SVN et CVS.
Critiques de Git
Une critique récurrente affirme que Git est difficile à maîtriser. Une partie de la terminologie
de Git sera nouvelle pour les nouveaux venus et pour les utilisateurs d'autres systèmes, la
terminologie Git peut être différente, par exemple, revert dans Git signifie autre chose que
dans SVN ou CVS. Néanmoins, Git est très puissant et fournit de nombreuses fonctionnalités
à ses utilisateurs. Apprendre à utiliser ces fonctionnalités peut prendre un certain temps, mais
une fois assimilées, elles permettront aux équipes d'augmenter leur vitesse de développement.
Les équipes qui utilisent un système de contrôle de version non distribué et qui ont l'habitude
d'utiliser un dépôt centralisé auront peut-être du mal à s'en séparer. Pourtant, si Git a été conçu
comme un système de contrôle de version décentralisé (DVCS), il vous permet quand même
d'utiliser un dépôt canonique officiel, où tous les changements apportés au logiciel sont
stockés. Comme tous les développeurs disposent d'un dépôt complet, leur travail n'est pas
conditionné par la disponibilité et les performances du serveur « central ». Pendant les pannes
et lorsqu'ils sont hors ligne, les développeurs peuvent toujours consulter l'historique du projet
dans son intégralité. Comme Git est flexible en plus d'être décentralisé, vous pouvez continuer
à travailler comme à votre habitude, tout en profitant des avantages supplémentaires du
logiciel. Vous ne vous rendez peut-être pas compte que vous passez à côté de certains d'entre
eux.
Maintenant que vous en savez plus sur le contrôle de version, sur Git et sur son utilité pour les
équipes de développement, poursuivez votre lecture pour découvrir les avantages que Git peut
apporter à votre entreprise dans son ensemble.
Démarrer maintenant
À suivre :
Pourquoi Git pour votre entreprise ?
Git est de loin le système de contrôle de version le plus largement utilisé aujourd'hui. Git est
un projet open source avancé, qui est activement maintenu. À l'origine, il a été développé en
2005 par Linus Torvalds, le créateur bien connu du noyau du système d'exploitation Linux.
De plus en plus de projets logiciels reposent sur Git pour le contrôle de version, y compris des
projets commerciaux et en open source. Les développeurs qui travaillent avec Git sont bien
représentés dans le pool de talents disponible, et la solution fonctionne bien sur une vaste
gamme de systèmes d'exploitation et d'environnements de développement intégrés (IDE).
En plus d'être décentralisé, Git a été conçu pour répondre à trois objectifs : performances,
sécurité et flexibilité.
Performances
Les performances brutes de Git sont très élevées par rapport à de nombreuses alternatives.
Commiter de nouveaux changements, créer des branches, faire des merges et comparer les
anciennes versions… Toutes ces actions sont optimisées pour les performances. Les
algorithmes implémentés dans Git tirent parti de connaissances approfondies sur les attributs
courants des arborescences de fichiers de code source réel, la manière dont ils sont modifiés
au fil du temps et les schémas d'accès.
Contrairement à certains logiciels de contrôle de version, Git n'est pas dupe des noms des
fichiers au moment de déterminer le type de stockage et l'historique de version de
l'arborescence des fichiers. Au lieu de cela, Git se concentre sur le contenu du fichier lui-
même. Après tout, les fichiers de code source sont fréquemment renommés, partagés et
réorganisés. Le format d'objet des fichiers du dépôt Git associe le codage différentiel
(stockage de différences de contenu) et la compression ; en clair, il stocke explicitement les
contenus du répertoire et les objets de métadonnées de version.
Par exemple, imaginons qu'Alice, une développeuse, apporte des changements au code source
en ajoutant une fonctionnalité pour la livraison 2.0 à venir, puis qu'elle crée des commits de
ces changements en y associant des messages descriptifs. Ensuite, elle travaille sur une
deuxième fonctionnalité et réalise à nouveau des commits de ces changements. Bien sûr, ces
changements sont stockés comme des tâches isolées dans l'historique de version. Par la suite,
Alice bascule sur la branche de la version 1.3 du même logiciel pour corriger un bug qui
n'affecte que cette version plus ancienne. Le but est de permettre à l'équipe d'Alice de livrer
un correctif de bug, la version 1.3.1, avant que la version 2.0 ne soit prête. Alice peut ensuite
retourner sur la branche 2.0 pour continuer à travailler sur de nouvelles fonctionnalités pour
cette version ; le tout sans accéder au réseau, ce qui lui permet de travailler rapidement et
efficacement. Elle pourrait même effectuer ces tâches à bord d'un avion. Une fois qu'elle est
prête à envoyer tous les changements commités individuellement vers le dépôt distant, Alice
peut les « pusher » en une fois.
Sécurité
L'intégrité du code source géré a été la priorité absolue lors de la conception de Git. Le
contenu des fichiers, les liens entre les fichiers et les répertoires, les versions, les tags, les
commits : tous ces éléments du dépôt Git sont sécurisés à l'aide d'un algorithme de hachage
sécurisé cryptographiquement, appelé SHA1. Celui-ci protège le code et l'historique des
changements contre toute modification accidentelle ou malveillante, tout en assurant une
traçabilité complète de l'historique.
Avec Git, vous êtes sûr de disposer d'un historique authentique de votre code source.
Flexibilité
Lors de la conception de Git, l'un des principaux objectifs a été la flexibilité. Git est flexible à
plusieurs niveaux : que ce soit pour la prise en charge de divers workflows de développement
non linéaires, pour son efficacité dans l'élaboration de projets de différente envergure ou pour
sa compatibilité avec de nombreux systèmes et protocoles existants.
Git a été conçu pour prendre en charge le branching et le tagging en priorité (contrairement à
SVN), et les opérations qui concernent les branches et les tags (comme les merges et les
reverts) sont également stockées dans l'historique des changements. Peu de systèmes de
contrôle de version offrent un tel niveau de suivi.
Parmi les outils du genre, Git est le plus adopté. Git séduit pour plusieurs raisons. Chez
Atlassian, le code source de nos projets est essentiellement géré dans Git.
Un grand nombre de développeurs ont déjà travaillé avec Git, et il est fort probable qu'une
proportion importante de jeunes diplômés ne connaissent que cet outil. Si certaines entreprises
ont beaucoup de choses à apprendre au moment de passer d'un autre système de contrôle de
version à Git, bon nombre de leurs développeurs actuels et à venir n'ont pas besoin de
formation.
Outre le large pool de talents, la prédominance de Git implique aussi que de nombreux
logiciels et services tiers sont déjà intégrés à Git y compris les IDE et nos propres outils
comme le client de bureau DVCS, Sourcetree, le logiciel de suivi des tickets et des projets,
Jira, ainsi que le service d'hébergement de code, Bitbucket.
Si vous êtes un développeur inexpérimenté et que vous souhaitez acquérir des compétences
utiles dans les outils de développement, en particulier le contrôle de version, Git doit figurer
sur votre liste.
Git est un projet open source bien pris en charge, qui a bénéficié d'une gestion solide pendant
plus de dix ans. Les mainteneurs du projet ont su faire preuve de jugement et ont adopté une
stratégie réfléchie pour répondre aux besoins à long terme de leurs utilisateurs, en publiant
régulièrement de nouvelles versions pour améliorer l'ergonomie et les fonctionnalités. La
qualité du logiciel open source est évidente, et un nombre incalculable d'entreprises misent sur
cette qualité.
Git est largement approuvé et compte une vaste base d'utilisateurs. La documentation est
excellente et abondante : elle inclut des livres, des tutoriels et des sites Web dédiés. Mais ce
n'est pas tout : vous trouverez également des podcasts et des tutoriels vidéo.
La mise en open source réduit les coûts pour les développeurs amateurs, puisqu'ils peuvent
utiliser Git gratuitement. Pour les projets open source, Git est incontestablement le successeur
des anciennes générations de systèmes de contrôle de version ayant fait leurs preuves, comme
SVN et CVS.
Critiques de Git
Une critique récurrente affirme que Git est difficile à maîtriser. Une partie de la terminologie
de Git sera nouvelle pour les nouveaux venus et pour les utilisateurs d'autres systèmes, la
terminologie Git peut être différente, par exemple, revert dans Git signifie autre chose que
dans SVN ou CVS. Néanmoins, Git est très puissant et fournit de nombreuses fonctionnalités
à ses utilisateurs. Apprendre à utiliser ces fonctionnalités peut prendre un certain temps, mais
une fois assimilées, elles permettront aux équipes d'augmenter leur vitesse de développement.
Les équipes qui utilisent un système de contrôle de version non distribué et qui ont l'habitude
d'utiliser un dépôt centralisé auront peut-être du mal à s'en séparer. Pourtant, si Git a été conçu
comme un système de contrôle de version décentralisé (DVCS), il vous permet quand même
d'utiliser un dépôt canonique officiel, où tous les changements apportés au logiciel sont
stockés. Comme tous les développeurs disposent d'un dépôt complet, leur travail n'est pas
conditionné par la disponibilité et les performances du serveur « central ». Pendant les pannes
et lorsqu'ils sont hors ligne, les développeurs peuvent toujours consulter l'historique du projet
dans son intégralité. Comme Git est flexible en plus d'être décentralisé, vous pouvez continuer
à travailler comme à votre habitude, tout en profitant des avantages supplémentaires du
logiciel. Vous ne vous rendez peut-être pas compte que vous passez à côté de certains d'entre
eux.
Maintenant que vous en savez plus sur le contrôle de version, sur Git et sur son utilité pour les
équipes de développement, poursuivez votre lecture pour découvrir les avantages que Git peut
apporter à votre entreprise dans son ensemble.
Démarrer maintenant
À suivre :
Pourquoi Git pour votre entreprise ?
Cette application de design est idéale pour toutes les créations vectorielles, destinées au print
et au web. Il est possible de dessiner librement des formes, des motifs, de jouer sur les
couleurs ou les textures pour produire des créations de qualité.
L’outil permet de travailler hors ligne, et de retrouver son travail d’un appareil à l’autre grâce
à la synchronisation des fichiers dans le Cloud.
Côté dessin, Illustrator possède différents types d’outils pour permettre aux créateurs
d’exprimer au mieux leurs idées :
Adobe Illustrator est accessible à partir de 23,99 euros par mois, et disponible sur desktop et
iPad. Vous avez aussi la possibilité de souscrire à la suite complète d’Adobe à partir de 59,99
€ par mois. Une version d’essai de 7 jours vous permet de tester l’outil gratuitement.
Tous les exemples ont été développés à l’aide de MongoDB 5, mais la plupart fonctionneront
dans des versions antérieures ou ultérieures. Le code peut être saisi directement dans une
application cliente ou dans le shell MongoDB (mongo ou mongosh) pour interroger et mettre
à jour la base de données.
Il existe une gamme de types de bases de données NoSQL, mais MongoDB stocke les
données dans des objets de type JavaScript appelés documents, dont le contenu ressemble à
ceci :
{
_id: "123",
name: "Craig"
}
Contrairement aux tables SQL, il n’y a pas de limites structurelles à ce que vous pouvez
stocker dans MongoDB. Les schémas de données ne sont pas imposés : Vous pouvez stocker
ce que vous voulez où vous voulez. Cela rend MongoDB idéal pour les structures de données
plus organiques – ou désordonnées.
Prenons l’exemple d’un carnet d’adresses de contacts. Les personnes peuvent souvent avoir
plusieurs numéros de téléphone. Vous pourriez définir trois champs de téléphone dans une
table SQL, mais ce serait trop pour certains contacts et trop peu pour d’autres. En fin de
compte, vous aurez besoin d’une table de téléphone séparée, ce qui ajoute à la complexité.
Dans MongoDB, ces numéros de téléphone pourraient être définis comme un tableau illimité
d’objets dans le même document :
{
_id: "123",
name: "Craig",
telephone: [
{ home: "0123456789" },
{ work: "9876543210" },
{ cell: "3141592654" }
]
}
Notez que MongoDB utilise une notation d’objets JavaScript similaire pour les mises à jour et
les requêtes de données, ce qui peut poser quelques difficultés si vous êtes habitué à SQL.
Éléments de MongoDB
Avant d’aller plus loin, jetons un coup d’œil à ce qui fait le charme de MongoDB. Nous
utiliserons ce vocabulaire tout au long de cet article.
Docker est un outil de gestion de logiciels qui peut installer, configurer et exécuter MongoDB
ou toute autre application en quelques minutes.
Installez Docker et Docker Compose puis créez un dossier de projet avec un seul fichier
nommé docker-compose.yml contenant le contenu suivant (notez que les indentations sont
essentielles) :
version: '3'
services:
mongodb:
image: mongo:5
environment:
- MONGO_INITDB_ROOT_USERNAME=root
- MONGO_INITDB_ROOT_PASSWORD=pass
- MONGO_INITDB_DATABASE=mongodemo
container_name: mongodb
volumes:
- dbdata:/data/db
ports:
- "27017:27017"
adminer:
image: dehy/adminer
container_name: adminer
depends_on:
- mongodb
ports:
- "8080:80"
volumes:
dbdata:
docker-compose up
La dernière version de MongoDB 5 sera téléchargée et lancée. Cela prendra quelques minutes
lors du premier lancement, mais les exécutions suivantes sont considérablement plus rapides.
Notez que :
Un compte administrateur MongoDB est défini avec l’ID « root » et le mot de passe « pass ».
Les données sont sauvegardées entre les redémarrages dans un volume Docker nommé
dbdata.
Le client de base de données Adminer est également fourni.
Vous pouvez utiliser n’importe quel client de base de données MongoDB pour vous connecter
à localhost:27017 en utilisant l’identifiant « root » et le mot de passe « pass ». Sinon, vous
pouvez accéder à Adminer à l’adresse http://localhost:8080/ et vous connecter avec les
informations d’identification suivantes :
Info