Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Que pensez-vous de cette technique de dev?

7 views
Skip to first unread message

Tr@nquille

unread,
Nov 23, 2011, 11:45:37 AM11/23/11
to
Bonjour,

ne sachant pas trop où poser cette question, je viens par ici, et si
quelqu'un connait un endroit plus pertinent, merci d'avance de me
rediriger.

Alors voilà, je dois effectuer plusieurs tests à la suite, et si l'un
d'entre eux est pas ok, je ne dois pas faire un traitement.

d'habitude, j'utilise les if imbriqués, mais quand il y en à plusieurs,
c'est laborieux et source d'erreurs.

les tests portent sur des choses différentes, je ne peux pas non plus
utiliser select case.

par ex, je teste:
si servive pack = 1 pas ok
si os= windowsxp pas ok
si espace dique< 1Gi pas ok
etc

voilà ma technique:
do while true
si servive pack = 1 message pas ok puis exit do
si os= windowsxp message pas ok puis exit do
si espace dique< 1Gi message pas ok puis exit do
traitement si tout ok
exit do
loop

en réalité j'ai au moins 5 tests imbriqués...

que pensez-vous de cette technique:
stupide, il existe une méthode simple et bien meilleure
possible mais dangereux, risqué, pas efficace ou je ne sais quoi
c'est une technique courante et sans problème

par avance merci pour vos avis ou redirections.

--
C'est quand ça fait chier de le faire qu'on rend vraiment un service.
(Réflexion)
tranqui...@gmail.com


Matt...

unread,
Nov 23, 2011, 3:47:20 PM11/23/11
to
Le Wed, 23 Nov 2011 17:45:37 +0100, Tr@nquille <tranqui...@gmail.com>
a écrit:


> voilà ma technique:
> do while true
> si servive pack = 1 message pas ok puis exit do
> si os= windowsxp message pas ok puis exit do
> si espace dique< 1Gi message pas ok puis exit do
> traitement si tout ok
> exit do
> loop

Bonsoir,

Un truc comme ça :

int test()
{
if(service_pack == 1)
{
puts("Pas OK");
return 1;
}

if(strcmp(os, "windowsxp") == 0)
{
puts("Pas OK");
return 1;
}

if(disque < (1 * 1024 * 1024 * 1024))
{
puts("Pas OK");
return 1;
}

return traitement();
}

Matt...

--
Utilisant le client e-mail révolutionnaire d'Opera :
http://www.opera.com/mail/

Tr@nquille

unread,
Nov 23, 2011, 4:59:45 PM11/23/11
to
*Ecrit* *par* *Matt...*:
> Le Wed, 23 Nov 2011 17:45:37 +0100, Tr@nquille
> <tranqui...@gmail.com> a écrit:


>> voilà ma technique:
>> do while true
>> si servive pack = 1 message pas ok puis exit do
>> si os= windowsxp message pas ok puis exit do
>> si espace dique< 1Gi message pas ok puis exit do
>> traitement si tout ok
>> exit do
>> loop

> Bonsoir,

> Un truc comme ça :

> int test()
> {
> if(service_pack == 1)
> {
> puts("Pas OK");
> return 1;
> }

> if(strcmp(os, "windowsxp") == 0)
> {
> puts("Pas OK");
> return 1;
> }

> if(disque < (1 * 1024 * 1024 * 1024))
> {
> puts("Pas OK");
> return 1;
> }

> return traitement();
> }

> Matt...

ok, j'avais pensé à éclater le code en divers fonctions etc, mais comme
c'est un truc assez volumineux que je reprends pour quelques
adaptations vites faites (pas question d'y passer des jours en fait)
j'essayais d'imaginer autre chose de plus vite fait.
de toute façon à terme je dois tout refaire autrement mais pas avant mi
2012...
pas de danger que je ne verrais pas dans mon code?

--
Fait de ta vie ce que tu estimes le mieux. (Conclusion)
tranqui...@gmail.com


Yliur

unread,
Nov 24, 2011, 2:57:39 AM11/24/11
to
Le Wed, 23 Nov 2011 17:45:37 +0100
Tr@nquille <tranqui...@gmail.com> a écrit :
Je pense que c'est un bricolage tordu (ou que je ne suis pas réveillé
et que j'ai manqué quelque chose, ce qui est possible aussi) :) .

Mais c'est plus une question concernant le langage lui-même en fait...

Par exemple si dans ton langage il y a des goto, tu peux les utiliser.
C'est la même chose que ta boucle, sauf que tu n'écris pas que c'est
une boucle alors que ce n'en est pas une en réalité, ce qui est
trompeur.

Tu peux utiliser des if en modifiant l'imbrication :

En Java :
if (! test1)
{
... (message)
}
else if (! test2)
{
... (message)
}
else if (! test3)
{
... (message)
}
...
else
{
... (traitement)
}

Dans certains langages il existe une construction elseif, elif, ...
mais dans les langages comme C ou Java qui ne la possèdent pas tu peux
faire tout comme en utilisant leur possibilité de ne pas mettre
d'accolades autour du code quand il n'y a qu'une instruction à exécuter
dans la branche.

Si tu veux afficher tous les messages d'erreur, tu peux faire ça :
erreur = faux ;
if (! test1)
{
... (message)
erreur = vrai ;
}
if (! test2)
{
... (message)
erreur = vrai ;
}
...
if (! erreur)
{
... (traitement)
}

Tr@nquille

unread,
Nov 29, 2011, 4:12:07 PM11/29/11
to
*Ecrit* *par* *Yliur*:
désolé du retard...
finalement, j'ai opté pour la solution du if then elseif elseif else
endif (c'est du vbscript)
ça va bien.
merci des conseils!

--
L'important n'est pas de convaincre mais de donner à réfléchir.
(Isidore Katzenberg)
tranqui...@gmail.com


0 new messages