Tout le vocabulaire technique dont vous avez besoin sur cette page
AI / IA - (Problématique)
Le terme « intelligence artificielle », créé par John McCarthy, est souvent abrégé par le sigle « IA » (ou « AI » en anglais, pour Artificial Intelligence).
Il est défini par l’un de ses créateurs, Marvin Lee Minsky, comme « la construction de programmes informatiques qui s’adonnent à des tâches qui sont, pour l’instant, accomplies de façon plus satisfaisante par des êtres humains car elles demandent des processus mentaux de haut niveau tels que : l’apprentissage perceptuel, l’organisation de la mémoire et le raisonnement critique ».
On y trouve donc le côté « artificiel » atteint par l'usage des ordinateurs ou de processus électroniques élaborés et le côté « intelligence » associé à son but d'imiter le comportement.
Cette imitation peut se faire dans le raisonnement, par exemple dans les jeux ou la pratique des mathématiques, dans la compréhension des langues naturelles, dans la perception : visuelle (interprétation des images et des scènes), auditive (compréhension du langage parlé) ou par d'autres capteurs, dans la commande d'un robot dans un milieu inconnu ou hostile.
API - (Terme / Problématique)
Une API (application programming interface ou « interface de programmation d’application ») est une interface logicielle qui permet de « connecter » un logiciel ou un service à un autre logiciel ou service afin d’échanger des données et des fonctionnalités.
Les API offrent de nombreuses possibilités, comme la portabilité des données, la mise en place de campagnes de courriels publicitaires, des programmes d’affiliation, l’intégration de fonctionnalités d’un site sur un autre ou l’open data. Elles peuvent être gratuites ou payantes.Source : cnil.fr
Exemple : Lorsque vous utilisez une application sur votre téléphone portable, l'application se connecte à Internet et envoie des données à un serveur. Le serveur récupère ensuite ces données, les interprète, effectue les actions nécessaires et renvoie les données à votre téléphone. L'application interprète alors ces données et vous présente les informations demandées de façon lisible. C'est à cela que sert une API : l'ensemble du processus passe par elle.
ATS - (Outils)
En cours.
Adresse IP - (Terme / Problématique)
Une adresse IP (pour Internet Protocol) est un numéro d’identification attribué de manière permanente ou provisoire à chaque périphérique connecté au réseau internet utilisant le protocole internet. Il est unique et permet l’identification du périphérique.
Agilité - (Méthode)
La méthode Agile est une méthode de gestion de projet qui consiste à décomposer vos projets en une suite de petits objectifs atteignables. Cette approche a été développée dans les années 2000 par 17 ingénieurs américains qui étaient insatisfaits des méthodes de gestion de projet de l’époque et qui leur reprochaient d’être trop lourdes, lentes et contraignantes.
Quand vous travaillez en mode Agile, vous travaillez en de petits cycles courts que l’on appelle sprints ou itérations qui durent généralement entre 1 semaine et 1 mois. On est donc bien loin des méthodes traditionnelles du type diagramme de Gantt ou des méthodes en cascade qui consistent à définir des plans de projet sur 12 ou 24 mois.
Il existe plusieurs façons d’appliquer la méthodologie Agile. Vous pouvez utiliser la méthode Kanban, Scrum ou encore l’extreme programming (XP). Toutes ces méthodes ont été construites sur les bases du Manifeste Agile.
Angular - (Framework / Techno)
Angular (communément appelé « Angular 2+ » ou « Angular v2 et plus ») est un framework pour clients, , basé sur TypeScript et codirigé par l'équipe du projet « Angular » chez Google ainsi que par une communauté de particuliers et de sociétés.
Angular est une réécriture complète d'AngularJS, cadriciel construit par la même équipe. Il permet la création d’applications Web et plus particulièrement d'applications Web monopages : des applications Web accessibles via une page Web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action.
Le framework est basé sur une architecture du type et permet donc de séparer les données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type d’architecture qui a largement fait ses preuves et qui permet une forte maintenabilité et une amélioration du travail collaboratif.
Architecture SOA - (Techno / Terme)
L'architecture orientée services (ou SOA, Service-Oriented Architecture) est un modèle de conception qui rend des composants logiciels réutilisables, grâce à des interfaces de services qui utilisent un langage commun pour communiquer via un réseau.
Un service est une unité autonome de fonctionnalité logicielle, ou d'un ensemble de fonctionnalités, conçue pour réaliser une tâche précise comme récupérer des informations ou exécuter une opération. Il contient les intégrations de code et de données nécessaires pour exécuter une fonction métier distincte et complète.
Vous pouvez y accéder à distance, et interagir avec lui ou le mettre à jour de manière indépendante. En d'autres termes, l'architecture SOA permet à des composants logiciels déployés et gérés séparément de communiquer et de fonctionner ensemble sous la forme d'applications logicielles communes à différents systèmes.
Source : redhat
Architecture web - (Techno / Terme)
L’architecture web correspond à l’organisation et la structuration d’une application web. Elle détermine le schéma de développement d’une application et comment les différentes briques qui la composent communiquent entre elles.
On la défini en amont du projet en fonction des besoins de l’application afin de faciliter le développement de chacun de ses modules en fournissant une logique d’organisation.
BDD / Base De Données / Database - (Techno / Terme)
Une collection de données stockées et organisées de manière à être manipulées et retrouvées. Imaginez des tableaux excel avec des millions voire des milliards de lignes.
Exemple : une liste de clients d’une boutique e-commerce avec leurs noms, leur adresse et leur numéro de téléphone. On communique avec les BDD par le biais de requêtes (=query). En développement web, on retrouve fréquemment des bases de données relationnelles, exploitées avec le langage de requêtes SQL et des bases de données non-relationnelles, dîtes “NoSQL”.
Exemple de gestionnaire de BDD SQL :
- MySQLS
- QLite
- PostGreSQL
Exemple de gestionnaire de BDD NoSQL :
- MondoDB
- Cassandra
Back-end - (Terme / Problématique)
Le Back-end est un domaine de développement web, correspondant à la partie codée invisible pour l’utilisateur : le côté serveur. Toute la logique informatique répondant aux requêtes émises par l’utilisateur via l’interface est ce qu’on appelle le back-end.
On y retrouve la gestion de la base de données, la communication inter-serveurs, la gestion d’API, l’accessibilité, la sécurité, etc... On le compare souvent à la partie immergée de l’iceberg, représentant la majorité du code d’une application.
Exemples de langages Back-end :
- Python
- PHP
- Ruby
- Java
Blockchain - (Techno / Problématique)
La Blockchain est une technologie moderne de stockage et de transmission d'informations. Elle fonctionne sans organe central de contrôle, mais apporte transparence et sécurité grâce à la validation des transactions par ledu réseau.
La blockchain est une assimilable à une base de données contenant l'historique de tous les échanges effectués depuis sa création. Puisqu'elle est partagée entre tous ses utilisateurs et sans intermédiaire, chacun peut vérifier sa validité et confirmer son intégrité.
Source : futura-sciences.com
CI / CD - (Problématique, Méthode)
CI/CD (ou pipeline CI/CD) pour Continuous Integration / Continuous Delivery (= Intégration Continue et Distribution/Déploiement continue).
La CI/CD est une approche permettant d’accélérer le cycle de mise en production d’une application grâce à l’automatisation appliquée à chaque étape de développement et de déploiement.
La CI s’applique aux équipes de développeurs et - comme son nom l’indique - consiste à intégrer en continu le code fourni par ces derniers. Ils peuvent ainsi faire évoluer l’application petit bout par petit bout et chacun de ses “petits bouts” sera testé puis fusionné au code existant.
La CD, s’applique aux équipes opérationnelles (ou d’exploitation), en charge du déploiement du code fourni par les équipes de développement dans l’étape précédente. On parle de Distribution et de Déploiement Continu. Elle automatise donc la transmission du code d’une équipe à l’autre (distribution) facilitant ainsi la visibilité et la communication entre les deux équipes parfois compliquée (cf. DevOps).
Le déploiement continu correspond lui à l’automatisation du déploiement, c’est-à-dire, de la transmission du code intégré (lors de la CI) vers l’environnement de production (la prod’) exploitable par l’utilisateur final. Déploiement et Distribution - très proche et parfois confondu - représentent la seconde partie du cycle de développement d’une application.
On pourrait résumer de manière très simpliste la CI/CD par l’automatisation des étapes de développement, de distribution et de déploiement. Le devOps est généralement l’acteur en charge de la mise en place de la CI/CD. L’approche CI/CD par ses automatisations en tous points, coïncide avec l’approche agile permettant d’accélérer l’évolutivité et le “Time to market” d’une application.
Elle contribue à la capacité d’une entreprise à faire sortir régulièrement et rapidement de nouvelles fonctionnalités et à s’adapter au retour de ses clients.
CRM - (Outils)
CRM (Customer Relationship Management) se traduit par gestion de la relation client. Plus généralement, lorsqu’on parle de CRM, on parle généralement de Logiciel CRM ou de système CRM.
Un CRM est donc un outil utilisé pour gérer, fluidifier et optimiser la relation d’une entreprise avec ses clients : suivi des process de vente, centralisation des coordonnées des contacts et des clients (téléphone, mail, contrats, etc), support après-vente, etc. L’objectif d’un CRM est donc de simplifier le back-office de la relation client, interne à l’entreprise, afin d’optimiser l’expérience client externe à l’entreprise.
CSS - (Langage)
CSS est l’acronyme de « Cascading Style Sheets » ce qui signifie « feuille de style en cascade ».Le CSS correspond à un langage informatique permettant de mettre en forme des pages web (HTML).Ce langage est donc composé des fameuses « feuilles de style en cascade » également appelées fichiers CSS (.css) et contient des éléments de codage.
Source : atinternet
CTO - (Métier)
Container / Conteneur - (Terme)
Les conteneurs sont des unités exécutables de logiciel dans lesquelles le code d'application est empaqueté, avec ses bibliothèques et ses dépendances, de manière commune, afin qu'il puisse être exécuté n'importe où, que ce soit sur un ordinateur de bureau, dans un système informatique traditionnel ou dans le cloud.
Source : ibm.com
DDD - (Méthode)
Le DDD pour « Domain-Driven Design » est appelé en français « Conception pilotée par le domaine ».La conception de notre application tout entière est définie sur le design du domaine. En quelques mots, il s’agit de représenter le métier directement dans le code. Plutôt que de coder le métier.
DDD, c’est une philosophie de conception, on se base sur le métier pour assembler la solution que l’on apporte au business, autrement dit notre code. Ainsi, la structure, le nom des classes, des champs, les actions des fonctions : tout ceci doit refléter le métier.
Dans le meilleur des mondes, une personne du métier doit presque être capable de comprendre l’intention du code qu’elle est en train de regarder. Mais le Domain-Driven Design, c’est avant tout la compréhension du métier par l’ensemble de l’équipe.
Plus qu’une technique, c’est une heuristique de conception : on va aller chercher une intuition sur le code métier à produire.Source : alexsoyes.com
Data / Donnée - (Terme)
On ne fait qu’en parler depuis le début de l’ère du digital, la data est le nouvel or noir, pour ne pas l’appeler l’or bleu. La data est partout, nous en créant tous au quotidiennement dès lors que nous utilisons un service digital ou numérique : un message Whatsapp, une recherche google, un paiement en ligne, une nouvelle vidéo sur un réseau social et même lors d’un simple passage sur une page web sans un clic !
La donnée correspond à une information enregistrée qui peut être retrouvée et retracée. Qu’elles soient enregistrées sur le cloud ou sur un ordinateur, elles seront stockées sur un équipement informatique (hardware) comme le disque dur de votre PC ou bien le serveur d’un datacenter à l’autre bout du monde.
Principalement utilisée dans l’univers big data (l’étude des forts volumes de données), en entreprise, elle est récupérée et stockée par le Data Engineer afin d’être utilisée et valorisée par les Data Scientist et Data Analyst.
Data Analyst - (Métier)
Data Engineer - (Métier)
Data Scientist - (Métier)
Deep Learning - (Techno, Problématique)
Le Deep learning ou apprentissage profond est l’une des technologies principales du Machine Learning. Avec le Deep Learning, nous parlons d’algorithmes capables de mimer les actions du cerveau humain grâce à des réseaux de neurones artificielles. Les réseaux sont composés de dizaines voire de centaines de « couches » de neurones, chacune recevant et interprétant les informations de la couche précédente.
Source : datascientest
Design pattern - (Terme)
En français : patron de conception.
En informatique, et plus particulièrement en développement logiciel, un patron de conception est un arrangement caractéristique de modules, reconnu comme bonne pratique en réponse à un problème de conception d'un logiciel. Il décrit une solution standard, utilisable dans la conception de différents logiciels.
Source : Wikipedia
Expliqué autrement, l’objectif du design pattern est de standardiser certaines bonnes pratiques de façon à partir d’un schéma (patron) de conception dont on sait l’efficacité face à un type de problème. On ne réinvente pas la roue, on gagne en temps et en fiabilité en réutilisant un modèle qui a fait ses preuves.
DevOps - (Métier)
Django - (Framework / Techno)
Django est un cadre de développement (ou framework) web open source en Python. Il a pour but de rendre le développement d'applications web simple et basé sur la réutilisation de code.
Développé en 2003 pour le journal local de Lawrence (État du Kansas aux Etats-Unis), Django a été publié sous licence BSD à partir du 1er juillet 2015. Depuis 1er Juin 2008, la Django Software Foundation s'occupe du développement et de la promotion du framework.
En plus de cette promotion régulière, des conférences entre développeurs et utilisateurs de Django sont organisées deux fois par an depuis 2008. Nommées DjangoCon, une se déroule en Europe et l'autre aux États-Unis. Plusieurs sites grand public sont désormais fondés sur Django, dont Pinterest et Instagram au moins en 2011 ou encore Mozilla.
Docker - (Techno)
Docker est un logiciel libre Open Source qui permet d’automatiser le déploiement d’applications. Il a été développé par Solomon Hykes de la société dotCloud et a été distribué à partir de mars 2013.
C’est une plateforme de virtualisation par conteneur qui va permettre de concevoir, tester et déployer des applications rapidement. Grâce à Docker, il est facile de déployer et dimensionner les applications dans n’importe quel environnement en s’assurant que le code s’exécutera automatiquement.
Source : syloe.com
E-commerce - (Terme)
L’e-commerce (ou ecommerce) est une pratique commerciale qui vise à mettre en relation des marchands et des acheteurs sur Internet. Les transactions de biens et/ou de services se font depuis une boutique en ligne, une application mobile, et autres canaux de vente comme les réseaux sociaux, les comparateurs de prix, les places de marché, les plateformes d’affiliation et de reciblage, etc.
Ses avantages :
- La possibilité de toucher une large audience.
- La connaissance fine du comportement d’achat de vos clients grâce à de nombreux outils marketing et d’analyse de données en ligne.
- La mise en place d’actions marketing ciblées pour offrir une expérience d’achat de qualité et unique aux acheteurs en ligne.
- À la différence d’une boutique physique, votre site e-commerce est ouvert en continu, ce qui vous permet d’éviter de passer à côté d’une vente.
Engineering manager - (Métier)
FDD - (Méthode)
Le développement basé sur les fonctionnalités (de l'anglais feature-driven development ou FDD) est un processus de développement de logiciel itératif et incrémental.
Il est l'une des méthodes légères ou Agile pour le développement de logiciels. FDD regroupe un certain nombre de meilleures pratiques reconnues par l'industrie en un tout cohérent.
Ces pratiques sont toutes issues d'une perspective de fonctionnalité valorisée par le client. Son objectif principal est de fournir des logiciels de travail tangibles et répétés en temps opportun.
Fork - (Terme)
En cours.
Framework - (Techno)
Traduit littéralement par “Cadre de travail”, le framework représente une sorte de squelette de développement combiné à une boite à outils.
Toujours rattaché à un langage, ils sont fréquemment développés par une communauté open-source. Chaque framework propose des composants autonomes facilitant le développement d’application en imposant une structure et une rigueur de travail.
Exemples de framework connus :
- Symfony, Laravel et Zend avec le langage PHP
- Spring et Spark pour le langage Java
- Django, Pyramid ou Flask pour Python
- React et VueJS pour le Javascript
- Rails (RubyOnRails) pour le langage Ruby
From scratch - (Terme)
Tout simplement partir de rien, partir de zéro. Dans la tech, on parle souvent de “développer une application from scratch”. On parle alors de concevoir et développer une application en partant d’une feuille blanche plutôt qu’en se basant sur la dernière version de l’application ou sur un modèle similaire.
L’avantage de partir de zéro, est d’avoir plus de liberté dans la création, de ne développer que ce qui est essentiel à notre solution sans s’alourdir d’applis, plug-in ou correctifs inutiles. Cependant, partir de zéro, demandera évidemment plus de temps et de compétences.
Front-end - (Terme / Problématique)
Le front-end est un domaine de développement web, correspondant à la partie codée visible sur une solution web : le côté client. Il s’agit de développer une interface pour l’utilisateur à partir de maquettes graphiques.On le compare souvent à la partie emergée de l’iceberg, représentant la minorité visible du code d’une application.
Exemples de langages front-end :
- HTML
- CSS
- Javascript et ses frameworks ReactJS, VueJS et AngularJS
Fullstack - (Terme)
L’utilisation du terme Fullstack sert souvent à décrire un profil de développeur capable de répondre à la fois à des problématiques back-end et front-end.
Profil prisé par certains pour sa polyvalence, à un salaire globalement similaire à une développeuse back-end ou un développeur front-end, on le retrouve souvent en entreprise en phase earlystage, nécessitant plus de polyvalence que d’expertise.
Une fois l’équipe technique plus dense, on recherchera plutôt l’expertise d’un développeur back-end ou d’une développeuse front-end spécialisée.
Certains voient le profil fullstack comme un couteau suisse, capable d’intervenir sur toutes les phases de développement d’une solution web : de la prise de besoin à la livraison.
GO - (Langage / Techno)
Go est un langage de programmation compilé et concurrent inspiré de C et Pascal. Ce langage a été développé par Google à partir d’un concept initial de Robert Griesemer, Rob Pike et Ken Thompson.
HTML - (Langage / Techno)
HTML signifie « HyperText Markup Language » qu'on peut traduire par « langage de balises pour l'hypertexte ». Il est utilisé afin de créer et de représenter le contenu d'une page web et sa structure. D'autres technologies sont utilisées avec HTML pour décrire la présentation d'une page (CSS) et/ou ses fonctionnalités interactives .
HTTP / HTTPS - (Terme)
HTTP est l' acronyme de “Hypertext Transfer Protocol” (= Protocole de Transfert HyperTexte).
HTTP est un protocole de communication client-serveur inventé par Tim Berners-Lee. Ce protocole défini et permet l’accès aux pages web de ce que nous appelons “internet”.
C’est une évolution du FTP (File Transfer Protocol), utilisé pour transférer des fichiers sans prendre en compte leur format. On envoie des informations, mais on ne sait pas si ce sont des images, des sons, du texte, etc. C’est au réceptionnaire de s’en charger.
HTTP permettra de lire le format de donnée (via MIME).Associées au langage HTML (conçu pour écrire des documents hypertexte, désormais appelés “page web”) et aux adresses web (communément appelés URL), ces 3 inventions permettront de fondée le World Wide Web (”La Toile Mondiale”), connu sous le fameux www. C’est le début de l’internet du grand public, en 1990, grâce à cette association d’innovation.
Et HTTPS dans tous ça ? C’est une extension du protocole HTTP où le S signifie secured (= sécurisé) permettant d’échanger des données chiffrées et ainsi rendre impossible l’espionnage ou la modification de ces données.
IaaS - (Terme)
Infrastructure-as-a-Service
En automatisant les briques d'une infrastructure de classe mondiale, les organisations à tous les niveaux maximisent le contrôle de leurs coûts tout en bénéficiant d'une évolutivité et d'une agilité accrues. Sans la nécessité de déployer, de gérer et d'entretenir les infrastructures sur site, les organisations augmentent leur liberté d'innovation.
Avec l’IaaS, les entreprises louent une infrastructure informatique (pour la puissance de calcul, le stockage ou encore la mise en réseau) à un fournisseur de services cloud, mais elles continuent de superviser la gestion de leurs applications critiques ainsi que leurs systèmes de sécurité, leurs bases de données et leurs systèmes d'exploitation.
Différence entre SaaS, PaaS et Iaas ?
Chaque solution comporte un type de ressource différent. Chacune d’entre elles possède sa distribution, son mode de facturation et son usage.
- Infrastructure as a Service (IaaS) ou infrastructure en tant que service. Il s’agit d’un ensemble de ressources informatiques brutes proposées à l’utilisateur par le prestataire de services cloud. Elles peuvent être utilisées pour virtualiser une infrastructure ou pour des projets exigeants en ressources : machine learning, big data, hébergement, etc.
- Platform as a Service (PaaS). Il s’agit d’une plateforme qu’un fournisseur propose à ses clients via Internet. Elle permet aux équipes, en particulier les développeurs, de créer des applications et des logiciels sur une solution sans devoir en assurer la maintenance. Certaines applications autorisent une grande variété de langages de programmation, offrant ainsi davantage de possibilités qu’une application hébergée sur une infrastructure locale.
- Software as a Service (SaaS). Il s’agit du service cloud le plus répandu. C’est un logiciel fonctionnant sur l’infrastructure d’un prestataire. L’utilisateur en paie la licence, mais ne s’occupe pas du stockage de données ni de l’entretien du matériel physique. Ces différents modèles possèdent leurs propres avantages et ne répondent pas aux mêmes besoins.
Source : ovhcloud
Infrastructure informatique - (Terme / Problématique)
Comme son nom l’indique, l’infrastructure correspond à l’ensemble des composants utiles au développement et au fonctionnement d’une solution technique. Elle supporte et coordonne l’ensemble des ressources de l’environnement techniques de développement.
Elle est composée de ressources :
- matériels (le hardware) : ordinateurs, datacenters, routeurs, etc...
- logiciels (software) : les applications techniques permettant à une solution web d’être développée, hébergée et maintenue comme les serveurs et le système d’exploitation
- réseaux : les composants (virtuels et matériels) permettant la communication entre les systèmes internes et externes à solution comme les câbles, les pare-feu, la connexion interne, etc...
On parle parfois d’infrastructure Cloud où il s’agit de dématérialiser tout ce qui peut l’être.
Intégration - (Problématique)
L'intégration informatique, ou intégration des systèmes, désigne le fait de connecter les données, les applications, les API et les appareils au sein de votre service informatique, dans le but d'augmenter l'efficacité, la productivité et l'agilité de votre entreprise.
L'intégration permet à tous les éléments d'un environnement informatique de fonctionner ensemble. Ainsi, elle représente un aspect clé de la transformation d'une entreprise, c'est-à-dire de son adaptation face à l'évolution du marché.
L'intégration ne se limite pas à connecter des éléments, elle ajoute également de la valeur. En effet, en connectant les différentes fonctions de plusieurs systèmes, elle peut offrir de nouvelles fonctionnalités.
Il ne faut pas confondre l'intégration informatique avec l'intégration continue qui désigne une pratique employée par les développeurs et qui consiste à fusionner des versions de codes qui fonctionnent sur un référentiel central partagé plusieurs fois par jour.
L'objectif de l'intégration continue est d'automatiser la création de versions et la vérification afin de détecter rapidement les éventuelles erreurs et d'accélérer le développement.
Source : redhat
IoT - (Terme)
Acronyme de “Internet Of Things”, l’IoT représente l’interconnexion entre des objets connectées échangeant des données par internet. Un frigidaire connecté, une balance connectée, un smartphone ou un capteur de glycémie appartiennent au système de l’IoT.
L’IoT représentant l’interconnexion entre des objets, on parle de secteur, de technologies ou de problématiques IoT. L’IoT, porte plusieurs problématiques en elle-même :
- Développement d’application : programmer l’application du capteur qui recevra les données avant de les envoyer côté serveur. On parle souvent de système embarqué.
- Transfert de donnés : problématiques Back-end et SQL afin d’assurer la stockage et l’accès aux données.
- Affichage des données : souvent sous forme de dashboard, il s’agit de permettre à l’utilisateur de lire ces données sous une interface compréhensible. On parle alors de problématiques Front-end ou mobile, en fonction du support de l’utilisateur.
Java - (Langage / Techno)
Java est un langage de programmation orienté objet créé par James Gosling et Patrick Naughton, employés de Sun Microsystems. La société Sun a été ensuite rachetée en 2009 par la société Oracle qui détient et maintient désormais Java.
Une particularité de Java est que les logiciels écrits dans ce langage sont compilés vers une représentation binaire intermédiaire qui peut être exécutée dans une machine virtuelle Java (JVM) en faisant abstraction du système d'exploitation.
Javascript - (Langage / Techno)
JavaScript a été créé en 1995 par Brendan Eich et intégré au navigateur web Netscape Navigator. C’est un langage de programmation de scripts principalement employé dans les pages web interactives et à ce titre est une partie essentielle des applications web.
Avec les langages HTML et CSS, JavaScript est au cœur des langages utilisés par les développeurs web. Une grande majorité des sites web l'utilisent, et la majorité des navigateurs web disposent d'un moteur JavaScript pour l'interpréte.JavaScript est aussi employé pour les serveurs Web avec l'utilisation (par exemple) de Node.js ou de Deno.
Kanban - (Méthode)
Kanban, souvent connue et illustrée par ses 3 colonnes “To do”, “Doing” et “Done” remplies de post-it de couleur, est une méthode de travail ou plutôt comme SCRUM, un cadre de travail (framework).
Elle est conceptualisé en 1950 par Taiichi Ōno, ingénieur industriel chez Toyota, pour optimiser la fabrication d’automobiles.
Fréquemment utilisée en développement logiciel, elle a pour but d’éviter la surproduction dans l’industrie et donc le code inutile en développement, réduisant ainsi les coûts et les délais. Très visuelle, elle permet aussi d’afficher simplement l’avancement d’un projet.
Laravel - (Framework - Techno)
Laravel est un framework web open-source écrit en PHP respectant le principe modèle-vue-contrôleur (MVC) et entièrement développé en programmation orientée objet. Laravel a été créé par Taylor Otwell en juin 2011 et est distribué sous licence MIT, avec ses sources hébergées sur GitHub.
Lead Dev / Lead Tech - (Métier)
MVC - (Terme)
L’architecture MVC ( Model-View-Controller), est l’une des architectures logicielles les plus utilisées pour les applications Web. Elle permet de créer une application web pour bien gérer la structuration d’un projet en trois parties.Elle se compose de trois modules : modèle, vue, contrôleur.
Composition de l’architecture MVC
- Modèle : un noyau de l’application qui gère les données, permet de récupérer les informations dans la base de données, de les organiser pour qu’elles puissent ensuite être traitées par le contrôleur.
- Vue : composant graphique de l’interface qui permet de présenter les données du modèle à l’utilisateur.
- Contrôleur : composant responsable des prises de décision, gère la logique du code qui prend des décisions, il est l’intermédiaire entre le modèle et la vue.
Source : rosedienglab.defarsci.org
Machine Learning - (Problématique)
Le concept machine learning peut être représenté par l’ensemble des méthodes et techniques permettant à une machine (ordinateur) d’apprendre de façon autonome à partir de données. On peut alors comprendre qu’intelligence artificiel et machine learning sont étroitement liés.
Le second étant une composante de la première. Les progrès et avancés de l’IA sont en grande majorité grâce à ceux du machine learning. À l’inverse, la programmation consiste à donner des ordres précis à une machine selon des règles établies. Le machine learning est autonome là ou la programmation est dépendante des consignes humaines.
Souvent géré par les Data Scientists, le principe du Machine Learning repose sur l’utilisation d’un grand ensemble de données. C’est pour cela qu’il est associé au Big Data. Il consiste à utiliser des algorithmes qui découvriront - sur la base d’un ensemble de données - des modèles récurent appelés “patterns”.
En découvrant ces patterns, les algorithmes utilisent leurs propres résultats pour apprendre, évoluer et devenir plus performants (d’où learning).Le développement d’un algorithme de Machine Learning repose sur 4 étapes :
- Préparer le terrain d’entraînement : fournir au modèle un ensemble de données propres sur lequel il pourra baser son apprentissage (photos, chiffres, mots, etc). La qualité de l’ensemble de données pour l’entraînement est liée à la qualité de l’apprentissage de l’algorithme.
- Sélectionner la recrue à entraîner : il existe déjà plusieurs modèles d’algorithme de machine learning adaptés à des cas d’utilisations. Parmi eux on nommera algorithme de régression, linéaire, de clustering, réseaux de neurones (on parle alors de Deep Learning).
- Place à l’entraînement : c’est une sorte de calibrage. On fait travailler l’algorithme choisi sur l’ensemble de données sélectionnées au préalable et on compare les résultats fournis aux résultats attendus.
Si l’écart est trop grand, on ajuste le modèle jusqu’à arriver au résultat attendu. La bête est prête. Le modèle est désormais calibré et est prêt à être utilisé sur son domaine d’application. Exemple de cas d’utilisation : repérer des e-mails de spam.
Marketplace - (Terme)
Une marketplace est comme son nom l’indique, une “place de marché” dématérialisée. C’est aussi une forme de modèle économique.
Imaginez votre place de marché où se regroupe les vendeurs de produits alimentaires, vendant à peu près les mêmes produits mais de manière indépendante, et versant une contribution à la mairie pour son emplacement.
Dématérialisez cette place sur un site web et remplacez les stands de fruits & légumes par des vendeurs de tous produits. Chaque stand versant une contribution de son activité à la marketplace qui l’héberge, vous avez grossomodo votre place de marché dématérialisé.
La fameuse marketplace française CDiscount en est un bon exemple. Ils développent la plateforme ainsi que toutes les technologies complexes associées puis chaque enseigne choisit de proposer ses produits, versant une commission à chaque vente.
D’abord adopté par le retail ou la vente entre particulier (ebay, amazon, rakuten, etc) le modèle de markeplace s’est rapidement décliné en facilitant la mise en contact pour tous type de service (trajet pour Blablacar, Logement pour Airbnb, etc).
MicroService - (Méthode, Terme)
Le microservice est une approche d’architecture logicielle (d’où le nom d’architecture microservices) qui vient souvent s’opposer à l’architecture dite monolithique. L’architecture microservice est une sorte d’évolution de l’architecture SOA (Architecture Orientée Service).
Ce type d’architecture consiste à découper une application en plusieurs microservices, chacun indépendants les uns des autres et spécialisés dans une tâche orientée métier (recherche, paiement, historique d’activité, etc). Chaque microservice est indépendant des autres, ce qui signifie qu’il possède son propre environnement et son propre code, souvent contenu dans des containers gérés **via Docker.
Il communique avec le client ou avec les autres microservice via une API, symbole de son indépendance. Une architecture microservice permet d’intégrer pleinement l’agilité dans son développement en permettant une évolutivité très rapide : il est très facile de faire évoluer une fonctionnalité en apportant des modifications au microservice en question, plutôt que de modifier l’application en entière et ainsi augmenter le risque d’erreur ou de panne.
Si un problème apparaît, seul le microservice modifié sera HS, laissant les autres microservice en bon état de fonctionnement. De la même façon, il est plus facile de mesure les performances d’un microservice isolé et donc d’une fonctionnalité.
Un autre avantage du microservice hébergé dans des containers est de dupliquer facilement ses microservices et leur environnement associé afin de répondre à un besoin ponctuel (une augmentation du nombre de visiteurs sur son site e-commerce lors du black friday par exemple) puis de les réduire pour revenir à la normale. Cela permet donc une forte adaptation au besoin.
La distinction des microservices par métier permet également de créer des petites équipes spécialisées sur ces problématiques. Une architecture microservice présente donc de nombreux avantages pour des applications nécessitant d’évoluer fréquemment et rapidement (agilité).
Cependant, elle est présentée comme un système complexe de microservices simples, demandant une infrastructure coûteuse, une complexité de mise en place et une organisation d’équipe permettant une communication facile et rapide afin de se synchroniser.
MySQL - (Techno)
MySQL est un système de gestion de base de données relationnelle (SGBDR). Il est distribué sous une double licence GPL et propriétaire. Il fait partie des logiciels de gestion de base de données les plus utilisés au monde, autant par le grand public (applications web principalement) que par des professionnels, en concurrence avec Oracle, PostgreSQL et Microsoft SQL Server.
Son nom vient du prénom de la fille du cocréateur Michael Widenius, My. SQL fait référence au Structured Query Language, le langage de requête utilisé.
NodeJS - (Framework / Techno)
NodeJS est un environnement serveur basé sur le langage JavaScript. Il a été créé en 2009 par Ryan Dahl. Il souhaitait améliorer la barre de progression de chargement de fichiers sur le site Flickr.
En quelques années, Node est devenu une référence pour les développeurs JavaScript et la communauté n’a cessé de s’étendre. Node est open source et il évolue plusieurs fois par an.
NodeJS n’est pas à proprement parler un environnement serveur. Il s’agit avant tout d’exécuter et de traiter des projets / applications JS côté serveur et non côté client (navigateur). Le principe est le même que PHP ou un site web Ruby : le code s’exécute côté serveur.
Ensuite, on utilise le classique HTTP pour accéder à son application JavaScript.
Source : zdnet
ORM - (Terme)
Un ORM (Object-Relational Mapping) est un type de programme informatique qui se place en interface entre un programme applicatif et une base de données relationnelle pour simuler une base de données orientée objet.
OpenSource - (Terme)
Aujourd’hui utilisé de manière générale pour toutes choses (techno, service, objet, etc) en libre accès, l’open-source tire ses origines des logiciels dits Open-Source.
Un logiciel open-source, est un logiciel décentralisé dont le code est disponible en ligne. Chacun peut donc se l’approprier pour l’utiliser ou le modifier pour l’adapter à ses besoins. Les logiciels open-sources réputés et utilisés, sont généralement conçu par une communauté qui le développe et le fait évoluer.
Chacun y apportant sa brique à l’édifice, mais toujours vérifié et validé par ses pairs. Certaines entreprises privées propose une partie de leur code en open-source, reposant leur modèle économique sur la commercialisation de modules/extensions ou sur le noyau de leur application resté privé.
Cela permet également à leurs utilisateurs de payer pour une technologie, puis d’adapter l’interface grâce au code rendu libre.
Quelques exemples de technologies open-sources connus :
- Les navigateur firefox et tor
- Le gestionnaire de mot de passe Keepass
- Logiciel de traitement d’image Gimp
- Le système d’exploitation Linux
- Les outils d’automatisation Ansible et Kubernetes
PHP - (Langage / Techno)
PHP: Hypertext Preprocessor, plus connu sous son sigle PHP, est un langage de programmation libre principalement utilisé pour produire des pages Web dynamiques via un serveur HTTP. Mais pouvant également fonctionner comme n'importe quel langage interprété de façon locale.
PHP est un langage impératif orienté objet. PHP a permis de créer un grand nombre de sites web célèbres, comme Facebook et Wikipédia. Il est considéré comme une des bases de la création de sites web dits dynamiques mais également des applications web.
PING - (Terme)
Ping est le nom d'une commande informatique permettant de tester l'accessibilité d'une autre machine à travers un réseau IP. La commande mesure également le temps mis pour recevoir une réponse, appelé round-trip time (temps aller-retour).
PaaS - (Terme)
La Platform-as-a-service (PaaS) est un type d'offre de Cloud Computing dans lequel un fournisseur de services fournit une plateforme à ses clients, leur permettant de développer, d'exécuter et de gérer des applications commerciales sans avoir à construire et à maintenir l'infrastructure que ces processus de développement de logiciels requièrent généralement. Le PaaS et les services informatiques sans serveur ne facturent généralement que les ressources de calcul, de stockage et de réseau consommées.
Source : oracle.com
Product Manager - (Métier)
Product Owner - (Métier)
Produit - (Métier)
Dans la Tech (et dans l’économie), on désigne par produit un bien ou un service associé à une production et censé satisfaire un besoin, généralement moyennant un prix à payer par l'utilisateur.
Pure Player - (Terme)
On décrit comme Pure Player une entreprise dont l’activité se passe sur et grâce à internet. Pas de magasins, pas de boutiques en durs, pas de front-office physique avec ses clients. L’activité commerciale se fait via un site ou une application reposant principalement sur une gigantesque infrastructure.
On y retrouve les grandes entreprises de la tech à travers tous les secteurs, en voici quelques exemples :
- Amazon, le géant du e-commerce. Amazon possède bien de nombreux entrepôts pour assurer ses stocks et la logistique associée, mais pas de lieu physique où l’on peut acheter les produits commercialisés par la marque.
- Netflix ou Spotify, pour le streaming vidéo et audio.
- Mediapart, journal uniquement digital est un pure-player.Le terme de pure player vient principalement des secteurs transformés par l’innovation digitale : le retail en est l’exemple parfait.
Python - (Langage / Techno)
Python est un langage de programmation inventé par Guido van Rossum. La première version de Python est sortie en 1991. Python est un langage de programmation interprété, c'est-à-dire qu'il n'est pas nécessaire de le compiler avant de l'exécuter.
Python est à la fois simple et puissant, il vous permet d'écrire des scripts très simples et grâce à ses nombreuses bibliothèques, vous pouvez travailler sur des projets plus ambitieux.
- Web : Aujourd'hui python combiné avec le framework Django est un très bon choix technologique pour des gros projets de sites internet.
- Système : Python est également souvent utilisé par les admin système pour créer des tâches dites répétitives ou simplement de maintenance. D'ailleurs si vous voulez créer des applications Java en codant en python, c'est possible grâce au projet Jython.
Source : python.doctor
Quick & Dirty - (Terme)
Une solution quick-and-dirty est une solution brute ou une programmation imparfaite, inélégante ou parfois inadéquate qui sert à résoudre ou à masquer les problèmes mais qui est généralement plus rapide et plus facile à mettre en œuvre que la solution appropriée.
Ces solutions quick-and-dirty ont le plus souvent pour but de contourner les problèmes plutôt que de résoudre la cause séminale de celui-ci. Cette approche peut aussi être utilisée à des fins de prototypage ou de faisabilité d'une application à développer.
Anecdote
Le tout premier système d'exploitation de Microsoft, MS-DOS, a été acheté à Seattle Computer Products en 1981. Son nom initial était Q-DOS "Quick and Dirty Operating System".
ReactJS - (Langage / Techno)
React (aussi appelé React.js ou ReactJS) est une bibliothèque JavaScript libre développée par Facebook depuis 2013. Le but principal de cette bibliothèque est de faciliter la création d'application web monopage, via la création de composants dépendant d'un état et générant une page (ou portion) HTML à chaque changement d'état.
Responsive - (Problématique / Terme)
Traduit au mot à mot en français de “Sensible, qui réagit bien”, responsive décrit une page web (ou application) qui s’adapte au support de l’utilisateur.
Les smartphones, tablettes, écran d’ordinateurs ou écrans d’objets connectés ont chacun des tailles différentes en fonction des marques ou modèles. Coder une page responsive revient à coder une page qui s’adapter à l’écran ou au format tout en maintenant une expérience utilisateur de qualité : textes alignées, photos de qualités, menu adapté, cheminement implicite, etc...
Essayez d’aller sur une même page web depuis un smartphone, une tablette et un ordinateur avec un grand écran, et comparer les différentes organisations de la même page. On parle de “Responsive Web Design” qui est une problématique à laquelle réponde les développeurs front-end via le langage CSS.
Ruby - (Langage / Techno)
Ruby est un langage de programmation libre créé en 1995 par Yukihiro « Matz » Matsumoto. Il est interprété, orienté objet et multiparadigme. Le langage a été standardisé au Japon en 2011, et en 2012 par l'Organisation internationale de normalisation.Son principal framework est Rails (d’où le Ruby On Rails).Ruby est un langage reconnu pour être facile à apprendre.
SCRUM - (Méthode)
La méthode SCRUM est une méthode agile conçue par Jeff Sutherland et Ken Scwaber en 1995, eux-même inspirés du terme SCRUM par l’article de Nonaka et Takeuchi "Les nouvelles règles de développement d’un nouveau produit”.
Parfois considéré comme une approche ou un cadre de travail (framework) plutôt qu’une méthode, SCRUM permet de mener un projet complexe et évolutif tout en délivrant des produits à forte valeur ajoutée.
SCRUM est fondé sur 3 piliers :
- La transparence entre chacun des membres de l’équipe sur tous les sujets du projet, et notamment des problèmes rencontrés.… ce qui permet …
- L’inspection de ces problèmes, qu’on pourrait qualifier d’analyse et d’étude de l’obstacle rencontré.…facilitant alors…
- L’adaptation aux obstacles et aux changements.
SCRUM découpe l’équipe projet en 3 partis :Le Product Owner, qui représente le besoin utilisateur et la vision produit. L’équipe de développement, composé a minima des développeurs et UX/UI Designers auxquels peuvent s’ajouter tous profils tech nécessaire au projet.
Le SCRUM Master, garant de l’application complète et qualitative de l’approche SCRUM. Il intervient dans l’animation de “cérémonies” et dans la formation des membres de l’équipe à SCRUM.
SCRUM Master - (Métier)
SQLite - (Techno)
SQLite est une bibliothèque écrite en langage C qui propose un moteur de base de données relationnelle accessible par le langage SQL.
SaaS - (Terme)
Acronyme de “Software As A Service” (= Logiciel en tant que service). Le SaaS est avant tout un nouveau modèle d’exploitation pour logiciels, les rendant disponibles en ligne car hébergés dans le cloud plutôt que chez l’utilisateur final.
Au delà des coûts réduits pour l’entreprise propriétaire, l’hébergement en ligne permet un déploiement rapide ainsi qu’une évolution et une mesure en temps réel.
Exemple de SaaS réputés :
- Slack
- SalesForce
- Stripe
- Trello
- Zendesk.
Singleton - (Terme)
En Singleton est un patron de conception (design pattern), de création qui garantit que l’instance d’une classe n’existe qu’en un seul exemplaire, tout en fournissant un point d’accès global à cette instance.
Source : refactoring.guru
Software Craftmanship - (Terme)
Le software craftsmanship (ou l'« artisanat du logiciel ») est une approche de développement de logiciels qui met l'accent sur les compétences de développement des développeurs. Il se propose comme une réponse aux maux récurrents de l'industrie du logiciel et à la tendance à l'externalisation, qui priorise les préoccupations financières avant la responsabilité du développeur.
Ce mouvement prône le côté artisanal du développement logiciel, autrement dit, d'après le manifeste de l'artisanat du logiciel, il ne suffit pas qu'un logiciel soit fonctionnel, mais il faut qu'il soit bien conçu.
L'idée principale est de garantir la fiabilité et la maintenabilité des applications d'où l'importance de professionnels aptes à concevoir des logiciels dans le respect d'indicateurs de qualité logicielle.
Le software craftsmanship et l'agilité sont alors complémentaires, car là où l'agilité se limite à la souplesse des cycles de développement, le software craftsmanship s'étend sur la façon même dont est conçu et écrit le code.
Sublime Text - (Outil)
Sublime Text est un éditeur de texte générique codé en C++ et Python, disponible sur Windows, Mac et Linux. Le logiciel a été conçu tout d'abord comme une extension pour Vim, riche en fonctionnalités.
Depuis la version 2.0, sortie le 26 juin 2012, l'éditeur prend en charge 44 langages de programmation majeurs, tandis que des plug-ins sont souvent disponibles pour les langages plus rares.
Symphony - (Techno / Framework)
Symfony est un ensemble de composants PHP ainsi qu'un framework MVC libre écrit en PHP. Il fournit des fonctionnalités modulables et adaptables qui permettent de faciliter et d’accélérer le développement d'un site web.L'agence web française SensioLabs est à l'origine du framework Sensio Framework.
À force de toujours recréer les mêmes fonctionnalités de gestion d'utilisateurs, gestion ORM, etc., elle a développé ce framework pour ses propres besoins. Comme ces problématiques étaient souvent les mêmes pour d'autres développeurs, le code a été par la suite partagé avec la communauté des développeurs.
Le projet est alors devenu Symfony (conformément à la volonté du créateur de conserver les initiales S et F de Sensio Framework), puis Symfony2 à partir de la version 2. La version 2 de Symfony casse la compatibilité avec la branche 1.x. À partir de la version 2, les ruptures de compatibilité entre les versions sont documentées pour faciliter les montées de version.
Le 5 septembre 2017, Symfony passe la barre du milliard de téléchargements.
Synchrone / Asynchrone - (Terme / Problématique)
Que l’on parle de communication, de formation ou d’outils, synchrone décrit quelque chose qui se passe en temps réel, qui attend une réponse immédiate. À l’inverse, asynchrone signifie quelque chose qui provient d’un partage intermittent et non continu.
Quelques exemples de cas d’utilisation simplifie la définition :
- Communication asynchrone : les emails et les sms. On envoie une question un message à une autre personne, qui peut répondre dans la foulée ou bien plus tard. Nous n’attendons pas de réponses immédiate : n’avons pas forcément besoin d’attendre sa réponse pour pouvoir envoyer un autre email ou sms.
- Communication synchrone : visioconférences, échanges téléphoniques, réunion sur place ou à distance. C’est un échange en temps réel et direct entre les participants. On ne peut pas (bien que certains y arrivent à distance) effectuer plusieurs réponses en simultanée.
Cas particulier : les outils de messageries instantanées (slack, whatsapp, messenger, etc) dont le nom et l’interface pourraient laisser penser qu’on parle d’outils de communications synchrones, sont en réalité asynchrone.
Un message whatsapp est en fait comme un email ou un sms, mais présenté sous une interface laissant penser à du temps réel.
Autres exemples :
- Formation synchrone : les formations dites “classiques” à l’école, dans une salle de classe ou même à distance lors d’une visioconférence sont des formations synchrones. Tout le monde reçoit la même information au même moment, tous les participants peuvent interférer entre eux en temps réel.
- Formation asynchrone : les formations en ligne où le contenu est téléchargeable ou consultable en ligne. Le professeur/formateur effectue sa prestation en amont et la rend disponible pour les élèves qui le feront chacun à leur rythme quand ils seront disponibles. Pas d’échanges en direct entre les participants, si ce n’est par des forums…sous forme de communication asynchrone :)
Système d’exploitation / OS - (Terme)
Un système d'exploitation, ou logiciel système, ou Operating System (OS), est un logiciel qui, dans un appareil électronique, pilote les dispositifs matériels et reçoit des instructions de l'utilisateur ou d'autres logiciels (ou applications).
Ces logiciels doivent être adaptés à un système d'exploitation. Dans un ordinateur, le système d'exploitation gère le ou les processeurs ainsi que la mémoire. Il fait fonctionner les périphériques (clavier, souris, surface tactile, écran, disque dur, lecteur de DVD, lecteur de cartes mémoire...).
Dans un appareil photo, il fait fonctionner les différents mécanismes, gère l'affichage de l'écran et détecte les actions de l'utilisateur, etc. Les systèmes d'exploitation comportent aussi l'interface avec l'utilisateur. Dans un ordinateur, par exemple, c'est lui qui affichera les fenêtres et présentera le contenu des unités de stockage (disque dur, CD, DVD...).
Source : futura-sciences.com
Exemples d’OS connus :
Pour ordinateurs :
- Linux
- Windows (géré par Microsoft)
- MacOS (géré par Apple)
Pour smartphone :
- iOS (géré par Apple)
- Android (géré par Google)
C’est interface entre les applications virtuelles et le matériel. Si l’on compare un ordinateur au corps humain, imaginez que votre corps représente toutes les parties matérielles de l’ordinateur et le cerveau l’OS lui permettant de fonctionner. Sans cerveau le corps est inerte et ne fonctionne plus, comme un ordinateur sans OS ne sera qu’un ensemble de plastique et de métal.
Système d’information - (Terme)
Un système d’information (ou SI), représente l’ensemble des ressources sociales et techniques permettant de collecter, stocker, traiter et distribuer de l’information au sein d’une organisation.
Le SI est donc composé de deux sous-systèmes :
- Sous-système social, représentant l’organisation humaine actrice dans le système d’information
- Sous-système technique, représentant les équipements technologiques (équipements matériels, logiciels et réseaux).
L’innovation technologique apportant des technologies d’automatisation et de dématérialisation, transforme petit à petit ces services.
L’automatisation remplaçant le sous-système social et la dématérialisation le sous-système technique.
TDD - (Méthode)
Test-Driven Development (= Développement Piloté par les Test). La TDD est une méthode de développement informatique agile qui tire ses origines du Test-First Design : écrire les tests avant le code.
Elle a évolué vers la TDD qui répond à 3 lois visant à écrire du code uniquement pour faire réussir un test. La TDD permet de mieux se concentrer sur le besoin (”À quoi doit répondre mon application ? Dans quels cas de figure ?”) afin de coder uniquement ce qui est nécessaire évitant le code superflu.
Répondre exactement au besoin, rendre le code le moins complexe possible et donc facilement évolutif et maintenable.
UX/UI Designer - (Métier)
Voir la fiche métier de l'UI designeret de l'UX designer.
VP of Engineering - (Métier)
VueJS - (Framework / Techno)
Vue.js (aussi appelé plus simplement Vue), est un framework JavaScript Open source utilisé pour construire des interfaces utilisateur et des applications web monopages. Vue a été créé par Evan You et est maintenu par lui et le reste des membres actifs de l'équipe principale travaillant sur le projet et son écosystème.Le framework est notamment utilisée par Adobe, Alibaba et GitLab.