Eh bien, la question se trouve dans le titre - comment puis-je améliorer mes compétences en lecture de code.
L'environnement logiciel / matériel dans lequel je travaille actuellement est assez lent en ce qui concerne les temps de compilation et le temps nécessaire à l'ensemble du système pour tester. Le système est assez ancien / complexe et il n'est donc pas possible de le diviser en plusieurs sous-projets plus petits et plus faciles à gérer dans un avenir proche.
J'ai réalisé que ce qui entrave vraiment le progrès du développement, c'est mes compétences en lecture de code. Comment puis-je améliorer mes compétences en lecture de code, afin que je puisse repérer la plupart des erreurs et des problèmes dans le code avant même d'appuyer sur la touche "compiler", avant même de démarrer le débogueur?
Réponses:
Lire plus de code
Pour ma part, j'ai obtenu mes compétences de lecture de code quelque peu décentes en lisant les questions de certification, celles-ci étaient très difficiles à suivre, car elles étaient mal écrites exprès
Ils sont censés tester votre connaissance du langage (Java dans mon cas) après tout.
Plus vous lisez de code, plus vous accumulez d'expérience, c'est aussi simple que cela
la source
Améliorez votre environnement de développement autant que possible afin qu'il puisse vous donner des commentaires que vous pouvez utiliser.
Les IDE modernes peuvent aider BEAUCOUP si vous pouvez leur fournir les informations nécessaires. Voici des exemples:
Il existe également des programmes qui peuvent identifier les erreurs logiques dans vos programmes, que vous pouvez utiliser pour obtenir encore plus d'informations sur votre programme dont vous pouvez apprendre.
De plus, votre IDE peut vous aider à naviguer dans votre source lorsqu'il connaît toutes ces choses. Cela vous permet de rechercher facilement les choses au lieu d'avoir à tout mémoriser
Je vous suggère de modifier votre question pour fournir plus d'informations sur l'environnement avec lequel vous travaillez et les programmes que vous écrivez, pour de meilleures suggestions.
la source
En plus de ce que tout le monde a dit, vous avez besoin de patience si vous voulez lire du code (surtout s'il ne vous appartient pas). Oui, la lecture par ligne de code par cœur demande de la pratique, mais cela en vaut la peine, et vous apprenez également les styles / astuces de codage des autres. Voici ce que je vérifie dans l'ordre:
J'ai l'habitude de coder dans un éditeur de texte brut, donc Ctrl + F est mon ami, mais un IDE est très utile, surtout lorsque vous lisez à partir de plusieurs fichiers.
Maintenant, si vous êtes celui qui va écrire le code, n'ayez pas peur de mettre des espaces blancs et des indentations et des commentaires. Honnêtement, si cela ne semble pas agréable aux yeux, cela devient une douleur dans la tête.
la source
Même si je pouvais repérer toutes les erreurs avant de lancer la compilation, je vérifierais toujours en testant et en compilant. Je ferais seulement confiance à un test positif et à un programme en cours.
Je pense que de bonnes compétences en lecture de code peuvent vous aider à faire des hypothèses sur le code. "Cela irait probablement mal!", Et testez cela. Et en trouvant des bugs "cela pourrait être la cause permet de le tester"
La meilleure façon d'y arriver est d'écrire le code vous-même. La deuxième meilleure façon est que le code est tout simplement très bon et s'explique (s'il est vraiment difficile, le code n'est tout simplement pas si bon)
Si ce n'est pas votre propre code et qu'il n'est pas bien écrit, la seule façon de s'améliorer est de faire, faire, faire. Lisez le code, essayez différentes choses, écrivez des tests sur celui-ci, apprenez à connaître la base du code, refactorisez. Des outils peuvent vous aider, des outils qui peuvent trouver où les méthodes sont utilisées, où les interfaces sont implémentées, où les variables sont déclarées, etc. Et des outils qui vous donnent un aperçu des espaces de noms, de leurs relations et des mesures à leur sujet.
la source
J'ai eu un problème similaire dans le passé - mon truc était d'écrire un petit test, de quitter le bureau pendant un petit moment, de revenir et de simuler le test sur papier. De cette façon, vous obtenez de passer en revue votre code avec un nouveau look, et vous avez une valeur spécifique à vérifier (contrairement à parcourir votre code et dire "ahh .. ahh ... est logique")
la source
Il serait peut-être bon de se concentrer sur l'apprentissage d'une compétence en lecture de code à la fois, tout comme dans les revues de code formelles, chaque critique a une responsabilité différente. Prenez un corps de code et passez une semaine (disons) à chercher des noms de variables incorrects. Frappez à nouveau le même code la semaine prochaine à la recherche de pointeurs nuls potentiels; la semaine prochaine, recherchez les blocs de code en double; puis des problèmes de multithreading, etc.
Après avoir consacré du temps à perfectionner différents détecteurs, vous pouvez constater que vous pouvez maintenant lire le code avec un couple - ou peut-être tous - d'entre eux actifs, vous avez donc un sens du code plus riche maintenant en une seule lecture.
la source
Si vous parlez d'erreurs de compilation, cela ne se produira pas. La meilleure solution pour les erreurs du compilateur est d'affecter la personne qui a interrompu la génération à baby-sitting les générations jusqu'à ce que quelqu'un d'autre rompt la génération. Vous l'avez cassé, vous l'avez réparé.
Les erreurs logiques sont beaucoup plus difficiles à détecter et à éviter. Une technique pour éviter les cas simples consiste à écrire des tests unitaires / de régression.
la source
Un conseil que j'ai entendu ce matin (sur la radio SE) était de prendre un fichier et de le réduire au type 3pt, puis de rechercher des modèles dans le texte. Vous ne pourrez pas lire le texte mais toutes sortes de modèles apparaîtront. C'est plutôt un bon truc.
Et c'est l'un de ces endroits où la ligne de commande est votre ami, grep et les pipelines peuvent faire beaucoup de choses utiles.
la source
J'ai été professeur de programmation pendant plusieurs années. Pendant cette période, j'ai passé beaucoup de temps à lire le code et à le commenter. Cela implique de repérer les erreurs de compilation (nous n'avons pas toujours compilé le code des étudiants), les erreurs de logique et de conception et les problèmes de normalisation.
Pour bien faire cela, nous avons dû développer un œil attentif à ce type d'erreurs et être en mesure de "tester à blanc" le code. Ce type d'activité m'a également exposé à de nombreux styles de codage. Aujourd'hui, mes compétences en lecture de code sont assez bonnes grâce à cette période.
Donc, ma suggestion est la suivante:
Bonne chance!
la source