Table des matières:
- Adoptez un style de codage clair et cohérent
- Commentez votre code pendant que vous l'écrivez
- Un seul pas tous les chemins au moins une fois
- Éviter de surcharger les opérateurs
- Gestion du tas d'équilibrage
- Utiliser des exceptions pour gérer les erreurs
- Éviter l'héritage multiple
Vidéo: Le débogueur JavaScript (VSCode, Google Chrome) [M0L09] 2024
Ne commencez pas à déboguer votre code tant que vous n'avez pas supprimé ou au moins compris tous les avertissements générés lors de la compilation. Activer tous les messages d'avertissement si vous les ignorez ensuite ne vous sert à rien. Si vous ne comprenez pas l'avertissement, cherchez-le. Ce que vous ne savez pas vous blessera .
Adoptez un style de codage clair et cohérent
Coder dans un style clair et cohérent améliore non seulement la lisibilité du programme, mais entraîne également moins d'erreurs de codage. Rappelez-vous, moins vous avez besoin de pouvoir déchiffrer la syntaxe C ++, plus il vous reste de réflexion sur la logique du programme. Un bon style de codage vous permet de faire ce qui suit en toute simplicité:
- Différencier les noms de classes, d'objets et de fonctions
- Connaître l'objet en fonction de son nom
- Différencier les symboles de préprocesseur des symboles C ++ (c'est-à-dire que les objets définis doivent se distinguer
- Identifier les blocs de code C ++ au même niveau (c'est le résultat d'une indentation cohérente)
De plus, vous devez établir un en-tête de module standard qui fournit des informations sur les fonctions ou classes du module, l'auteur (probablement, c'est vous), la date, la version du compilateur que vous utilisez et un historique des modifications.
Enfin, tous les programmeurs impliqués dans un même projet devraient utiliser le même style. Essayer de déchiffrer un programme avec un patchwork de différents styles de codage est déroutant.
Commentez votre code pendant que vous l'écrivez
Vous pouvez éviter les erreurs si vous commentez votre code pendant que vous écrivez plutôt que d'attendre que tout fonctionne, puis revenez en arrière et ajoutez des commentaires. Ne pas prendre le temps d'écrire des en-têtes volumineux et des descriptions de fonctions plus tard est compréhensible, mais vous avez toujours le temps d'ajouter de courts commentaires tout en écrivant le code.
De brefs commentaires devraient être éclairants. S'ils ne le sont pas, ils ne valent pas grand-chose et vous devriez faire autre chose à la place. Vous avez besoin de toutes les lumières que vous pouvez obtenir pendant que vous essayez de faire fonctionner votre programme. Quand vous regardez un morceau de code que vous avez écrit il y a quelques jours, des commentaires brefs, descriptifs et pertinents peuvent vous aider à comprendre exactement ce que vous essayiez de faire.
De plus, les conventions d'indentation et de dénomination de code cohérentes facilitent la compréhension du code. Tout est très agréable lorsque le code est facile à lire une fois que vous avez terminé, mais il est tout aussi important que le code soit facile à lire pendant que vous l'écrivez. C'est quand vous avez besoin de l'aide.
Un seul pas tous les chemins au moins une fois
En tant que programmeur, il est important que vous compreniez ce que fait votre programme. Rien ne vous donne une meilleure idée de ce qui se passe sous le capot que de lancer le programme avec un bon débogueur. (Les débogueurs inclus dans l'EDI des compilateurs interactifs fonctionnent très bien.)
Au-delà, lorsque vous écrivez un programme, vous avez parfois besoin de matière brute pour comprendre un comportement bizarre. Rien ne vous donne ce matériel mieux que de nouvelles fonctionnalités à mesure qu'elles entrent en service.
Enfin, lorsqu'une fonction est terminée et prête à être ajoutée au programme, chaque chemin logique doit être parcouru au moins une fois. Les bugs sont beaucoup plus faciles à trouver lorsque la fonction est examinée par elle-même plutôt qu'après avoir été jetée dans le pot avec le reste des fonctions - et votre attention a été portée sur de nouveaux défis de programmation.
Éviter de surcharger les opérateurs
A l'exception des opérateurs opérateur E / S opérateur << () et opérateur >> () et opérateur opérateur d'affectation = () , vous devriez probablement tenir à l'écart des opérateurs surchargés jusqu'à ce que vous vous sentiez à l'aise avec C ++. Bien qu'un bon ensemble d'opérateurs surchargés puisse augmenter l'utilité et la lisibilité d'une nouvelle classe, les opérateurs de surcharge (autres que les trois listés ci-dessus) ne sont presque jamais nécessaires et peuvent ajouter significativement à vos problèmes de débogage comme nouveau programmeur. Vous pouvez obtenir le même effet en définissant et en utilisant les fonctions membres publiques appropriées.
Après quelques mois de C-Plus-Plussing, n'hésitez pas à revenir et commencer à surcharger les opérateurs à votre guise.
Gestion du tas d'équilibrage
Généralement, les programmeurs doivent allouer et libérer la mémoire du tas au même niveau. "Si une fonction membre MyClass:: create () alloue un bloc de mémoire heap et le renvoie à l'appelant, alors il devrait y avoir une fonction membre MyClass:: release () renvoie la mémoire au tas. Plus précisément, MyClass:: create () ne devrait pas exiger que la fonction parent libère la mémoire elle-même. Cela n'évite certainement pas tous les problèmes de mémoire - la fonction parent peut oublier d'appeler MyClass:: release () - mais cela réduit quelque peu la possibilité.
Utiliser des exceptions pour gérer les erreurs
Le mécanisme d'exception de C ++ est conçu pour gérer les erreurs de manière pratique et efficace. Maintenant que cette fonctionnalité a été standardisée, vous devriez l'utiliser. Le code résultant est plus facile à écrire, plus facile à lire et plus facile à maintenir. D'ailleurs, d'autres programmeurs en sont venus à s'y attendre - vous ne voudriez pas les décevoir, n'est-ce pas?
Éviter l'héritage multiple
L'héritage multiple, comme la surcharge d'un opérateur, ajoute un autre niveau de complexité dont vous n'avez pas besoin lorsque vous débutez. Heureusement, la plupart des relations du monde réel peuvent être décrites avec un seul héritage.
N'hésitez pas à utiliser des classes à héritages multiples provenant de bibliothèques commerciales, telles que les classes Microsoft MFC.Microsoft a passé beaucoup de temps à configurer ses cours, et il sait ce qu'il fait.
Une fois que vous vous sentez à l'aise avec votre niveau de compréhension de C ++, expérimentez la mise en place de plusieurs hiérarchies d'héritage multiples. De cette façon, vous serez prêt si vous en avez besoin.