Arrêtons de perdre du temps à debuguer

Nastasia Saby

Zenika

Développeur

Débogueur

Développeur

C'est quoi un bug ?

En informatique, un bug (de l’anglais bug, « insecte ») ou bogue (au Nouveau-Brunswick, au Québec et en France) est un défaut de conception d'un programme informatique à l'origine d'un dysfonctionnement (Wikipedia)

Mais encore ?

Fastidieux

Peu de gloire

Perte de temps

Perte de business

So

Comment peut-on arrêter de perdre ce temps ?

Comment peut-on arrêter de perdre ce business ?

Où j'ai rencontré le bug

Phase de recette

TMA

Build

Run

!=

!=

Naissance en TMA

C'est quoi une TMA ?

Legacy code

* Oui je sais, ce ne sont pas vraiment des spaguettis, mais c'est ce qu'on obtient sur wikimedia quand on tape "spaguetti"

*

Histoire de l'informatique

magic_quotes

 

mysql_fetch

register_globals

Projet récupéré

"Annotate is dead baby"

Polonais

 

Ten kod jest ponad Sal.

Co robil w tym ?

WTF ?

die(var_dump($bug))

var_dump

error_log

Découverte de la politique du Scout

Prière de laisser cet endroit plus propre qu'en y entrant

Clean code de Robert C.Martin

Théorie de la fenêtre brisée

Refactoring driven

Je fais du refactoring parce que j'ai de l'empathie

L'autre c'est moi

... dans quelques temps

... sur un autre projet, dans un autre contexte

Refactorer sans test

Code commenté

Enlever des commentaires

Ajouter des commentaires

Extract method

Rembourser sa dette

... même si c'est pas toujours la sienne

On peut pas tout changer

Décision d'équipe

Coûteux (long, ...)

Composer avec

... en attendant la grande migration

Pas de test

SVN

Cycle en V

=>

=>

=>

Tests sur nouveaux devs + Refacto quand même

Normes de commit sévères

Bonnes pratiques de l'agilité

Premiers pas avec Xdebug

A guy from Java world

à

Smile

Pas complètement

Découvertes de l'enfance

La grande migration

Des outils magiques

sonar

PHPUnit

var_dumper

toolbar

Problème ?

Toujours beaucoup de temps passé à debuguer

Pourquoi ?

Pourquoi est-il si méchant ?

Mais où est-ce qu'on perd du temps ?

Pas dans la correction

Pas toujours dans l'analyse du bug même

Etapes

1 ) Comprendre le problème

2) Reproduire le bug

3) Retrouver le morceau de code planté

4) Trouver l'origine du bug

5) Corriger le bug

1) Comprendre le problème

2) Reproduire le bug

3) Retrouver le code planté

4) Origine du bug

5) Correction

Effet de distance

Comment ça marche déjà ?

Il y a des bugs tout le temps, mais certains n'ont pas de nom

Bug et bug

Bugs techniques

Bugs fonctionnels

!=

"Pas de ticket, pas de bug"

L'enfer, c'est les autres

"Ca marche pas !"

Ce qu’on peut faire avec l’autre

Exigeance dans le rapport de bug

Vidéos

TeamViewer

Raccourcir la validation d'une fonctionnalité

Ce qu’on peut faire sans l’autre : prévenir le bug

Rapport de bug

Nom

Ce qui est arrivé

Ce qui aurait dû arriver

Etapes pour reproduire

Test unitaire

Nom

Comparaison

Stack trace

=>

=>

=>

=>

Jani Hartikainen

Ce qu’on peut faire sur soi : Apprendre à composer avec l’autre.

Méthode 4colors

Jung & Marston

Young

4 couleurs

Prise de décision

Rapide

Réfléchie

Sensibilité

Rapide

Réfléchie

Rationnelle

Emotionnelle

Termes

Rapide

Réfléchie

Efficacité

Précision

Fiabilité

Innovation

Coopération

Rationnelle

Emotionnelle

Mais bien sûr plus complexe que ça

Exigeance professionnelle

Ma vraie dominante

Et puis ça peut évoluer

Rapide

Réfléchie

Rationnelle

Emotionnelle

J'en fais quoi ?

Discours

Communication

Un attendu, un besoin à un moment donné

Apprendre à relativiser

Travailler sur soi

La puberté

La punition

Deboguer

Problème 

Métier de débogueur pas valorisé

Et quand on n'aime pas ce qu'on fait, dur d'y être bon

Peu de lignes de code

Quelle est ma plus value ?

Pair debugging

Entraide

1 savoir à prendre de l'autre

Comprendre l'autre ensemble

Quel type de savoir ?

Des outils : ApacheJMeters dans un système de frames

Utilisation du var_dump

Utilisation du debogueur

Cas d'école

Détailler le bug qu'on a résolu

Continuer à apprendre

Page rendering

Fouiller dans Symfony : découvert des composants

L'adolescence

Découverte du TDD 

Mise en pratique dans le debug

Mise en place de tests fonctionnels

Ne plus rien mocker

Point de vue plus macro

Point de vue plus fonctionnel

Ne pas en abuser

Relecture de code en groupe

Vacances aux pays de Java et JavaScript

La joie du debug au pas à pas

Le retour d'Xdebug

PhpStorm

XDebugHelper

Vers l'âge adulte

Es una obsesion

Le bug en tête

Dis, de quoi t'es fait ?

Structure logicielle

Si je devais conclure

Humain, trop humain (Nietzche)

Prière de laisser cet endroit plus propre qu'en y entrant

O dieux, donnez-moi la sérénité d'accepter ce que je ne puis changer, le courage de changer ce que je puis et la sagesse d'en connaître la différence (Marc Aurèle)

J'ai un rêve ...

... Faire disparaître le métier de debogueur

Arrêter de perdre du temps à debuguer

Arrêter de debuguer

Arrêter de perdre du temps à debuguer

Merci

@saby_nastasia

Made with Slides.com