Code Review Microsoft : Le diable se cache dans le détail

En ce moment, je contribue au code source Microsoft de Windows Terminal. Le projet est en open-source sur GitHub et Microsoft accepte les contribution externes.

J’ai commencé par observer le code source qui est assez important et puis j’ai opté pour la création d’une issue suite à des commentaires dans le code qui disaient “changer ci, changer ça, TODO MSFT, etc”.

Après plusieurs jours de réflections, j’ai commencé de jardiner dans le code. Tu modifies un fichier cpp , un ou deux fichier .h et puis les classes utilisatrices ont des changements à répercuter. Bref, tu modifies 15 fichiers au final pour un juste petit changement… Mon premier commit a été massif mais ce fut libérateur. J’ai réalisé que je pouvais le faire. D’un autre côté, cela fait plus de 15 ans que j’ai accès au code source de Windows, donc avec le temps ça serait malheureux de ne pas y arriver… ça serait une faute depuis tout ce temps !

Le temps du Pull Request est venu… C’est le moment ou tu remontes les changements de ta branche chez le projet principale et là, tu décris tes corrections et tu passes par la revue de code ou code review et là, chez Microsoft c’est impitoyable…

Exemple sur l’utilisation de smart pointers:

  • ne pas mettre de pointeur, passer un smart pointer
  • ne pas passer un smart pointeur si une réfrence suffit
  • mettre les ref en const
  • oter les copies de variables inutiles

Au départ, j’avais fait pas de changement et mis des smart pointers là ou des références pouvaient sufir… Le code a été revu. Doc ici: https://herbsutter.com/2013/06/05/gotw-91-solution-smart-pointer-parameters/

Comme je disais sur le réseau social LinkedIn, contribuer au code source Windows, c’est exigeant, c’est un autre métier… On m’en a voulu pour ces paroles car on pensait que je critiquais les sociétés de services. Non… ce n’est pas ça. Le code review de Microsoft est impitoyable, rien n’est laissé au hasard. C’est impressionnant. Et pourtant, je fais du code review, je fais même du coaching en code review. C’est mon dada et bien là, je me suis retrouvé avec pleins de requests changes…

Un PR à moi: https://github.com/microsoft/terminal/pull/1161

Leave a Reply

Your email address will not be published. Required fields are marked *