(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune
formation), après avoir fait du Turbo-Pascal et du C durant les 20
dernières années...)
----------------------------------
Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
1) Suite à un problème de serveurs DNS (un utilisateur obligé
d'accéder par l'adresse IP à un site distant), j'ai vu du code dans
lequel le programmeur avait déclaré en dur l'adresse de son serveur
'http://(adresse_URL)/, au lieu de déclarer le répertoire racine :
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce
genre de code compact (dans un style que l'on retrouve hélas
habituellement chez les programmeurs C) n'étant ni intuitif pour les
débutants, ni pédagogique ! :-(
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce genre de code compact (dans un style que l'on retrouve hélas habituellement chez les programmeurs C) n'étant ni intuitif pour les débutants, ni pédagogique ! :-(
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce
genre de code compact (dans un style que l'on retrouve hélas
habituellement chez les programmeurs C) n'étant ni intuitif pour les
débutants, ni pédagogique ! :-(
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce genre de code compact (dans un style que l'on retrouve hélas habituellement chez les programmeurs C) n'étant ni intuitif pour les débutants, ni pédagogique ! :-(
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce genre de code compact (dans un style que l'on retrouve hélas habituellement chez les programmeurs C) n'étant ni intuitif pour les débutants, ni pédagogique ! :-(
Je ne conteste pas que l'exemple pourrait être mieux écrit, mais l'argument comme quoi le code devrait être "intuitif" pour les débutants ne me parait pas correct.
Les opinions esthétiques des débutants sur des langages de programmation qu'ils ne connaissent pas ne présentent aucun intérêt en ce qui concerne l'écriture de code destiné à être relu et maintenu par des non-débutants !
Par ailleurs, l'intuition est surement une belle chose, mais elle se base sur quoi ? Pour la syntaxe il va y avoir deux criteres :
- soit ce qui est écrit traduit directement l'intention. Ici ce qu'exprime ce code, c'est que "si la chaine $themes n'est pas vide, ni égale à défaut, on l'ajoute à $intro précédé d'un '_'". On ne peut pas dire que ça soit le cas ici.
- soit c'est la tournure adoptée le plus souvent parmi la communauté des gens qui pratiquent ce même langage pour faire ce genre de choses.
La première chose qui saute aux yeux, c'est le mauvais usage des espaces qui rend pénible la lecture. Et quelques parenthèses peuvent améliorer au besoin
La chose qui fache le plus, c'est la manière de tester si la chaine est vide. Il y a des manières plus standard de faire ça, sans aller chercher une comparaison de la longueur, la plus simple conceptuellement étant sans doute la comparaison avec la chaine vide !
reste l'idée d'allonger $intro seulement si la condition est satisfaite, mieux traduite par un if/then que par une expression conditionnelle (qui a ses mérites, mais pas ici).
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce
genre de code compact (dans un style que l'on retrouve hélas
habituellement chez les programmeurs C) n'étant ni intuitif pour les
débutants, ni pédagogique ! :-(
Je ne conteste pas que l'exemple pourrait être mieux écrit, mais
l'argument comme quoi le code devrait être "intuitif" pour les débutants
ne me parait pas correct.
Les opinions esthétiques des débutants sur des langages de
programmation qu'ils ne connaissent pas ne présentent aucun intérêt
en ce qui concerne l'écriture de code destiné à être relu et maintenu
par des non-débutants !
Par ailleurs, l'intuition est surement une belle chose, mais elle se
base sur quoi ? Pour la syntaxe il va y avoir deux criteres :
- soit ce qui est écrit traduit directement l'intention. Ici ce
qu'exprime ce code, c'est que "si la chaine $themes n'est pas vide, ni
égale à défaut, on l'ajoute à $intro précédé d'un '_'". On ne peut pas
dire que ça soit le cas ici.
- soit c'est la tournure adoptée le plus souvent parmi la communauté des gens qui
pratiquent ce même langage pour faire ce genre de choses.
La première chose qui saute aux yeux, c'est le mauvais usage des espaces
qui rend pénible la lecture. Et quelques parenthèses peuvent améliorer
au besoin
La chose qui fache le plus, c'est la manière de tester si la chaine
est vide. Il y a des manières plus standard de faire ça, sans aller
chercher une comparaison de la longueur, la plus simple
conceptuellement étant sans doute la comparaison avec la chaine vide !
reste l'idée d'allonger $intro seulement si la condition est
satisfaite, mieux traduite par un if/then que par une expression
conditionnelle (qui a ses mérites, mais pas ici).
--
Michel BILLAUD billaud@labri.fr
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)
2) J'ai bondi en lisant la ligne suivante d'un fichier index.php, ce genre de code compact (dans un style que l'on retrouve hélas habituellement chez les programmeurs C) n'étant ni intuitif pour les débutants, ni pédagogique ! :-(
Je ne conteste pas que l'exemple pourrait être mieux écrit, mais l'argument comme quoi le code devrait être "intuitif" pour les débutants ne me parait pas correct.
Les opinions esthétiques des débutants sur des langages de programmation qu'ils ne connaissent pas ne présentent aucun intérêt en ce qui concerne l'écriture de code destiné à être relu et maintenu par des non-débutants !
Par ailleurs, l'intuition est surement une belle chose, mais elle se base sur quoi ? Pour la syntaxe il va y avoir deux criteres :
- soit ce qui est écrit traduit directement l'intention. Ici ce qu'exprime ce code, c'est que "si la chaine $themes n'est pas vide, ni égale à défaut, on l'ajoute à $intro précédé d'un '_'". On ne peut pas dire que ça soit le cas ici.
- soit c'est la tournure adoptée le plus souvent parmi la communauté des gens qui pratiquent ce même langage pour faire ce genre de choses.
La première chose qui saute aux yeux, c'est le mauvais usage des espaces qui rend pénible la lecture. Et quelques parenthèses peuvent améliorer au besoin
La chose qui fache le plus, c'est la manière de tester si la chaine est vide. Il y a des manières plus standard de faire ça, sans aller chercher une comparaison de la longueur, la plus simple conceptuellement étant sans doute la comparaison avec la chaine vide !
reste l'idée d'allonger $intro seulement si la condition est satisfaite, mieux traduite par un if/then que par une expression conditionnelle (qui a ses mérites, mais pas ici).
-- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
slambert
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune
.............
Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
Alors, on vanne ses collègues et on dit du mal , hmm ?????
tssss tssss.......
Stef
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune
.............
Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
Alors, on vanne ses collègues et on dit du mal , hmm ?????
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune
.............
Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
Alors, on vanne ses collègues et on dit du mal , hmm ?????
tssss tssss.......
Stef
Mr Prout !
La chose qui fache le plus, c'est la manière de tester si la chaine est vide. Il y a des manières plus standard de faire ça, sans aller chercher une comparaison de la longueur, la plus simple conceptuellement étant sans doute la comparaison avec la chaine vide !
La chose qui fache le plus, c'est la manière de tester si la chaine
est vide. Il y a des manières plus standard de faire ça, sans aller
chercher une comparaison de la longueur, la plus simple
conceptuellement étant sans doute la comparaison avec la chaine vide !
La chose qui fache le plus, c'est la manière de tester si la chaine est vide. Il y a des manières plus standard de faire ça, sans aller chercher une comparaison de la longueur, la plus simple conceptuellement étant sans doute la comparaison avec la chaine vide !
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune formation), après avoir fait du Turbo-Pascal et du C durant les 20 dernières années...) ---------------------------------- Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
google code search permet aussi de voir des horreurs :
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune
formation), après avoir fait du Turbo-Pascal et du C durant les 20
dernières années...)
----------------------------------
Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
google code search permet aussi de voir des horreurs :
(Contexte : je suis grand débutant en PHP (je n'ai suivi aucune formation), après avoir fait du Turbo-Pascal et du C durant les 20 dernières années...) ---------------------------------- Si vous enseignez le PHP et que vous aimez les anecdotes. :-)
google code search permet aussi de voir des horreurs :
Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) :
$variable1 = variable1=='OUI'?1:0; ^^^^^^^^^
Utiliser le nom « variable1 » pour une constante, c'est assez rigolo. Cela étant dit, je ne vois strictement pas où tu veux en venir.
Pascal Boulerie
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen, restocké immédiatement dans la même variable... Mais vu que le langage n'est pas typé... :-(
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte
de l'exemple de code en question.)
--------------------------------------------------------
Question opérateur conditionnel avec variable sans type :-( , voici
l'exemple le plus frappant à mes yeux que j'ai vu :-) :
$variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne
pour aboutir à un Booléen, restocké immédiatement dans la même
variable... Mais vu que le langage n'est pas typé... :-(
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen, restocké immédiatement dans la même variable... Mais vu que le langage n'est pas typé... :-(
Olivier Miakinen
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
D'accord.
Note que cet exemple n'est pas très aéré, et donc (à mon goût) pas très $variable1 = ($variable1 == 'OUI') ? 1 : 0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen, restocké immédiatement dans la même variable...
Non : pas un booléen mais un entier. Pour stocker un booléen, l'écriture serait beaucoup plus simple : $variable1 = $variable1 == 'OUI';
Note que j'ai déjà vu l'écriture suivante, parfaitement ridicule : $variable1 = ($variable1 == 'OUI') ? true : false;
Mais vu que le langage n'est pas typé... :-(
Oui.
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte
de l'exemple de code en question.)
--------------------------------------------------------
Question opérateur conditionnel avec variable sans type :-( , voici
l'exemple le plus frappant à mes yeux que j'ai vu :-) :
$variable1 = $variable1=='OUI'?1:0;
D'accord.
Note que cet exemple n'est pas très aéré, et donc (à mon goût) pas très
$variable1 = ($variable1 == 'OUI') ? 1 : 0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne
pour aboutir à un Booléen, restocké immédiatement dans la même
variable...
Non : pas un booléen mais un entier. Pour stocker un booléen, l'écriture
serait beaucoup plus simple :
$variable1 = $variable1 == 'OUI';
Note que j'ai déjà vu l'écriture suivante, parfaitement ridicule :
$variable1 = ($variable1 == 'OUI') ? true : false;
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
D'accord.
Note que cet exemple n'est pas très aéré, et donc (à mon goût) pas très $variable1 = ($variable1 == 'OUI') ? 1 : 0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen, restocké immédiatement dans la même variable...
Non : pas un booléen mais un entier. Pour stocker un booléen, l'écriture serait beaucoup plus simple : $variable1 = $variable1 == 'OUI';
Note que j'ai déjà vu l'écriture suivante, parfaitement ridicule : $variable1 = ($variable1 == 'OUI') ? true : false;
Mais vu que le langage n'est pas typé... :-(
Oui.
Michel Billaud
Pascal Boulerie writes:
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen,
Un entier, plutôt, vu qu'il n'y a pas de booléens en PHP Du reste, on aurait pu faire $variable1 = $variable1=='OUI';
restocké immédiatement dans la même variable... Mais vu que le langage n'est pas typé... :-(
Absolument. Mais le problème n'est pas là, il y a des tas de langages très bien où on peut faire ce genre de choses (Lisp, Smalltalk, etc.).
En fait cet exemple a 3 problèmes - nom de variable mal choisi $variable1 - réutilisation d'une variable pour deux usages différents (chaine de caractère en entrée, condition) - et utilisation d'une tournure maladroite ( X==Y ? 1 : 0 équivaut à X==Y)
et ce n'est pas la faute d'un langage si n'importe qui s'en empare pour programmer comme un goret :-)
MB -- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte
de l'exemple de code en question.)
--------------------------------------------------------
Question opérateur conditionnel avec variable sans type :-( , voici
l'exemple le plus frappant à mes yeux que j'ai vu :-) :
$variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne
pour aboutir à un Booléen,
Un entier, plutôt, vu qu'il n'y a pas de booléens en PHP
Du reste, on aurait pu faire
$variable1 = $variable1=='OUI';
restocké immédiatement dans la même
variable... Mais vu que le langage n'est pas typé... :-(
Absolument. Mais le problème n'est pas là, il y a des tas de langages
très bien où on peut faire ce genre de choses (Lisp, Smalltalk, etc.).
En fait cet exemple a 3 problèmes
- nom de variable mal choisi $variable1
- réutilisation d'une variable pour deux usages différents (chaine de caractère en entrée, condition)
- et utilisation d'une tournure maladroite ( X==Y ? 1 : 0 équivaut à X==Y)
et ce n'est pas la faute d'un langage si n'importe qui s'en empare
pour programmer comme un goret :-)
MB
--
Michel BILLAUD billaud@labri.fr
LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792
351, cours de la Libération http://www.labri.fr/~billaud
33405 Talence (FRANCE)
(Désolé, j'avais oublié le deuxième symbole "$" en reprenant le texte de l'exemple de code en question.) -------------------------------------------------------- Question opérateur conditionnel avec variable sans type :-( , voici l'exemple le plus frappant à mes yeux que j'ai vu :-) : $variable1 = $variable1=='OUI'?1:0;
Ce qui m'étonnait, c'était de partir d'une variable de type chaîne pour aboutir à un Booléen,
Un entier, plutôt, vu qu'il n'y a pas de booléens en PHP Du reste, on aurait pu faire $variable1 = $variable1=='OUI';
restocké immédiatement dans la même variable... Mais vu que le langage n'est pas typé... :-(
Absolument. Mais le problème n'est pas là, il y a des tas de langages très bien où on peut faire ce genre de choses (Lisp, Smalltalk, etc.).
En fait cet exemple a 3 problèmes - nom de variable mal choisi $variable1 - réutilisation d'une variable pour deux usages différents (chaine de caractère en entrée, condition) - et utilisation d'une tournure maladroite ( X==Y ? 1 : 0 équivaut à X==Y)
et ce n'est pas la faute d'un langage si n'importe qui s'en empare pour programmer comme un goret :-)
MB -- Michel BILLAUD LABRI-Université Bordeaux I tel 05 4000 6922 / 05 5684 5792 351, cours de la Libération http://www.labri.fr/~billaud 33405 Talence (FRANCE)