Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

Devenir un meilleur developpeur en lisant les codes sources : Partie III

Par Fayçal SIDI ALI MEBAREK Publié le 20/02/2020 à 12:43:14 Noter cet article:
(0 votes)
Avis favorable du comité de lecture

Comment lire le code source ?

Je suis sûr que chacun aura ses propres préférences dans cette section. En fin de compte, faites ce qui vous convient le mieux ! Je vous ferai part ici de quelques-unes de mes propres approches que vous pourrez appliquer pour lancer vos aventures de lecture de codes.

J'aime généralement me concentrer sur un code qui soit fait quelque chose dont je veux reproduire le style à l'avenir, soit qui approfondit ma connaissance du code que j'utilise quotidiennement. Comme je l'ai dit plus tôt, cela me permet de doubler le rendement du temps que j'investis.

J'ai tendance à commencer à travailler à GitHub. Cela me prive de mes outils habituels et me permet de concentrer mon attention sur la véritable compréhension de ce qui se passe dans le code. J'essaie de trouver une abstraction de haut niveau comme point de départ, puis j'approfondis progressivement mes recherches internes. J'aime prendre des notes dans OneNote lorsque j'étudie le code, en décrivant le flux et le fonctionnement du code. Ce sont des notes courtes. Ce processus consiste moins à avoir une référence, bien que celle-ci puisse être utile, qu'à intégrer les connaissances dans ma mémoire. En le décrivant par écrit, je constate qu'il me reste beaucoup plus longtemps en mémoire.

Naviguer en code et se faire une image mentale du flux logique est une compétence pratique. Si vous pouvez l'apprendre en lisant du code, cela vous sera utile la prochaine fois que vous essaierez de corriger un bogue critique sous la pression.

Une fois que j'ai une vue d'ensemble formée, l'étape suivante consiste à aller plus loin. Pour cela, j'ai tendance à cloner le dépôt afin de pouvoir l'intégrer dans un IDE ou un code VS. Là, je peux utiliser les fonctions de navigation du code pour me déplacer plus rapidement et m'immerger réellement dans le comportement du code. À ce stade, j'essaie de comprendre pourquoi le code a été écrit comme il l'est. J'aime penser à la façon dont j'aurais choisi d'aborder un problème et de le mettre en contraste avec la mise en œuvre réelle. L'approche de l'auteur est-elle meilleure ou plus efficace ? Dois-je le classer pour la prochaine fois que je serai confronté à une exigence similaire ?

Souvent, le code peut utiliser des API que je n'ai jamais découvertes lors de l'écriture du code. Je trouve que lorsque je code, j'ai tendance à utiliser les API que je connais mieux. Ce ne sont peut-être pas les meilleures méthodes d'appel ou les meilleures classes sur lesquelles s'appuyer, mais comme je ne connais pas d'alternative, je continue à les utiliser. Après avoir lu un peu de code, s'il y a des API que je n'ai pas utilisées auparavant, j'étudie la description et la ou les signatures de méthode pour comprendre leur utilisation prévue. Cela permet d'élargir mon vocabulaire de code.

Cette deuxième étape améliore également mes compétences de travail avec des outils tels que mon IDE. Je trouve des astuces et des raccourcis pour gagner du temps lors de la navigation dans le code. Une chose que je fais souvent est de sortir une classe dans une fenêtre sur mon deuxième moniteur afin de pouvoir suivre plus rapidement les flux de code. C'est aussi une chose que je fais maintenant souvent lorsque j'écris du code.

Je suis également à l'affût de caractéristiques ou de modèles linguistiques que je ne reconnais pas. J'apprends rapidement les caractéristiques de la dernière version de C# en les voyant utilisées dans la nature, pour ainsi dire.

Que faire si je ne comprends pas le code ?

C'est très bien ! Au début, vous ne comprendrez pas tout ce que vous lirez, et c'est d'ailleurs notre objectif ici. Vous voulez vous exposer à de nouvelles API ou à une nouvelle syntaxe dans le code que vous lisez afin d'approfondir votre propre vocabulaire de code. Lire du code que vous comprenez facilement, un peu comme si vous lisiez un simple livre, ne va pas vous permettre d'élargir vos compétences en matière d'écriture.

Essayez de décomposer les choses en petits morceaux à travailler dans votre tête. Que fait le code et pourquoi a-t-il été écrit de cette façon ? L'auteur a-t-il utilisé une approche pour résoudre quelque chose que vous n'aviez pas envisagé auparavant ? Lorsque vous vous heurtez à la syntaxe d'une langue ou à des mots-clés que vous ne comprenez pas, arrêtez-vous et cherchez la documentation. Armé d'un cas d'utilisation réel, la documentation aura souvent un sens dans le contexte d'où vous l'approchez.

De même, lorsque vous rencontrez des API de cadre que vous n'avez jamais utilisées auparavant, consultez la documentation du code s'il y en a. Pour les bibliothèques Microsoft, toutes les méthodes publiques incluent des commentaires XML. Vous pouvez soit les lire directement, soit visiter le navigateur de l'API .NET pour obtenir des informations sur une classe ou une méthode.

Ce qui est important dans la lecture consciente d'un code, c'est que c'est votre propre temps et que vous investissez dans vos compétences. Contrairement à ce qui se passe lorsque vous êtes dans une base de code, que vous devez respecter un délai, que vous essayez de terminer une correction de bogue ou une fonctionnalité. Vous aurez rarement le temps d'aller au-delà des limites du code avec lequel vous travaillez directement. Cette situation est beaucoup moins propice à l'apprentissage.

Ce que j'ai appris en lisant le code source

J'ai beaucoup appris en étudiant le code, c'est pourquoi je suis si enthousiaste à l'idée de promouvoir cette pratique. Les artisans d'aujourd'hui étudient souvent le travail des maîtres de leur métier. Ce faisant, ils espèrent atteindre un jour leur niveau de compétence. Les développeurs aussi peuvent améliorer leurs compétences en étudiant auprès des experts dans leur domaine.

Pour moi personnellement, en tant que développeur C#, je trouve très utile d'étudier le code source de Microsoft pour le framework .NET Core et ASP.NET Core. Il y a beaucoup de grands développeurs chez Microsoft qui ont une expertise complète des éléments spécifiques du langage ou du runtime.

Je suis un développeur autodidacte, ou comme j'ai vu quelqu'un l'appeler sur Twitter récemment (je ne me souviens plus qui, malheureusement), un développeur communautaire. J'ai appris le C# par essais et erreurs, tout en étudiant consciemment le code. Tout comme les universitaires étudient les grandes œuvres de la littérature, il y a de nombreux secrets à découvrir en lisant un grand code.

Une ressource connexe que je recommande à ceux qui sont intrigués par la conception de logiciels et qui souhaitent mieux apprécier le cadre de travail .NET Core est disponible sur YouTube. L'équipe .NET publie sur YouTube la plupart de ses revues hebdomadaires de conception .NET. Il s'agit de réunions au cours desquelles l'équipe examine les propositions de modification de l'API du noyau .NET. Bien que je puisse comprendre que l'idée de regarder une réunion par choix, à votre propre rythme, puisse être trop geek pour certains, c'est une excellente façon d'apprendre. L'équipe de ces appels est composée de véritables experts qui connaissent si bien le langage, l'exécution et le cadre que c'est assez stupéfiant à observer. En les écoutant discuter des API proposées, vous comprenez vraiment les considérations qui doivent être prises en compte dans un cadre aussi large et largement utilisé. Il y a souvent de petites perles d'information que je recueille rien qu'en regardant ces flux.

Conclusion

Mon objectif avec cet article est d'inciter quelques lecteurs à envisager une étude et une lecture plus consciente du code. Je crois sincèrement que cela m'a aidé à devenir un meilleur développeur et à en apprendre davantage sur le langage C# et le framework .NET (Core). Investir quelques heures régulièrement vous sera profitable à l'avenir. Vous aurez des opinions plus variées sur le style et les techniques de codage. Vous comprendrez mieux comment fonctionne le cadre de travail sur lequel vous vous appuyez quotidiennement, ce qui pourra vous aider à l'utiliser. Vous serez plus rapide à lire le code et, par conséquent, les prochaines modifications que vous devrez apporter au code vous prendront moins de temps entre le moment où vous en aurez besoin et celui où vous l'aurez terminé.

Bibliographie

https://www.stevejgordon.co.uk/become-a-better-developer-by-reading-source-code

A propos de SUPINFO | Contacts & adresses | Enseigner à SUPINFO | Presse | Conditions d'utilisation & Copyright | Respect de la vie privée | Investir
Logo de la société Cisco, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société IBM, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sun-Oracle, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Apple, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Sybase, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Novell, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Intel, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Accenture, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société SAP, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Prometric, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo de la société Toeic, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management Logo du IT Academy Program par Microsoft, partenaire pédagogique de SUPINFO, la Grande École de l'informatique, du numérique et du management

SUPINFO International University
Ecole d'Informatique - IT School
École Supérieure d'Informatique de Paris, leader en France
La Grande Ecole de l'informatique, du numérique et du management
Fondée en 1965, reconnue par l'État. Titre Bac+5 certifié au niveau I.
SUPINFO International University is globally operated by EDUCINVEST Belgium - Avenue Louise, 534 - 1050 Brussels