industrialisation bar camp2010

23
Industrialisation du développement PHP

Upload: lushkah911

Post on 04-Jul-2015

608 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Industrialisation bar camp2010

Industrialisation du développement PHP

Page 2: Industrialisation bar camp2010

Barcampcameroun – Juin 2010 Jean-Luc Nta - Curieux

Industrialisation du développement PHP

Industrialisation (http://fr.wikipedia.org/wiki/Industrialisation):

Processus de fabrication de produits manufacturés avec

des techniques permettant une forte productivité du travail et

qui regroupe les travailleurs dans des infrastructures constantes avec les horaires fixes et une réglementation stricte.

Page 3: Industrialisation bar camp2010

Cas d'une application web :

C'est une application tout comme les autres.

Problématique :

Comment s'assurer qu'une :

Nouvelle fonctionnalité

Nouvelle correction de bug

N'introduit pas de regression.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 4: Industrialisation bar camp2010

Tests,

Dépôts,

Intégration Continue,

Déploiement.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 5: Industrialisation bar camp2010

Méthodes habituelles :

Je développe

Je lance l'application et essaye 2-3 trucs pour voir si ca marche encore.

Conséquences : (Manque d'exhaustivité)

On ne pourra tester qu'une partie des fonstionnalités à chaque fois.

On ne teste presque jamais les situations créatrices de bug(données non attendues , format étrange, etc...).

Risque de mettre en production une application qui fonctionne pas.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 6: Industrialisation bar camp2010

Tests (unitaires & fonctionnelles)

Principe :

Vérifier de façon automatisée le bon fonctionnement du système..

Permet de tester les cas limites oui créateurs de bug à chaque fois.

Réalisation : (codés par des développeurs)

Au fur et à mesure qu'ils développent les fonctionnalités.

Pour tester ses fonctionnalités.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 7: Industrialisation bar camp2010

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Test avec un mauvais Login et mot de passe

Test avec un bon Login et mot de passe

Page 8: Industrialisation bar camp2010

Tests (unitaires & fonctionnelles)

Framework :

- Pour faciliter la vie aux développeurs, des frameworks de test ont été crées.

- PHP : PHPUnit (http://www.phpunit.de/manual/3.4/en/index.html)

Bonne pratique :

Job d'un créateur d'application != job d'un créateur de tests

Faire avancer l'application: chacun son boulot!

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 9: Industrialisation bar camp2010

Tests,

Dépôts,

Intégration Continue,

Déploiement.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 10: Industrialisation bar camp2010

Dépôts (Gestionnaire de versions)

1 logiciel = plusieurs versions

Conserver un historique de toutes les modifications de tous les fichiers de code.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 11: Industrialisation bar camp2010

Dépôts (Gestionnaire de versions)

Avantages:

- Reporter les corrections d'une version à une autre.

- Développer à plusieurs et récupérer les modifications des autres codeurs.

- Développer sur plusieurs versions à la fois.

- Sauvegarder le travail des développeurs de manière centralisée.

Pratique:

Le développeur exécute une construction privée avant de publier ses changements dans le référentiel de sources.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 12: Industrialisation bar camp2010

Dépôts (Gestionnaire de versions)

Interlocuteur unique d'un robot d'intégration

Il contient l'ensemble des artefacts nécessaires à la construction d'un projet:

- Codes sources.

- Fichiers de configuration.

- Données particulières (BD).

CVS, SVN, Mercurial, Git, etc...

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 13: Industrialisation bar camp2010

Tests,

Dépôts,

Intégration Continue,

Déploiement.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 14: Industrialisation bar camp2010

Intégration Continue

Les développeurs livrent les modifications sur le dépôt de code.

Chaque enregistrement de modification sur le dépôt déclenche:

- Une compilation (pour les langages compilés).

- les test unitaires.

- la couverture des test.

Tout changement du code d'un logiciel est immédiatement pris en compte par une construction automatique d'intégration.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 15: Industrialisation bar camp2010

Intégration Continue : Phing

Framework PHP : Système de “build“ de projet basé sur Apache Ant.

Fonctionne comme un système traditionnel de build.

Utilise un fichier de build formaté en simple XML et des "task" qui étende des classes PHP.

Fonctionnalités :

- Inclus l'exécution tests PHPUnit et de simple test fonctionnel,

- Opérations de fichiers : (déplacements, copies, modifications,...),

- Outil de créations des packages PEAR,

- Exécution de requête SQL, ....

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 16: Industrialisation bar camp2010

Tests,

Dépôts,

Intégration Continue,

Déploiement.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 17: Industrialisation bar camp2010

Déploiement

Migration de BD (Phing et dbdeploy)

Le dossier “db“ contient les fichiers SQL

Le dossier “deploy“ contient nos scripts de build.

Le dossier “library“ contient le code de l'application et le dossier “public“ contiendra les scripts et fichiers accessibles directement à partir du web.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Exemple de structure

de l'application

Page 18: Industrialisation bar camp2010

Déploiement

Migration de BD (Phing et dbdeploy)

Build Scripts: fichier de configuration qui va exécuté la migration de la BD.

Le fichier est formaté sous la forme : clé=valeur, edité avec un quelconque éditeur de texte puis enregistré sous : deploy/build.properties.

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Prochain fichier à créer : deploy/build.xml. C'est le fichier qui indiquera a Phing ce que nous voulons qu'il fasse.

Page 19: Industrialisation bar camp2010

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Page 20: Industrialisation bar camp2010

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Architecture de l'environnement

Page 21: Industrialisation bar camp2010

Architecture

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Script automatisable: Ant, MAVEN, Make, Phing

Page 22: Industrialisation bar camp2010

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

Questions ?

Page 23: Industrialisation bar camp2010

Industrialisation du développement PHP

Barcampcameroun – Juin 2010 Jean-Luc Nta - Développeur

MERCI

- Twitter : lushkah911

- FaceBook : Jean-Luc NTA

- Mail : [email protected]

- Blog : lushkah911.wordpress.com

- Site web : http://www.fansdeslion.com