Riot: Evite el uso de goto

Creado en 6 jul. 2017  ·  6Comentarios  ·  Fuente: RIOT-OS/RIOT

Usar goto es una práctica de programación terrible. Puede haber algunos beneficios por usarlo en el código central (no puedo ver ninguno), pero por el amor de Dios, no lo use en los ejemplos.

El archivo que me llamó la atención es RIOT/blob/master/examples/gcoap/gcoap_cli.c, que en la línea 139 tiene una declaración goto, que se puede reemplazar simplemente con el código debajo de la etiqueta final: (solo dos líneas).

contested minor cleanup

Todos 6 comentarios

para el ejemplo de gcoap ciertamente tienes razón. Por otro lado, hay aproximadamente 30 (algo) usos de goto en RIOT en general, teniendo en cuenta que se trata de un sistema operativo IoT (integrado), ese recuento es bastante bajo.

Por lo tanto, siéntase libre de proporcionar un PR que solucione el ejemplo de gcoap, pero de lo contrario no veo esto como un problema (al menos por ahora).

Usar goto es una práctica de programación terrible.

Eso es discutible. Muchos consideran que usar goto para el manejo de errores en C es una buena práctica, ya que a menudo conduce a un código más legible y menos propenso a errores.

gcoap_cli.c, que en la línea 139 tiene una instrucción goto, que se puede reemplazar simplemente con el código debajo de la etiqueta end: (solo dos líneas).

¿Quieres decir, duplicar la llamada printf?

¿Quieres decir, duplicar la llamada printf?

Creo que el código se puede modificar fácilmente usando if .. else if ... else evitando goto sin afectar la legibilidad, lo que no es posible en todos los casos en los que se usa goto .

¿Quieres decir, duplicar la llamada printf?
Creo que el código se puede volver a trabajar fácilmente usando ...

Seguro. Quería señalar que simplemente copiar las dos líneas no es suficiente.

No se trata de reducir la línea de códigos. Se trata de legibilidad y buenas prácticas de código. Cuando se usa goto en lugar de if...else.... entonces "se considera dañino"

¿Fue útil esta página
0 / 5 - 0 calificaciones

Temas relacionados

jia200x picture jia200x  ·  7Comentarios

kaspar030 picture kaspar030  ·  6Comentarios

nmeum picture nmeum  ·  5Comentarios

jue89 picture jue89  ·  5Comentarios

OlegHahm picture OlegHahm  ·  4Comentarios