Recommandations d'apprentissage associées : javascript
J'aime programmer, c'est aussi mon métier, et j'en suis très content pour pouvoir passer la plupart de votre temps à développer des logiciels. Comme beaucoup de programmeurs, j'étais à la fois fasciné et confus par la qualité du code que j'avais écrit et par la manière dont je pouvais l'améliorer.
Au fil des années, j'ai lu de nombreux articles et livres sur le développement de logiciels. Il existe de nombreux livres sur l'encre (dans des livres ou en ligne) qui vous expliquent comment améliorer la programmation et devenir un maître en programmation professionnellement formé comme un ninja ! La plupart de ces suggestions ont quelque chose en commun, dont la lecture du code source. Cependant, comparé à d'autres suggestions, la lecture du code source se résume généralement à une phrase simple : trouvez un excellent logiciel open source, ou tout autre logiciel que vous aimez, ouvrez-le (ou imprimez-le) et lisez-le. Bien qu’en général, il s’agisse effectivement d’une bonne suggestion, elle est superficielle sur le papier et pose de nombreux problèmes lorsqu’elle est réellement mise en pratique. Dans cet article, je vais essayer de donner quelques conseils pratiques sur la lecture du code source, mais avant cela, énumérons d'abord les problèmes.
Lorsque les gens parlent de lecture du code source, l'impression générale que cela vous donne est qu'ils sont comme des maîtres en programmation qui peuvent simplement s'asseoir sur une chaise et lire comme un roman . Commencez avec le code. Eh bien, je suis sûr qu'il existe d'excellents programmeurs qui peuvent prendre plaisir à boire du café tout en regardant un tas de symboles mystérieux similaires à des phrases anglaises, et qui peuvent également construire toute la hiérarchie et la structure des classes dans leur esprit. Évidemment, cet article n'est pas pour eux. Son public est constitué de gens comme moi qui pensent que regarder une pile de code source, c'est comme regarder des exercices ennuyeux et dénués de sens. Bien sûr, on pourrait affirmer que l’on peut apprendre d’un projet complet en examinant une seule classe ou une seule fonction petit à petit, mais à mon avis, la plupart des logiciels dépendent en interne les uns des autres, à l’exception des problèmes les plus simples. Il est souvent impossible de comprendre les idées et les principes de conception derrière une fonction ou une classe spécifique sans comprendre le reste du système.
La question suivante est de savoir où obtenir un code source lisible (bien sûr, avant cela, vous devez être capable d'identifier quel code source vaut la peine d'être lu). Il existe de nombreux excellents logiciels, les logiciels open source sont disponibles gratuitement et les logiciels fermés nécessitent une licence. Les référentiels open source incluent Sourceforge et GitHub. Si vous travaillez pour une société de développement de logiciels, vous avez accès au code propriétaire dans le référentiel de code source. Une troisième approche courante consiste à utiliser des programmes qui accompagnent les livres de développement de logiciels ou sont proposés comme ressources pédagogiques (Minix en est un excellent exemple). En effet, la multitude d’options nous rend difficile le choix, donc trouver celle qui nous convient à lire dans le vaste monde du code est une tâche difficile mais essentielle.
Un autre problème est le langage de programmation utilisé dans le programme. Il est déjà assez difficile de lire le code des autres. Si vous devez également vous familiariser avec un nouveau langage mélangé à une syntaxe étrange, le fardeau que cela apportera sera trop lourd. beaucoup pour moi. Cela ressemble à un désastre qui apportera une grande frustration. Vous devez donc trouver du code écrit dans un langage que vous connaissez. Mais si le code que vous consultez provient d’un livre ou est fourni comme ressource pédagogique, peu importe que vous connaissiez la nouvelle langue car il existe des instructeurs qui peuvent expliquer le contexte. Si vous savez qu'il y a des tigres dans les montagnes, mais que vous préférez lire un langage de programmation inconnu sans l'aide d'un livre ou d'un tuteur, alors je suggère que vous deviez au moins l'apprendre et atteindre le point où vous pourrez écrire votre propre programme (Hello World, ça ne compte pas haha).
La question précédente sur le contexte m'amène à ma question suivante, il est beaucoup plus difficile de comprendre ce que fait le code si vous n'êtes pas familier avec le logiciel lui-même. Par exemple, si vous n'utilisez pas Linux tous les jours et connaissez la séquence de démarrage de Linux, il est difficile de déterminer quels sont les niveaux d'exécution après avoir examiné le code Linux. L'expérience et les connaissances acquises grâce à l'utilisation d'un certain logiciel peuvent nous aider à mieux lire son code source, y compris la terminologie couramment utilisée, les fonctions et caractéristiques du logiciel, et même les diverses erreurs que vous rencontrez.
Pour moi, j'ai réalisé que « lire le code source » ne décrit pas avec précision les activités dans lesquelles je suis engagé, et « comprendre le code source » serait plus approprié . Il m'est très difficile de m'asseoir devant l'écran d'un ordinateur portable (ou de l'imprimer sur papier) et de simplement lire un écran rempli de code. J'ai besoin d'autres choses que du code. Par exemple, j'aime parcourir la documentation, jouer avec le logiciel, parcourir le code et même écrire du code de test pour l'exécuter, et je peux alors vraiment l'apprécier. Parce que je vais investir beaucoup de temps et d'énergie là-dedans, je dois être très sélectif et trouver les logiciels que je veux « lire » (comprendre).
Mon premier niveau de filtrage se fait par langage de programmation, pour moi je ne lis que le code des programmes écrits en C#, VB.NET, Python et Javascript (même si je connais aussi C++, Ruby et F#, mais je ne le fais pas) Je ne pense pas avoir le niveau nécessaire pour comprendre le code des autres). Ensuite, je recherche un logiciel que j'ai utilisé et qui me donne l'impression d'être déjà à bord parce que je connais l'intention du code et ce qu'il ne peut pas faire et quelles sont ses limites (si je le connais suffisamment) . Les logiciels open source que j'utilise au quotidien sont un excellent candidat (par exemple, j'utilise les outils open source Cruise Control.NET, NANT et NUnit écrits en C#)
Il arrive que je travaille sur un produit logiciel company (une société Microsoft), donc l'une des sélections de code source que j'ai lues était le code de notre entreprise dans le référentiel de code source. Si vous travaillez également pour un éditeur de logiciels, vous pouvez consulter d'autres projets ou même des versions antérieures du projet sur lequel vous avez travaillé. De cette façon, en plus de mieux comprendre votre code, vous aurez également une bonne idée de ce que vous avez essayé avant et après. Il y a cependant quelques mises en garde à noter :
Recherchez des projets bien documentés (cela s'applique aussi bien au code open source qu'au code propriétaire). Ce que je veux dire, c'est qu'une telle documentation doit mettre en évidence la conception globale et expliquer la justification du code. S'il s'agissait simplement d'un document de type Java Doc généré automatiquement, il ne serait pas considéré comme la documentation que je décris :-). Une façon d'y parvenir consiste à utiliser des logiciels créés pour l'éducation (tels que Minix). Étant donné que leur objectif est d'enseigner via un logiciel, ils sont généralement très clairement documentés et contiennent de nombreux documents expliquant les principes de conception derrière le code.
Alors, maintenant que vous avez identifié le logiciel dont vous souhaitez lire le code source et téléchargé son code source et sa documentation, lisons-le et comprenons-le étape par étape :
À mon avis, la « lecture du code source » est plus qu'une simple lecture, c'est un ensemble unique d'activités qui fonctionnent ensemble pour aider les gens à comprendre le code. Cela peut sembler plus intimidant que simplement « lire du code », mais cela en vaut la peine.
Maintenant, pouvez-vous « lire le code source » plus facilement et plus joyeusement ?
Si vous souhaitez en savoir plus sur la programmation, faites attention à la rubrique Formation php !
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!