Vous êtes sur la page 1sur 8

Progression condensée

Web
Le Web est un réseau mondial de documents hypertextes et d'applications multimédias. Il
repose sur le protocole HTTP (Hypertext Transfer Protocol) pour la communication entre les
clients et les serveurs. Les architectures applicatives définissent la manière dont les
composants logiciels interagissent pour répondre aux demandes des utilisateurs. Les services
Web sont des applications qui offrent des fonctionnalités via le réseau.

Protocole HTTP

HTTP est le protocole de communication de base du World Wide Web. Il définit la manière
dont les demandes et les réponses sont échangées entre les clients et les serveurs. Les
demandes HTTP sont généralement de type GET (pour obtenir des informations) ou POST
(pour envoyer des données).

Architectures Applicatives

Il existe différentes architectures applicatives pour organiser le code et la logique d'une


application Web. Quelques concepts courants sont :

 MVC (Modèle-Vue-Contrôleur) : Il sépare l'application en trois composants


principaux, permettant une gestion modulaire de l'application.
 MVVM (Modèle-Vue-Modèle-VueModèle) : Une variante de MVC, principalement
utilisée dans les applications à interface utilisateur riche.
 MVP (Modèle-Vue-Présentateur) : Un autre modèle qui sépare la logique métier de
l'interface utilisateur.
 SOA (Architecture Orientée Services) : Il divise une application en services
indépendants qui communiquent via des protocoles standardisés.
 REST (Representational State Transfer) : Une approche architecturale basée sur
des ressources, des URI (Uniform Resource Identifiers), et des méthodes HTTP.

Web Services

Les services Web sont des applications qui communiquent via le Web. Ils peuvent être
stateful (gardant la trace de l'état du client) ou stateless (sans mémoire du client entre les
demandes). Les services Web sont utilisés pour intégrer des systèmes hétérogènes, permettant
aux applications de collaborer de manière transparente.

Gestion de Version (Git)


La gestion de version est essentielle pour le développement de logiciels collaboratifs. Git est
un système de contrôle de version décentralisé largement utilisé.

Commandes Git

 git init : Crée un nouveau dépôt Git.

Orange
Restricted
 git clone : Copie un dépôt Git existant.
 git add : Stage les modifications pour une prochaine validation.
 git commit : Enregistre les modifications dans le dépôt.
 git branch : Gère les branches.
 git merge : Fusionne les modifications de la branche actuelle dans une autre branche.
 git rebase : Rejoue les modifications de la branche courante sur une autre branche.
 git pull : Récupère les modifications depuis un dépôt distant.
 git push : Envoie les modifications vers un dépôt distant.

Fonctions Git

 Commit : Une unité de modification dans Git.


 Branche : Une ligne de développement indépendante.
 Merge : Fusionne des modifications de branches.
 Rebase : Réapplique les modifications sur une autre branche.
 Résolution de Conflits : Gérer les conflits lors de la fusion.
 Reset : Annule des commits ou des modifications.
 Logs : Historique des commits.
 Fonctions avancées :
o cherry-pick : Applique un commit spécifique sur une autre branche.
o rebase interactif : Permet une réécriture interactive de l'historique des
commits.
o reflog : Enregistre l'historique de référence.

Workflows Git

 Centralisé : Un dépôt central partagé où tous les développeurs travaillent.


 Feature Branch : Chaque fonctionnalité ou correction de bogue est développée dans
une branche distincte.
 Gitflow : Une stratégie de gestion des branches qui définit des branches spécifiques
pour les fonctionnalités, les versions, les corrections de bogues, etc.

API
Les API (Interfaces de Programmation d'Applications) sont des moyens de communication
entre différentes applications logicielles. Elles définissent la manière dont les programmes
peuvent interagir les uns avec les autres.

Formats d'Échange

 XML (Extensible Markup Language) : Un langage de balisage qui stocke des


données structurées.
 JSON (JavaScript Object Notation) : Un format léger pour échanger des données.
 Texte : Utilisé pour des échanges simples de données.

SOAP-REST

 SOAP (Simple Object Access Protocol) : Un protocole basé sur XML pour l'échange
de messages structurés.

Orange
Restricted
 REST (Representational State Transfer) : Une architecture qui utilise les principes
du Web pour créer des services Web.

Contrats d'Interface

 OpenAPI : Une spécification pour décrire des API RESTful.


 WSDL (Web Services Description Language) : Une description XML des services
Web.

Guideline API

 Verbes HTTP : Les méthodes HTTP (GET, POST, PUT, DELETE) utilisées pour
manipuler les ressources.
 Recherche, Tri, Filtre : Fonctionnalités courantes pour interroger et filtrer les
données.
 Gestion des Erreurs : Comment traiter et renvoyer des erreurs dans une API.

API : Pour Aller Plus Loin

 HATEOAS (Hypermedia As The Engine Of Application State) : Un principe qui


permet à une API de guider l'application cliente en fournissant des liens vers d'autres
ressources associées.

Qualité Applicative
La qualité applicative est essentielle pour le développement de logiciels fiables et
performants.

Formattage

Le formattage du code source est la manière dont le code est structuré et présenté. Il doit être
cohérent pour améliorer la lisibilité et la maintenance du code.

Tests

Les tests sont essentiels pour garantir le bon fonctionnement de l'application.

 Tests Unitaires : Testent des parties spécifiques du code.


 Tests d'Intégration : Vérifient que différentes parties de l'application fonctionnent
ensemble.
 Tests End-to-End : Simulent des scénarios d'utilisation réels.
 Mocks : Simulent des dépendances externes.
 Fixtures : Données de test préconfigurées.
 TDD (Test-Driven Development) : Écrire des tests avant de coder la fonctionnalité.

Documentation

La documentation est essentielle pour comprendre le code et les fonctionnalités de


l'application.

Orange
Restricted
 Documentation Technique : Explique comment le code fonctionne.
 Documentation Fonctionnelle : Décrit les fonctionnalités et l'utilisation de
l'application.

Progression détaillée
Architectures Web
 Client-Serveur : Le client envoie des demandes au serveur qui répond en
conséquence.
 Protocole HTTP : Les demandes et les réponses sont échangées via HTTP.
 Architectures Applicatives : Choix de l'architecture (MVC, MVVM, MVP, SOA,
REST, etc.).
 Web Services : Utilisation de services Web pour des interactions distantes, avec ou
sans état.

Gestion du Code Source (Git)


 Commit : Enregistre les modifications dans l'historique.
 Branche : Isole le développement de différentes fonctionnalités.
 Merge : Fusionne les modifications de branches.
 Rebase : Réapplique les modifications sur une autre branche.
 Résolution de Conflits : Gestion des conflits lors de la fusion.
 Reset : Annule des commits ou des modifications.
 Logs : Historique des commits.
 Fonctions Avancées : Cherry-pick, rebase interactif, reflog.
 Workflows : Centralisé, Feature Branch, Gitflow.

Formats d'Échange
 XML : Utilisé pour des données structurées.
 JSON : Format léger pour échanger des données.
 Texte : Pour des échanges simples de données.

Contrats d'Interface
 OpenAPI : Spécification pour décrire des API RESTful.
 WSDL : Description XML des services Web.

Guideline API
 Verbes HTTP : Méthodes HTTP pour manipuler les ressources.
 Recherche, Tri, Filtre : Fonctionnalités courantes pour interroger et filtrer les
données.
 Gestion des Erreurs : Comment traiter et renvoyer des erreurs dans une API.

Orange
Restricted
API : Pour Aller Plus Loin
 HATEOAS : Un principe pour guider l'application cliente en fournissant des liens
vers d'autres ressources.

Tests
 Tests Unitaires : Pour tester des parties spécifiques du code.
 Tests d'Intégration : Pour vérifier que différentes parties de l'application fonctionnent
ensemble.
 Tests End-to-End : Pour simuler des scénarios d'utilisation réels.
 Mocks : Pour simuler des dépendances externes.
 Fixtures : Données de test préconfigurées.
 TDD : Écrire des tests avant de coder la fonctionnalité.

Qualité du Code Source


 Formattage : Structurer et présenter le code de manière cohérente.
 Linter : Outils pour analyser et vérifier la qualité du code.
 Sonar : Plateforme pour l'inspection continue du code.
 Refacto : Restructuration du code pour l'améliorer.
 Bonnes Pratiques : Suivre les normes et les meilleures pratiques de développement.

Documentation
 Documentation Technique : Explique comment le code fonctionne.
 Documentation Fonctionnelle : Décrit les fonctionnalités et l'utilisation de
l'application.

Cela couvre les points essentiels que vous avez mentionnés dans votre progression. N'hésitez
pas à poser des questions plus spécifiques sur l'un de ces sujets, et je serai heureux de vous
fournir des informations supplémentaires et des exemples.

EXEMPLE

Web
Protocole HTTP

 Exemple de demande HTTP GET :

vbnet
 GET /api/products/123 HTTP/1.1
 Host: example.com

Architectures Applicatives

Orange
Restricted
 Exemple d'une application basée sur l'architecture MVC :
o Modèle : Gestion des données.
o Vue : Interface utilisateur.
o Contrôleur : Logique de traitement des données.

Web Services

 Exemple d'une API RESTful :


o Endpoint : /api/products
o Méthode HTTP : GET
o Réponse : {"id": 123, "name": "Product A"}

Gestion de Version (Git)


Commandes Git

 Exemple de commande git commit :

sql
 git commit -m "Ajout de la fonction de recherche"

Fonctions Git

 Exemple de résolution de conflit lors de la fusion :

markdown
 <<<<<<< HEAD
 Code de la branche actuelle
 =======
 Code de la branche à fusionner
 >>>>>>> autre-branch

Workflows Git

 Exemple de flux de travail Gitflow :


o Création d'une nouvelle fonctionnalité :
 git checkout -b feature/nouvelle-fonctionnalite
 Travailler sur la fonctionnalité, puis git commit et git push
o Fusion de la fonctionnalité :
 git checkout develop
 git merge feature/nouvelle-fonctionnalite

API
Formats d'Échange

 Exemple de données JSON :

Orange
Restricted
perl
 {"id": 1, "name": "John Doe", "email": "john@example.com"}

SOAP-REST

 Exemple de demande SOAP :

php
 <soap:Envelope>
 <soap:Body>
 <GetStockPrice>
 <stockName>XYZ</stockName>
 </GetStockPrice>
 </soap:Body>
 </soap:Envelope>

Contrats d'Interface

 Exemple de spécification OpenAPI :

yaml
 openapi: "3.0.0"
 info:
 title: Exemple d'API
 version: 1.0.0
 paths:
 /api/products:
 get:
 summary: Obtenir la liste des produits
 responses:
 200:
 description: Réponse réussie

Qualité Applicative
Formattage

 Exemple de code bien formaté en Python :

python
 def addition(a, b):
 return a + b

Tests

 Exemple de test unitaire en Python avec unittest :

Orange
Restricted
python
 import unittest

 def addition(a, b):
 return a + b

 class TestAddition(unittest.TestCase):
 def test_addition(self):
 self.assertEqual(addition(2, 3), 5)

Documentation

 Exemple de documentation technique en JavaScript :

javascript
 /**
 * Fonction de calcul de la somme.
 * @param {number} a - Le premier nombre.
 * @param {number} b - Le deuxième nombre.
 * @returns {number} La somme des deux nombres.
 */
 function addition(a, b) {
 return a + b;
 }

J'espère que ces exemples vous aideront à mieux comprendre chaque concept. N'hésitez pas à
demander des exemples plus détaillés ou des clarifications supplémentaires.

Orange
Restricted

Vous aimerez peut-être aussi