Plan du site  
pixel
pixel

Articles - Étudiants SUPINFO

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

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

Hé les amis ! Dans ce post, je vais partager quelques réflexions que j'ai concernant la lecture et l'étude consciente du code source. À mon avis, la lecture du code est un processus qui peut vous aider à devenir un développeur de logiciels plus compétent. Il a sans aucun doute amélioré et influencé mes compétences en matière de développement de logiciels.

Dois-js lire les codes sources ?

Oui, vous devriez ! La bonne nouvelle, c'est que vous le faites déjà, jour après jour, lorsque vous développez des logiciels. J'ai vu diverses statistiques au fil des ans qui montrent qu'un pourcentage élevé de notre temps en tant que développeurs est consacré à la lecture du code, plutôt qu'à son écriture.

Lorsque vous commencez à utiliser une nouvelle fonctionnalité ou à corriger un bogue, vous devez commencer par comprendre le fonctionnement du code existant. Vous pouvez vous y atteler grâce aux tests unitaires qui doivent décrire clairement le comportement souhaité du code existant, mais vous finirez souvent par vous plonger également dans le code d'implémentation.

Pour ce poste, je considère cette forme de lecture comme une évidence. Ce que je vous recommande ici, c'est de faire de la lecture du code un processus plus conscient et surtout de lire un code que vous n'avez jamais vu auparavant. La lecture d'un code que vous avez écrit à l'origine ou sur lequel vous avez travaillé dans le passé a moins de chances d'avoir un impact et d'informer vos futures compétences en matière de codage que le fait de vous exposer à un code que vous n'avez jamais vu auparavant.

L'amélioration de la lecture et de l'interprétation du code vous aidera lorsque vous vous attaquerez à de nouvelles fonctionnalités ou à des bogues. Vous serez en mesure de scanner le code pertinent à la recherche des informations dont vous avez besoin pour commencer à travailler plus rapidement. Tout comme nous pouvons nous entraîner à lire des livres plus rapidement, nous pouvons devenir plus rapides à lire et à comprendre le code des logiciels.

Pourquoi passer du temps à lire le code source ?

Réfléchissons un instant à la manière dont les jeunes enfants apprennent à lire et à écrire. Dans le livre "Young Learners" de Caroline Linse, elle déclare qu'il faut lire un mot avant de pouvoir l'écrire. Cela me semble assez logique. En lisant d'abord les mots dans leur contexte, vous commencez à comprendre leur signification et leur utilisation appropriée.

En lisant des livres, vous élargissez votre vocabulaire et vous acquérez des techniques que vous pourrez ensuite appliquer à votre écriture. Ce n'est qu'une des raisons pour lesquelles nous étudions la littérature, au cours de nos années de formation à l'école. En fin de compte, en lisant davantage, nous apprenons ce qui marche et ce qui ne marche pas.

Il doit donc en être de même pour le code des logiciels. Je suis un développeur C#, mais quel que soit le langage de programmation choisi, la syntaxe et les mots-clés que vous pouvez utiliser sont soumis à de nombreuses règles. Quelques mots clés et concepts simples peuvent être combinés pour donner des possibilités infinies au code que vous produisez. Il existe de nombreuses façons d'obtenir le même résultat, tout comme il existe de nombreuses façons de dire ou d'écrire la même chose. Bien que toutes puissent techniquement atteindre le même objectif, certaines ont tendance à être plus appropriées et plus faciles à comprendre que d'autres. Dans le code, certaines techniques peuvent aussi être plus efficaces que d'autres.

Avez-vous déjà rencontré un code écrit par un collègue, ou même par vous-même, qui est difficile à lire ? Je sais que oui ! Un code difficile à lire est difficile à maintenir et peut entraver le processus de développement. Tout comme dans le langage, où un paragraphe mal construit peut être déroutant et difficile à assimiler, le code peut subir le même sort. Ces paragraphes ou blocs de code délicats nécessitent de multiples lectures pour en analyser le sens et l'intention. En apprenant à lire plus de code, nous pouvons également améliorer nos compétences en écriture pour éviter de produire un code inintelligible.

L'amélioration de ses compétences nécessite un effort délibéré. L'étude du travail de ceux qui sont plus expérimentés que vous influencera votre propre code à l'avenir. Les médecins, par exemple, suivent des années de formation, même une fois qu'ils sont qualifiés pour pratiquer la médecine. Ils travaillent aux côtés de médecins plus expérimentés, en observant d'abord, avant de tenter eux-mêmes des procédures. Les grands médecins étudient également les documents de ceux qui exercent leur profession afin de se familiariser avec les nouvelles techniques et approches.

C'est quelque chose que nous faisons moins régulièrement dans le développement de logiciels. Certaines équipes peuvent mieux gérer cela que d'autres. La programmation en binôme ou en groupe n'est qu'un moyen de partager les compétences entre les développeurs. Ma théorie ici est qu'une autre technique vitale pour améliorer ses propres compétences est de s'exposer régulièrement à de nouveaux codes dans le cadre d'un cycle d'apprentissage continu sain.

Une citation particulièrement pertinente qui résume ce que j'essaie de dire dans cette section est celle du grand auteur, Stephen King :

"Puis-je être franc à ce sujet ? Si vous n'avez pas le temps de lire, vous n'avez pas le temps (ou les outils) d'écrire. C'est aussi simple que ça".

Quel code source dois-je lire ?

Si vous êtes toujours avec moi, j'espère que vous êtes convaincu que le concept de lecture de code fait partie de votre routine pour vous aider à vous améliorer continuellement en tant que développeur de logiciels. La prochaine question logique est donc de savoir quel code vous devez lire.

De façon général, je ne pense pas que ce soit important. L'important, c'est que vous lisiez le code. Rappelez-vous, cependant, que tous les codes de logiciels ne sont pas créés égaux. Une partie du code source que vous lisez sera nettement mieux écrite que d'autres codes. C'est tout à fait normal. Le bon et le mauvais code peuvent vous aider à affiner vos propres approches.

Il n'est pas nécessaire d'être d'accord avec le code pour que la lecture de celui-ci soit bénéfique. La lecture d'un "mauvais" code peut avoir une influence considérable et être très instructive. Si vous lisez un code et que vous n'aimez pas le style ou que vous repérez un défaut de fonctionnement, c'est très bien. Ce faisant, vous avez identifié un modèle ou une approche que vous n'aimez pas, ou qui ne fonctionne pas. Cela peut vous faire gagner du temps lorsque vous écrivez votre propre code, car vous éviterez, espérons-le, de répéter la même erreur.

Cela dit, vous voulez aussi lire des codes qui ajoutent des techniques ou des approches nouvelles et plus solides à votre vocabulaire de codage. J'aborderai certaines sources de code dans la prochaine section.

La lecture de code provenant de sources multiples est cruciale car vous apprendrez consciemment (et inconsciemment) des schémas qui se répètent dans les différentes sources. Lorsque vous voyez les mêmes techniques, modèles et tendances de code utilisés dans de nombreux endroits, il est plus probable qu'il s'agisse d'une approche éprouvée.

Je consacre mon temps à l'étude des internes de certaines des bibliothèques C# que j'utilise le plus souvent. Cela signifie non seulement que j'améliore mes compétences en lisant le code en général, mais aussi que j'apprends à connaître le fonctionnement interne de ces bibliothèques, ce qui peut m'aider à mieux les utiliser. C'est une double victoire.

Une chose que je ne fais pas assez souvent, mais que j'ai l'intention d'essayer, est de lire des codes écrits dans des langues que j'utilise rarement ou jamais au quotidien. Il est sans aucun doute utile de se familiariser avec un langage logiciel, mais l'élargissement de votre éventail de langues aura également des avantages. Si vous y réfléchissez, beaucoup d'entre nous voient l'avantage d'apprendre une deuxième, et peut-être même une troisième, langue parlée. Cela facilite la communication avec des personnes d'autres pays et nous permet souvent de mieux connaître et d'utiliser notre propre langue maternelle.

Non seulement les secondes langues de programmation élargiront vos possibilités de carrière, mais elles vous feront également apprécier les similitudes et les différences avec votre langue principale. Nous voyons souvent des éléments dans une langue, qui influencent une autre. Le C#, par exemple, a une syntaxe de plus en plus fonctionnelle qui évolue d'abord en F# apparaissant dans chaque version. Certaines fonctionnalités de .NET, telles que les canaux, ont été influencées par Go. Nous pouvons nous préparer à ces fonctionnalités en ayant un œil sur ce deuxième langage.

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