Upload
david-buros
View
884
Download
1
Embed Size (px)
Citation preview
INTEGRATION CONTINUE
&QUALITE
LOGICIELLEDavid Buros
Ingénieur R&D - Profilsoft
About.me
Développeur PHP depuis 4 ans.
Trois belles expériences en entreprise.
Du code, mais pas que.
Veille, veille, veille !
AU SECOURS« Chérie, j'ai oublié les bases »« Chérie, j'ai oublié les bases »
http://technopolis.blogspot.com/2011/07/age-of-austerity-obama-asks-america-to.html
6REGLES D'OR
… à suivre pour bien planter son projet.
† Partir du principe que les
spécifications fonctionnelles ne bougent pas en cours de projet,
jamais.
† Partir du principe que les
spécifications fonctionnelles ne bougent pas en cours de projet,
jamais.LOL
http://wdict.net/fr/word/souplesse+(gymnastique)/
L'AGILE« Tarte à la scrum »« Tarte à la scrum »
- LE MANIFESTE AGILE -
« Les individus et leurs interactions plus que les processus et les outils. »
« Des logiciels opérationnels plus qu’une documentation exhaustive. »
« La collaboration avec les clients plus que la négociation contractuelle. »
« L’adaptation au changement plus que le suivi d’un plan. »
User Story
En tant que ROLE, je souhaite ACTION pour BUT.
« En tant que client, je souhaite uploader des documents pour compléter ma bibliothèque »
† †Se dire qu'écrire une
application from scratch pour hier, c'est facile. On est large
même.
† †Se dire qu'écrire une
application from scratch pour hier, c'est facile. On est large
même.OMG
http://www.lizardheadone.com/Engine.html
LES OUTILS« Les mains dans le cambouis »« Les mains dans le cambouis »
OUTILS MAITRISES
≠OUTILS ADAPTES
≠PRISE DE RISQUE INCONSCIDEREE
† † †Livrer ses développements sans
les tester. Ou à la rigueur effectuer quelques clics sur la
page.
† † †Livrer ses développements sans
les tester. Ou à la rigueur effectuer quelques clics sur la
page.FAUX
http://www.historyofinformation.com/narrative/restating-the-problem.php
LES TESTS« Finalement, on gagne du temps »« Finalement, on gagne du temps »
TESTS UNITAIRES
class Request { /* CODE */
public function getPost($name = null) { if (null === $name) { return $this->_post; } return array_key_exists($name, $this->_post)?$this->_post[$name]:null; }}
class RequestTest extends \PHPUnit_Framework_TestCase { /* CODE */
public function testGetPost() { $this->assertInternalType('array', $this->object->getPost()); $this->assertNull($this->object->getPost('test')); $this->object->setPost(array('test' => 'value')); $this->assertEquals('value', $this->object->getPost('test')); $this->assertEquals(array('test' => 'value'), $this->object->getPost()); }}
TESTS FONCTIONNELS
† † † †Convenir que le meilleur moyen de partager son travail c'est de mettre un zip des sources sur
Megaupload Dropbox.
† † † †Convenir que le meilleur moyen de partager son travail c'est de mettre un zip des sources sur
Megaupload Dropbox.O RLY ?
http://events.2hweb.net/scrapbook04su.html
LE VERSIONNING« Retour vers le futur »« Retour vers le futur »
CENTRALISE VS DISTRIBUE
† † † † †Garder à l'esprit que le suivi
de la qualité d'un projet tient avant tout dans la relecture
aléatoire des sources.
† † † † †Garder à l'esprit que le suivi
de la qualité d'un projet tient avant tout dans la relecture
aléatoire des sources.FAIL
http://www.pptbackgrounds.net/
INTEGRATIONCONTINUE
« Big Brother »« Big Brother »
1 ; Commiter votre travail de la journée.
2 : Faite un build.
3 : Mergez vos branches.
4 : Mettez les sources en production en un clic.
5 : Allez vous reposer, demain on recommence.
† † † † † †Se dire qu'une mise en
production c'est ni plus ni moins que quelques fichiers à faire glisser dans un client FTP
† † † † † †Se dire qu'une mise en
production c'est ni plus ni moins que quelques fichiers à faire glisser dans un client FTP
FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF FUUFU FUFFUUU FFUUUFF FUFUFUF FUUUFFUUF
http://adnm-grp.com/services/solutions-et-lhebergement.html
LE DEVOP« La tête dans les nuages »« La tête dans les nuages »
DEV + OP
Cloud ComputingCloud Computing
IaaS - PaaSIaaS - PaaS
Chef - PuppetChef - Puppet
CapistranoCapistrano
?Contact : [email protected]