Logo Siclo
We shape Technology with Passion

Qu'est-ce qu'un audit de code source ?

time 5 mins
Share

Qu'est-ce qu'un audit de code source ?

 

Un audit de code source manuel est une méthode intelligente d'évaluation de l'efficacité, de la qualité, de la sécurité et de la valeur globale d'un morceau de code. Cet audit est réalisé par un développeur qualifié, autre que celui qui a originellement écrit le code concerné ; c'est un examen réalisé par une personne tierce, ce afin d'obtenir une appréciation objective du travail du premier développeur. Dans le cadre d'un échange Business-to-Business, un audit de code source manuel a plusieurs bénéfices qui ne peuvent être offerts par un processus de test automatisé, à la fois pour le vendeur - celui qui a produit le code pour le client - et pour l'acheter - le client qui compte utiliser le produit au sein de son activité professionnelle.

Il n'est pas forcément simple de reconnaître un code à problèmes ; vous pouvez consulter notre infographie sur le sujet pour connaître les symptômes les plus courants d'un programme mal codé : https://www.siclo-mobile.com/fr/comment-reconnaitre-un-programme-mal-code-infographie

 

Les bénéfices pour l'acheteur

 

En tant qu'acheteur, vous n'avez sans doute pas les mêmes compétences en programmation que le développeur que vous avez engagé pour réaliser votre application. Cela veut dire que, dans la plupart des cas, il ne vous est pas aisé de repérer un défaut au premier coup d'œil. S'il y a effectivement des erreurs sous la surface du programme, vous aurez besoin de quelqu'un capable de "regarder sous le capot" pour voir ce qui ne va pas.

Il y a cependant quelques indications externes que votre application ne marche pas aussi bien qu'elle ne le devrait : les fermetures intempestives et les bugs sont des signes à ne pas rater, au même titre qu'une latence trop importante (si l'on parle d'une application mobile ou de tablette, les utilisateurs sont souvent disposés à supporter une latence occasionnelle d'une seconde pour que leurs actions soient prises en compte). Généralement, si votre application ou votre site Internet reçoit des commentaires négatifs vis-à-vis de ses performances, commander un audit de code est une méthode sûre et rapide de découvrir la source du problème. En cas de doute, un audit de code peut vous apporter de nombreuses informations dont vous manquez :

 

1 - Comprendre comment son produit fonctionne

 

Bien qu'une compréhension précise et détaillée du fonctionnement de votre produit est sans doute parmi vos dernières préoccupations, comprendre certaines de ses mécaniques peut vous apporter des informations précieuses :

  • Un audit de code peut vous indiquer toute vulnérabilité dans la sécurité de votre programme et vous montrer comment les résoudre rapidement. Plus vous découvrez (et colmatez) vos failles rapidement, moins vous laissez de temps à un éventuel pirate pour vous dérober des données importantes.
  • Un audit de code peut vous indiquer si votre programme a été écrit en respectant des pratiques de codage responsables. Une application codée comme il se doit est plus simple et moins chère à inspecter, à maintenir et à faire évoluer. Si vous envisagez d'ajouter à votre programme de nouvelles fonctionnalités dans un futur proche, un audit de code est le meilleur moyen de vous assurer que celui-ci pourra le supporter.
  • Un audit de code peut également vous dresser une liste de tous les outils et technologies séparées que votre code emploie, s'il y en a. En d'autres termes, cela vous donne une liste des outils que vous devez conserver à jour pour que le programme fonctionne correctement.

 

2 - Un examen par une tierce personne pour réparer et améliorer vos outils.

 

Que ce soit en raison de retours négatifs ou parce que vous avez remarqué des bugs, des fermetures intempestives ou une latence importante par vous-même, commander un audit de code source quand vous avez le moindre doute sur les performances de votre application est la meilleure méthode de gérer ce doute.

Un audit de code source réalisé par un auditeur qualifié ne vous apportera pas seulement une évaluation claire et objective de votre application (et donc la confirmation ou l'infirmation de vos doutes) mais aussi des instructions sur les réparations nécessaires, vous montrant la voie la plus facile (et la moins chère) pour améliorer votre application.

 

Un audit est pensé pour trouver et réparer tout défaut dans votre code source avant que celui-ci ne devienne un problème majeur, onéreux en temps et en argent. Il peut également vous montrer comment réagir à un retour négatif, une fois que vous savez dans quel état votre application se trouve,

 

Bénéfices pour le vendeur

 

En tant que développeur, faire évaluer le code source de votre produit, que ce soit avant ou après sa mise sur le marché, a de multiples avantages ; commander un audit ne veut pas dire que vous mettez en doute vos compétences. C'est simplement le meilleur moyen d'obtenir une évaluation objective, poussée et intelligente de votre code par un égal.

 

1 - Une preuve de la qualité de votre code

 

Si un auditeur professionnel évalue votre code et n'y trouve ni défaut ni faille, vous avez toutes les raisons du monde de brandir cet audit et de vous féliciter d'un tel succès. C'est la preuve de la qualité de votre code et, en tant que telle, est un puissant levier de négociation, facile à utiliser lorsque vous cherchez à vendre votre produit à un nouveau client. Votre code est infaillible ; mettez cela en avant !

 

2 - Plus un problème est détecté tôt, plus le coût de correction sera faible

 

Bien que le scénario ci-dessus soit idéal, il est très rare que le code source d'un programme soit parfait avant qu'un audit ne soit réalisé. C'est pourquoi un audit manuel du code source en question peut rendre un grand service au vendeur du produit avant qu'il ne vende celui-ci : en trouvant et corrigeant toutes les erreurs que vous avez pu faire pendant la production, vous pouvez vous assurer que vos clients le recevront rien d'autre que la meilleure version possible de votre projet. D'un point de vue "image de marque", c'est un processus qui vous donne l'image d'un développeur consciencieux, ce qui augmentera encore la valeur de vos produits. En vendant un produit qui a déjà été corrigé, vous renvoyez l'image d'un partenaire fiable en toutes circonstances et vos travaux seront toujours pleinement fonctionnels : c'est une très bonne réputation qui attirera de nombreux nouveaux clients.

 

3 - Un œil neuf pour votre projet

 

Au-delà de simples bugs et failles qui ont pu se glisser dans votre code à votre insu, un audit peut également vous aider à trouver des erreurs plus conséquentes que vous avez pu faire : un autre développeur que vous aura moins de difficulté à retrouver des erreurs telles que des violations de lois sur le copyright, des faiblesses dans votre sécurité ou des méthodes mal utilisées, puisqu'il aura du recul sur votre projet. Si vous êtes trop "près" du code, vous aurez plus de mal à retrouver certaines erreurs que vous pourrez ainsi entièrement effacer de votre code source.

 

La Méthode Siclo

 

Chez Siclo, nous sommes fiers de la qualité et de l'amour du détail qui sont derrière chaque programme que nous codons. Qu'il s'agisse d'une application ou d'un site Internet, nous croyons sincèrement que la hâte et la paresse ne sont pas à leur place dans le domaine du développement.

Quand nous agissons en tant qu'auditeurs de code source, nous appliquons cette même rigueur aux programmes d'autrui. Chaque fois que nous réalisons un audit de code, l'un de nos développeurs examine manuellement celui-ci de la première à la dernière ligne de code.

Afin d'optimiser notre travail, nous avons mis au point une checklist intelligente divisée en plusieurs catégories pour évaluer le code source.

 

1 - Qualité du code

 

Dans un premier temps, nous évaluons la forme du code que nous nous apprêtons à vérifier. Cela inclut vérifier que les indentations, les alignements et les espaces vides sont utilisés de façon appropriée pour optimiser la clarté du code ; mais aussi étudier les conventions onomastiques que le développeur a utilisé pour nommer ses classes, et s'il a lié une documentation suffisante à son code.

Cela vient en premier, car plus un code est lisible, et plus il sera rapide et simple de l'évaluer. C'est pourquoi il est essentiel de vous assurer que votre code puisse être lu par n'importe quel développeur et pas seulement par vous.

 

 

2 - Architecture du code

 

Ensuite, nous inspectons l'architecture du code source ; nous nous assurons que le développeur a appliqué comme il se doit le principe de la Séparation des Préoccupations, c'est-à-dire qu'il a créé plusieurs couches et tiers au sein de son code et que plusieurs formats de fichiers (HTML, JavaScipt, CSS) servent de ressources au code.

Nous observons également les patterns du design de votre code source. Il existe des patterns convenus qui doivent être suivis, simplement parce qu'ils limitent le risque d'erreurs non-relevées dans un code source.

Cela inclut, entre autres, le pattern DRY (Don't Repeat Yourself) et le principe KISS (Keep It Simple, Stupid). 

 

3 - Les bonnes pratiques de codage

 

Les bonnes pratiques de codage sont appelées ainsi car elles sont la méthode qui rend le codage le plus abordable et pratique possible. Les suivre rend votre programme et votre code plus simples à lire et à maintenir, mais pas seulement : c'est aussi une façon plus économique d'écrire du code (puisque cela optimise l'énergie utilisée par le programme).

Si une application échoue à suivre ces bonnes pratiques, il faudra plus de temps pour l'examiner et le code source risque d'avoir besoin d'être entièrement réorganisé.

 

4 - Nécessités non-fonctionnelles

 

Les nécessités non-fonctionnelles regroupent tous les aspects du codage qui, bien qu'ils n'affectent pas directement la capacité d'un programme à fonctionner, peuvent l'handicaper s'ils sont négligés. Une application peut fonctionner sans les respecter ; mais optimiser ces aspects du code est un énorme plus pour elle. On y retrouve principalement :

 

  • La maintenabilité
  • La réutilisabilité 
  • La fiabilité
  • L'extensibilité
  • La sécurité
  • La performance
  • La capacité à changer d'échelle
  • L'utilisabilité

 

5 - Analyse Orientée Objet et les principes de design

 

Si l'on parle de codage orienté objet, les principes SOLID doivent toujours être suivis, car il s'agit d'une méthode qui optimise la maintenabilité et la stabilité du code. En plus de cela, elle rend nettement plus simple toute amélioration du programme, notamment via l'ajout de nouvelles fonctionnalités, ce qui est extrêmement important aujourd'hui.

 

  • Single responsibility principle - Le principe de responsabilité unique.

Une classe ne devrait avoir qu'une seule responsabilité, c'est-à-dire qu'elle ne devrait être liée qu'à une seule partie des fonctionnalités du programme et pas chacune d'entre elles.

  • Open-closed principle - le principe Ouvert-Fermé

"Les entités au sein d'un programme devraient être ouvertes à l'extension mais fermées à la modification". Concrètement, vous devriez pouvoir ajouter de nouvelles fonctionnalités avec de très minces modification au code source d'origine.

  • Liskov substitution principle - le principe de substitution de Liskov

"Les objets au sein d'un programme doivent pouvoir être remplacés par d'autres objets du même sous-type sans que le programme ne cesse d'être correct".

  • Interface segregation principle - le principe de ségrégation des interfaces

Plusieurs interfaces spécialisées valent mieux qu'une interface polyvalente.

  • Dependency inversion principle - le principe d'inversion des dépendances

Les modules devraient reposer sur des abstractions et non d'autres modules ; les détails devraient reposer sur les abstractions.

 

Que faire si j'ai besoin d'un audit ?

 

Maintenant que vous savez comment reconnaître un programme mal codé (cette infographie vous rappelle les symptômes les plus visibles https://www.siclo-mobile.com/fr/comment-reconnaitre-un-programme-mal-code-infographie ) et que vous connaissez tous les bénéfices d'un audit de code, que faire si vous en souhaitez un ?

Rien de plus simple : envoyez-nous un e-mail à l'adresse business@siclo-mobile.com avec un bref résumé de votre projet ou programme et nous nous pencherons dessus au plus vite !


Jul 22 2019