Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
ANALYSE DE CODE STATIQUE OBJECTIVE-C / SWIFT
COCOAHEADS MONTPELLIER - 14 AVRIL 2016
BACKELITE
SOMMAIRE
9 ans de développement iOS chez Backelite
Le fléau de la dette technique
Mesurer la dette pour la maitr...
9 ANS DE DÉVELOPPEMENT IOS CHEZ BACKELITE
BACKELITE14 AVRIL 2016
DES APPLICATIONS MOBILES DE PLUS EN PLUS COMPLEXES
4
0
75
150
225
300
375
2007 2008 2009 2010 2011 ...
BACKELITE14 AVRIL 2016
DES TEMPS DE DÉVELOPPEMENT DE PLUS EN PLUS LONG AU FIL DES VERSIONS
5
40
50
60
70
80
90
V1 V2 V3 V4...
CET ÉCART S’APPELLE : LA DETTE TECHNIQUE !
6
LE FLÉAU DE LA DETTE TECHNIQUE
BACKELITE14 AVRIL 2016
LA DETTE TECHNIQUE
Wikipédia :
La dette technique est une métaphore du développement logiciel inven...
BACKELITE14 AVRIL 2016
D’OÙ PROVIENT LA DETTE TECHNIQUE ?
Causes non intentionnelles
Mauvaise conception d’une application...
BACKELITE14 AVRIL 2016
LA DETTE TECHNIQUE : UN PHÉNOMÈNE PLANÉTAIRE !
La dette technique mondiale était estimée à 1
trilli...
MESURER LA DETTE POUR LA MAITRISER
BACKELITE14 AVRIL 2016
MESURER LA DETTE TECHNIQUE
Si vous ne pouvez pas
le mesurer, vous ne
pouvez pas l'améliorer
12
Will...
BACKELITE
COMMENT MESURER LA DETTE TECHNIQUE ?
14 AVRIL 2016
Il est possible d’inventer sa
propre méthode de mesure…
13
Ou...
BACKELITE14 AVRIL 2016
LA MÉTHODE SQALE (SOFTWARE QUALITY ASSESSMENT BASED ON
LIFECYCLE EXPECTATIONS)
14
Mesure l’écart en...
BACKELITE14 AVRIL 2016
LA MÉTHODE SQALE
15
SONARQUBE AVEC OBJECTIVE-C ET SWIFT
BACKELITE14 AVRIL 2016
SONARQUBE (ANCIENNEMENT SONAR)
17
Plateforme open source d’inspection de qualité de code en continu...
BACKELITE14 AVRIL 2016
SONARQUBE : SUPPORT D’OBJECTIVE-C ET SWIFT
18
2014
Support Objective-C
commercial (5000$)
Support O...
BACKELITE14 AVRIL 2016
SONARQUBE : FONCTIONNALITÉS DES PLUGINS BACKELITE
Objective-C
https://github.com/Backelite/sonar-ob...
TRAVAILLER AVEC SONARQUBE
BACKELITE14 AVRIL 2016
SONARQUBE : PROFILS DE QUALITÉ
21
Les profils de qualité permettent d’activer /désactiver ou change...
BACKELITE14 AVRIL 2016
SONARQUBE : NOTATION SQALE
Objective-C
https://github.com/Backelite/sonar-objective-c
Analyse des d...
BACKELITE14 AVRIL 2016
SONARQUBE : QUALITY GATES
23
Les quality gates permettent de
définir des seuils de tolérances
(warn...
BACKELITE14 AVRIL 2016
SONARQUBE : NOTIFICATIONS
24
Les notifications permettent de vous informer des nouveaux défauts que...
BACKELITE14 AVRIL 2016
SONARQUBE : PLANS D’ACTION
25
Les plans d’actions permettent de structurer les phases de nettoyage ...
UN WORKFLOW APPROPRIÉ POUR GARDER LE
CONTRÔLE
BACKELITE14 AVRIL 2016
SONARQUBE : INTÉGRATION CONTINUE
27
+ =
BACKELITE14 AVRIL 2016
QUAND CONTRÔLER LES DÉFAUTS DE SON CODE ?
28
git push
de fin de
journée
analyse
nocturne
notificati...
BACKELITE14 AVRIL 2016
COMMENT TRAITER LES DÉFAUTS DANS SONARQUBE ?
29
Le navigateur de code de SonarQube permet de facile...
BACKELITE14 AVRIL 2016
ET SURTOUT NE PAS OUBLIER…
30
…que tous les outils du monde ne remplacent pas une bonne revue de co...
MERCI !
des questions ?
Gilles Grousset
@zippy1978
DES QUESTIONS ?
BACKELITE14 AVRIL 2016 32
Prochain SlideShare
Chargement dans…5
×

Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C / SWIFT

584 vues

Publié le

Lors du dernier Meetup Cocoaheads à Montpellier, qui a réunit une trentaine des développeurs iOS, Gilles Grousset, Development Team Manager chez Backelite, a présenté comment les équipes techniques font l'analyse de code statique avec Objective-C et SWIFT.

Publié dans : Mobile
  • Soyez le premier à commenter

Cocoaheads Montpellier Meetup : L'analyse de Code Statique avec Objective-C / SWIFT

  1. 1. ANALYSE DE CODE STATIQUE OBJECTIVE-C / SWIFT COCOAHEADS MONTPELLIER - 14 AVRIL 2016
  2. 2. BACKELITE SOMMAIRE 9 ans de développement iOS chez Backelite Le fléau de la dette technique Mesurer la dette pour la maitriser SonarQube avec Objective-C et Swift Travailler avec SonarQube Un workflow approprié pour garder le contrôle 14 AVRIL 2016 2
  3. 3. 9 ANS DE DÉVELOPPEMENT IOS CHEZ BACKELITE
  4. 4. BACKELITE14 AVRIL 2016 DES APPLICATIONS MOBILES DE PLUS EN PLUS COMPLEXES 4 0 75 150 225 300 375 2007 2008 2009 2010 2011 2012 2013 2014 2015 2016 Jours de développement
  5. 5. BACKELITE14 AVRIL 2016 DES TEMPS DE DÉVELOPPEMENT DE PLUS EN PLUS LONG AU FIL DES VERSIONS 5 40 50 60 70 80 90 V1 V2 V3 V4 JH Théoriques JH Constatés
  6. 6. CET ÉCART S’APPELLE : LA DETTE TECHNIQUE ! 6
  7. 7. LE FLÉAU DE LA DETTE TECHNIQUE
  8. 8. BACKELITE14 AVRIL 2016 LA DETTE TECHNIQUE Wikipédia : La dette technique est une métaphore du développement logiciel inventée par Ward Cunningham. Il s'inspire du concept existant de dette dans le contexte du financement des entreprises et l'applique au domaine du développement logiciel. 8
  9. 9. BACKELITE14 AVRIL 2016 D’OÙ PROVIENT LA DETTE TECHNIQUE ? Causes non intentionnelles Mauvaise conception d’une application Non respect des bonnes pratiques de codage 9 Causes Intentionnelles « Quick wins » pour livrer un projet dans les temps Cela vous parle ? Logique : nous sommes tous des pollueurs de code !
  10. 10. BACKELITE14 AVRIL 2016 LA DETTE TECHNIQUE : UN PHÉNOMÈNE PLANÉTAIRE ! La dette technique mondiale était estimée à 1 trillion de dollars en 2015 par Gartner 10 source : http://www.gartner.com/newsroom/id/1439513
  11. 11. MESURER LA DETTE POUR LA MAITRISER
  12. 12. BACKELITE14 AVRIL 2016 MESURER LA DETTE TECHNIQUE Si vous ne pouvez pas le mesurer, vous ne pouvez pas l'améliorer 12 William Thomson (Lord Kelvin) 1824–1907
  13. 13. BACKELITE COMMENT MESURER LA DETTE TECHNIQUE ? 14 AVRIL 2016 Il est possible d’inventer sa propre méthode de mesure… 13 Ou mieux : en utiliser une qui existe déjà !
  14. 14. BACKELITE14 AVRIL 2016 LA MÉTHODE SQALE (SOFTWARE QUALITY ASSESSMENT BASED ON LIFECYCLE EXPECTATIONS) 14 Mesure l’écart entre le standard (la qualité attendue) et la réalité à l’aide de règles. Le modèle d’analyse permet d’obtenir le cout des mesures correctives pour les index suivants : Testability Reliability Changeability Efficiency Security Maintainability Portability Reusability
  15. 15. BACKELITE14 AVRIL 2016 LA MÉTHODE SQALE 15
  16. 16. SONARQUBE AVEC OBJECTIVE-C ET SWIFT
  17. 17. BACKELITE14 AVRIL 2016 SONARQUBE (ANCIENNEMENT SONAR) 17 Plateforme open source d’inspection de qualité de code en continue. • La référence ! • Composé d’un module serveur et d’un « runner » • Extensible par mécanisme de plugin (ajout de languages, de sensors, de widgets graphiques…)
  18. 18. BACKELITE14 AVRIL 2016 SONARQUBE : SUPPORT D’OBJECTIVE-C ET SWIFT 18 2014 Support Objective-C commercial (5000$) Support Objective-C open source cassé Pas de support de Swift Contributions au plugin open source pour le mettre à niveau Création d’un fork pour ajouter de nouvelles fonctionnalités Sortie d’un plugin Swift commercial 2016 Fork indépendant du plugin Objective-C Réalisation d’un plugin pour le support de Swift
  19. 19. BACKELITE14 AVRIL 2016 SONARQUBE : FONCTIONNALITÉS DES PLUGINS BACKELITE Objective-C https://github.com/Backelite/sonar-objective-c Analyse des défauts (OCLint et Faux Pas, 170 règles) Données de test Couverture de code (y compris Xcode 7+) Complexité SQALE 19 Swift https://github.com/Backelite/sonar-swift Analyse des défauts (SwiftLint, 32 règles) Données de test Couverture de code Complexité SQALE
  20. 20. TRAVAILLER AVEC SONARQUBE
  21. 21. BACKELITE14 AVRIL 2016 SONARQUBE : PROFILS DE QUALITÉ 21 Les profils de qualité permettent d’activer /désactiver ou changer la sévérité des règles par language.
  22. 22. BACKELITE14 AVRIL 2016 SONARQUBE : NOTATION SQALE Objective-C https://github.com/Backelite/sonar-objective-c Analyse des défauts (OCLint et Faux Pas, 170 règles) Données de test Couverture de code (y compris Xcode 7+) Complexité SQALE 22 La méthode SQALE est utilisée pour calculer la dette technique. Des widgets permettent de visualiser la dette et la pyramide de la dette
  23. 23. BACKELITE14 AVRIL 2016 SONARQUBE : QUALITY GATES 23 Les quality gates permettent de définir des seuils de tolérances (warning, error) sur les différentes métriques d’un projet
  24. 24. BACKELITE14 AVRIL 2016 SONARQUBE : NOTIFICATIONS 24 Les notifications permettent de vous informer des nouveaux défauts que vous avez engendré en vous envoyant un mail à la fin d’une analyse
  25. 25. BACKELITE14 AVRIL 2016 SONARQUBE : PLANS D’ACTION 25 Les plans d’actions permettent de structurer les phases de nettoyage du code
  26. 26. UN WORKFLOW APPROPRIÉ POUR GARDER LE CONTRÔLE
  27. 27. BACKELITE14 AVRIL 2016 SONARQUBE : INTÉGRATION CONTINUE 27 + =
  28. 28. BACKELITE14 AVRIL 2016 QUAND CONTRÔLER LES DÉFAUTS DE SON CODE ? 28 git push de fin de journée analyse nocturne notification des défauts par mail correction des défauts implémentation de nouvelles fonctionnalités
  29. 29. BACKELITE14 AVRIL 2016 COMMENT TRAITER LES DÉFAUTS DANS SONARQUBE ? 29 Le navigateur de code de SonarQube permet de facilement repérer ses défauts et les marquer en résolus ou faux positifs
  30. 30. BACKELITE14 AVRIL 2016 ET SURTOUT NE PAS OUBLIER… 30 …que tous les outils du monde ne remplacent pas une bonne revue de code de temps en temps !
  31. 31. MERCI ! des questions ?
  32. 32. Gilles Grousset @zippy1978 DES QUESTIONS ? BACKELITE14 AVRIL 2016 32

×