Développer du code de qualité avec

CRUTINIZER-CI

Definition de "scruter" (scrutinize en anglais)

verbe (utilisé avec un objet)

1. examiner en détail très attentivement ou avec une attention critique.

Définition d'intégration continue (CI)

L'intégration continue est un ensemble de pratiques utilisées en génie logiciel consistant à vérifier à chaque modification de code source que le résultat des modifications ne produit pas de régression dans l'application développée.

Amazon AWS

CodePipeline

Jenkins

Travis

Scrutinizer

C'est quoi un SaaS?

Le logiciel en tant que service ou software as a service (SaaS) est un modèle d'exploitation commerciale des logiciels dans lequel ceux-ci sont installés sur des serveurs distants plutôt que sur la machine de l'utilisateur.

Sections de l'application

  • Accueil
  • Problèmes
  • Code
  • Inspections
  • Rapports
  • Graphiques
  • Configuration

Accueil

Section problèmes

  • Naviguer les problèmes découvert
  • Appliquer des patchs automatisé

Section problèmes

Section problèmes

Faux positifs

Pour retirer des problèmes marqués "faux positif", vous devez aller dans la section configuration sous "Issue filter"

Section revue de code

  • Statistiques globales
  • Points chauds
  • Détails par fichiers

Section revue de code

Section revue de code

Couplage

Utilisez des interfaces et limitez les classes concretes. Plus vous dépendez d'autres classes, plus votre code détient une grande responsabilité... Difficile à gérer!

Cohésion

Indique le degré de relation entre les fonctions du module. Plus votre classe aura de méthodes qui s'appellerons les unes les autres et qui seront simple, meilleure sera votre cohésion.

Complexité

Un code complexe contient beaucoup de boucles et conditions. Chaque conditions intègre un nouveau chemin dans le code et donc un bug potentiel d'interprétation.

Réduire !?!

Attention à l'optimisation de votre code. Afin de réduire la complexité et augmenter la cohésion, vous pouvez rendre votre code "plus" complexe à lire même s'il est théoriquement mieux...

Section inspections

  • Revue des inspections des
    • commits,
    • PR,
    • merge
  • Patches de code

Section inspections

Section inspections

Section inspections

Section inspections

Section inspections

Autres sections

  • Derniers rapports
  • Graphiques

Section configuration

  • Script de configuration
  • Intégration chat
  • Déploiement

Section configuration

Section configuration

Section configuration

Déploiements

  1. Via scripts bash
  2. Éxécuté à chaque succès de tests
  3. Les artifacts de déploiements sont conservés 7 jours

Conclusion

  • Indicateurs faciles a comprendre de qualité de code
  • Suggestions pour améliorer votre structure
  • Suggestions pour améliorer votre code (Style)
  • Automatisation des tests et déploiement
  • Gratuit pour les projets open source
  • Peu couteux même pour les projets privés

Mathieu Dumoulin

Programmeur Analyste @ Learning Bird

        Twitter@crazycoders

        LinkedIncrazycoders

        Git-hubcrazycodr

        Site web et courriel crazyone@crazycoders.net

 

Projets actifs :

        Standard-ExceptionsGitHub

        Infect! (Jeu de société)Facebook page

Made with Slides.com