Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Andre Heinen writes:
| Assert n'est donc à utiliser que pour le débogage, et jamais pour la
| détection d'erreurs susceptibles de se produire lors d'une utilisation
| normale du programme.
Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Andre Heinen <nospam@nospam.invalid> writes:
| Assert n'est donc à utiliser que pour le débogage, et jamais pour la
| détection d'erreurs susceptibles de se produire lors d'une utilisation
| normale du programme.
Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Andre Heinen writes:
| Assert n'est donc à utiliser que pour le débogage, et jamais pour la
| détection d'erreurs susceptibles de se produire lors d'une utilisation
| normale du programme.
Je ne comprends pas. Tu lui conseillerais de mettre un bouet de
sauvetage quand il s'amuse dans une piscine et qu'il l'enlève quand il
s'en va en mer ?
Ma remarque concerne plutôt côté paradoxal de la chose. Dans
le cas de Ariane V, c'est même encore plus vicieux parce que
le module ne servait strictement à rien.
Ma remarque concerne plutôt côté paradoxal de la chose. Dans
le cas de Ariane V, c'est même encore plus vicieux parce que
le module ne servait strictement à rien.
Ma remarque concerne plutôt côté paradoxal de la chose. Dans
le cas de Ariane V, c'est même encore plus vicieux parce que
le module ne servait strictement à rien.
wrote:Il ne faut jamais mettre des #ifdef à l'intérieur d'une
fonction. Ça rend la fonction complètement illisible. (En fait,
dans le code de production, j'interdis des #ifdef complètement.
Il y a des cas, dans les en-têtes et au niveau de portée du
fichier, où on pourrait en discuter. Mais je n'accepterais
jamais un #ifdef qui n'est pas à la portée du fichier.)
C'est curieux, c'est pourtant pratique pour écrire du code multiplatforme.
Le premier exemple qui me vient à l'esprit, c'est l'utilisation des
sockets : car ça se fait de la même façon sous windows et unix au détail
près que sous windows il faut appeler WSAStartup() au démarrage et
WSACleanUp() à l'arret.
Donc je vois bien un truc du genre (dans le .cpp)
kanze@gabi-soft.fr wrote:
Il ne faut jamais mettre des #ifdef à l'intérieur d'une
fonction. Ça rend la fonction complètement illisible. (En fait,
dans le code de production, j'interdis des #ifdef complètement.
Il y a des cas, dans les en-têtes et au niveau de portée du
fichier, où on pourrait en discuter. Mais je n'accepterais
jamais un #ifdef qui n'est pas à la portée du fichier.)
C'est curieux, c'est pourtant pratique pour écrire du code multiplatforme.
Le premier exemple qui me vient à l'esprit, c'est l'utilisation des
sockets : car ça se fait de la même façon sous windows et unix au détail
près que sous windows il faut appeler WSAStartup() au démarrage et
WSACleanUp() à l'arret.
Donc je vois bien un truc du genre (dans le .cpp)
wrote:Il ne faut jamais mettre des #ifdef à l'intérieur d'une
fonction. Ça rend la fonction complètement illisible. (En fait,
dans le code de production, j'interdis des #ifdef complètement.
Il y a des cas, dans les en-têtes et au niveau de portée du
fichier, où on pourrait en discuter. Mais je n'accepterais
jamais un #ifdef qui n'est pas à la portée du fichier.)
C'est curieux, c'est pourtant pratique pour écrire du code multiplatforme.
Le premier exemple qui me vient à l'esprit, c'est l'utilisation des
sockets : car ça se fait de la même façon sous windows et unix au détail
près que sous windows il faut appeler WSAStartup() au démarrage et
WSACleanUp() à l'arret.
Donc je vois bien un truc du genre (dans le .cpp)
writes:
| Gabriel Dos Reis wrote:
| [...]
| > Ma remarque concerne plutôt côté paradoxal de la chose. Dans
| > le cas de Ariane V, c'est même encore plus vicieux parce que
| > le module ne servait strictement à rien.
| Mais le problème dans le cas de l'Ariane V se situait ailleurs.
| Sans l'assert dans le logiciel, le programme aurait été
| défectueux -- dans le cas de l'utilisation prevu (dans le Ariane
| IV), l'assert servait bien, et était même nécessaire. Il
Non. Ce logiciel, ainsi que l'assert qu'il contenait, n'avait
aucune utilité dans le vol Ariane V.
| detectait non seulement des erreurs de logiciel, mais aussi
| des défauts des capteurs. Sans les asserts, le logiciel
| n'aurait pas fonctionné correctement dans l'Ariane IV, c-à-d
| le contexte pour lequel il a été conçu.
Ah mais, j'ai pas dit Ariane IV. J'ai dit Ariane V.
kanze@gabi-soft.fr writes:
| Gabriel Dos Reis wrote:
| [...]
| > Ma remarque concerne plutôt côté paradoxal de la chose. Dans
| > le cas de Ariane V, c'est même encore plus vicieux parce que
| > le module ne servait strictement à rien.
| Mais le problème dans le cas de l'Ariane V se situait ailleurs.
| Sans l'assert dans le logiciel, le programme aurait été
| défectueux -- dans le cas de l'utilisation prevu (dans le Ariane
| IV), l'assert servait bien, et était même nécessaire. Il
Non. Ce logiciel, ainsi que l'assert qu'il contenait, n'avait
aucune utilité dans le vol Ariane V.
| detectait non seulement des erreurs de logiciel, mais aussi
| des défauts des capteurs. Sans les asserts, le logiciel
| n'aurait pas fonctionné correctement dans l'Ariane IV, c-à-d
| le contexte pour lequel il a été conçu.
Ah mais, j'ai pas dit Ariane IV. J'ai dit Ariane V.
writes:
| Gabriel Dos Reis wrote:
| [...]
| > Ma remarque concerne plutôt côté paradoxal de la chose. Dans
| > le cas de Ariane V, c'est même encore plus vicieux parce que
| > le module ne servait strictement à rien.
| Mais le problème dans le cas de l'Ariane V se situait ailleurs.
| Sans l'assert dans le logiciel, le programme aurait été
| défectueux -- dans le cas de l'utilisation prevu (dans le Ariane
| IV), l'assert servait bien, et était même nécessaire. Il
Non. Ce logiciel, ainsi que l'assert qu'il contenait, n'avait
aucune utilité dans le vol Ariane V.
| detectait non seulement des erreurs de logiciel, mais aussi
| des défauts des capteurs. Sans les asserts, le logiciel
| n'aurait pas fonctionné correctement dans l'Ariane IV, c-à-d
| le contexte pour lequel il a été conçu.
Ah mais, j'ai pas dit Ariane IV. J'ai dit Ariane V.
Je sais. Et c'est bien là le problème : ce logiciel était conçu
et développé pour l'Ariane IV. Où l'assert servait bien, et
était même nécessaire.
Je sais. Et c'est bien là le problème : ce logiciel était conçu
et développé pour l'Ariane IV. Où l'assert servait bien, et
était même nécessaire.
Je sais. Et c'est bien là le problème : ce logiciel était conçu
et développé pour l'Ariane IV. Où l'assert servait bien, et
était même nécessaire.
Il me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
tu distingues deux cas d'erreurs:
- celles qui arrivent lors du débugage
- celles qui sont susceptibles de se produire en utilisation
normales
Si le code que tu produis est d'une telle qualité qu'il se divise
en ces deux classes, bravo.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.
Il me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
tu distingues deux cas d'erreurs:
- celles qui arrivent lors du débugage
- celles qui sont susceptibles de se produire en utilisation
normales
Si le code que tu produis est d'une telle qualité qu'il se divise
en ces deux classes, bravo.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.
Il me semble pourtant que la première et la deuxième partie de la
phrase ont le même sens?
Non,
tu distingues deux cas d'erreurs:
- celles qui arrivent lors du débugage
- celles qui sont susceptibles de se produire en utilisation
normales
Si le code que tu produis est d'une telle qualité qu'il se divise
en ces deux classes, bravo.
Mais je suis moins confiant. Donc, laisser
des tests qui vérifient que le code reste dans un état cohérent,
même en mode release, je ne vois pas ce que ça a de choquant.