Riot: Évitez l'utilisation de goto

Créé le 6 juil. 2017  ·  6Commentaires  ·  Source: RIOT-OS/RIOT

Utiliser goto est une pratique de programmation terrible. Il pourrait y avoir des avantages à utiliser dans le code de base (je n'en vois aucun), mais pour l'amour de Dieu, ne l'utilisez pas dans les exemples.

Le fichier qui a attiré mon attention est RIOT/blob/master/examples/gcoap/gcoap_cli.c qui à la ligne 139 a un goto statememt, qui peut être simplement remplacé par le code sous l'étiquette end: (seulement deux lignes).

contested minor cleanup

Tous les 6 commentaires

pour l'exemple gcoap, vous avez certainement raison. D'un autre côté, il y a environ 30 (quelque chose) utilisations de goto dans RIOT dans l'ensemble, étant donné qu'il s'agit d'un système d'exploitation IoT (embarqué), ce nombre est plutôt faible.

Donc, n'hésitez pas à fournir un PR corrigeant l'exemple de gcoap, mais sinon, je ne vois pas cela comme un problème (du moins pour l'instant).

Utiliser goto est une pratique de programmation terrible.

C'est discutable. L'utilisation de goto pour la gestion des erreurs en C est en fait considérée comme une bonne pratique par beaucoup, car elle conduit souvent à un code plus lisible et moins sujet aux erreurs.

gcoap_cli.c qui, à la ligne 139, a une instruction goto, qui peut être simplement remplacée par le code sous l'étiquette end: (seulement deux lignes).

Vous voulez dire, dupliquer l'appel printf ?

Vous voulez dire, dupliquer l'appel printf ?

Je pense que le code peut être facilement retravaillé en utilisant if .. else if ... else en évitant goto sans affecter la lisibilité - ce qui n'est pas possible dans tous les cas où goto est utilisé.

Vous voulez dire, dupliquer l'appel printf ?
Je pense que le code peut être facilement retravaillé en utilisant ...

Sûr. Je voulais souligner que le simple fait de copier les deux lignes ne suffira pas.

Il ne s'agit pas de réduire la ligne de codes. Il s'agit de lisibilité et de bonnes pratiques de code. Lorsque goto est utilisé à la place de if...else...alors "il est considéré comme nuisible"

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

l3nko picture l3nko  ·  7Commentaires

romainvause picture romainvause  ·  3Commentaires

pietrotedeschi picture pietrotedeschi  ·  4Commentaires

hcnhcn012 picture hcnhcn012  ·  5Commentaires

chrysn picture chrysn  ·  5Commentaires