Simplifier une ligne de code

Consultez la formation au référencement naturel Google de WebRankInfo / Ranking Metrics


sff
WRInaute impliqué
WRInaute impliqué
 
Messages: 290
Inscription: Mer Fév 02, 2005 23:04

Simplifier une ligne de code

Message le Dim Nov 15, 2009 22:07

Bonjour,

Je cherche à simplifier ce bout de code php :
Code: Tout sélectionner
      if ($itemrow['currency'] == 1){
      
      if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100)) { $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>"; }
      if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000))) { $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000).".<br>"; }

      }else{
      
      if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100)) { $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>"; }
      if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000))) { $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000)." ctx.<br>"; }
      
      }


Il y a 2 fois les 2 même ligne. Merci à ceux qui pourront m'aider.

DadouDuck
WRInaute passionné
WRInaute passionné
 
Messages: 811
Inscription: Lun Mai 28, 2007 22:41

Re: Simplifier une ligne de code

Message le Dim Nov 15, 2009 22:31

heu

Code: Tout sélectionner
if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100)) { $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>"; }
      if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000))) { $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000).".<br>"; }


suffit largement


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Re: Simplifier une ligne de code

Message le Dim Nov 15, 2009 22:51

@DadouDuck simplifier ne signifie pas rendre illisble que je sache.
Ici, sans aucun retour à la ligne, ça l'est.


UsagiYojimbo
WRInaute accro
WRInaute accro
 
Messages: 5200
Inscription: Mer Nov 23, 2005 10:38

Re: Simplifier une ligne de code

Message le Dim Nov 15, 2009 23:28

C'est clair que la simplification ne doit pas se faire au détriment d'une structuration claire du code.

L'indentation est l'ami du développeur (et de ses collègues qui reprennent régulièrement le bébé) :mrgreen:

DadouDuck
WRInaute passionné
WRInaute passionné
 
Messages: 811
Inscription: Lun Mai 28, 2007 22:41

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 0:16

:evil: Dites ça vous fait plaisir ce genre de commentaires déplacés, je n'ai fait qu'un copier/coller de son code et juste enlevé le if / else en trop, je n'ai pas touché à la mise en forme d'origine.

Maintenant, si c'est mal d'aider, c'est clair, je ne le ferais plus, du moins ici...


cthierry
WRInaute accro
WRInaute accro
 
Messages: 2108
Inscription: Sam Jan 15, 2005 9:16

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 6:37

Il semble que certains ne savent pas quoi trop foutre de leur dimanche.

Désolé pour eux.

A méditer: la critique est aisée mais l'art est difficile

Bref au lieu de le cartoucher à vide pourquoi ne pas avoir présenté le code autrement. C'est ce qui s'appelle être constructif.

Un vieux!


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 8:50

Code: Tout sélectionner
if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100))
    $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>";

if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000)))
    $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000).".<br>";


Après j'aurais probablement plutôt fait cela :

Code: Tout sélectionner
if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100))
    $errors[] = "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.";

if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000)))
    $errors[] = "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000);


Et pour afficher toutes les erreurs :

Code: Tout sélectionner
echo 'Il y a ' . count($errors) . ' erreurs';

echo '<ul>';
for($i=0;$i<count($errors);$i++) {
    echo '<li>' . $errors[$i] . '</li>;
}
echo '</ul>';

DadouDuck
WRInaute passionné
WRInaute passionné
 
Messages: 811
Inscription: Lun Mai 28, 2007 22:41

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 10:08

[Mode : je suis encore de mauvaise humeur]
Pas mal, deux sauts de lignes en plus, tu veux pas que je lui fasse le café aussi, et pourquoi pas 100 balles et un Mars.
[/Mode : je suis encore de mauvaise humeur]


Quand à la gestion des erreurs moi aussi je préfère utiliser les tableaux, biens plus souples, mais comme on a pas le reste du code, on a pas vraiment à y toucher


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 11:25

Ca s'appelle de la lisibilité du code. C'est peut être deux ligne en plus. Mais ça fait tout.
Franchement j'espère pour toi que tu écris du code plus lisible que ce que tu as fait plus haut. Sinon je pleins les gens qui ont le malheur de travailler avec toi.

Ecrire du code lisible, c'est quelque chose qu'on apprends aux étudiants en développement durant leurs 3 premiers mois d'études quand même.

DadouDuck
WRInaute passionné
WRInaute passionné
 
Messages: 811
Inscription: Lun Mai 28, 2007 22:41

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 13:40

Bon on va mettre un peu les choses au clair :

Tu es modérateur, tu n'as pas à rabrouer les gens pour un problème de saut de lignes dans leur réponse, j'ai eu la gentillesse de de prendre un peu de mon temps pour venir l'aider et tu viens me casser les bur**s parce que je n'ai pas pris le temps de faire de l'indentation, faut arrêter le délire la.

Concernant mon travail, la différence entre ici et mon travail, c'est que dans mon travail je suis payé pour prendre le temps de le faire, la, j'ai répondu rapidement à la question.

Ce qui me choque n'est pas le problème d'indentation, oui on indente et on commente un code de manière à ce qu'il soit lisible, mais la manière dont cela à été fait remarqué, et cette manière n'est pas normale de la part d'un modérateur.


dmathieu
Modérateur
Modérateur
 
Messages: 6927
Inscription: Ven Jan 09, 2004 16:21

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 13:56

J'ignorais qu'être modérateur signifiait ne pas pouvoir exprimer son point de vue.

Ici, sff demande comment améliorer (en simplifiant) sa ligne de code.
Si tu lui propose une solution en rendant son code illisible, autant ne rien proposer du tout.

Apporter son aide c'est super, et pour cela je te remercie.
Mais quand on le fait, on le fait complètement. Pas à moitié.
Sinon on s'abstiens.

DadouDuck
WRInaute passionné
WRInaute passionné
 
Messages: 811
Inscription: Lun Mai 28, 2007 22:41

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 14:06

C'est bien avec des mentalités comme celle ci que l'on pourris un forum, puisque tu vas rebuter ceux qui avaient envie de participer.

Ma solution était juste de recopier à l'identique son code en enlevant le superflus je ne l'ai pas rendu illisible, il l'était à l'origine :roll: .

Et un modérateur à un devoir de réserve et normalement se doit d'être un minimum diplomate.

lepadre
WRInaute discret
WRInaute discret
 
Messages: 76
Inscription: Jeu Mar 05, 2009 12:16

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 14:18

sff a écrit:Bonjour,

Je cherche à simplifier ce bout de code php :
Code: Tout sélectionner
      if ($itemrow['currency'] == 1){
      
      if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100)) { $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>"; }
      if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000))) { $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000).".<br>"; }

      }else{
      
      if (($_POST['currency'] == 1) AND ($_POST['buycost'] > $itemrow['buycost']*125/100)) { $errors++; $errorlist .= "- Le prix de départ ne doit pas dépasser 125% du prix présent en boutique.<br>"; }
      if (($_POST['currency'] == 2) AND ($_POST['buycost'] > floor($itemrow['buycost']/10000))) { $errors++; $errorlist .= "- Le prix de départ ne doit pas etre supérieur à ".floor($itemrow['buycost']/10000)." ctx.<br>"; }
      
      }


Il y a 2 fois les 2 même ligne. Merci à ceux qui pourront m'aider.


Bonjour à tous,
<Hors sujet>
Sans vouloir faire l'éffet inverse, c'est à dire compliquer les lignes de code, ne manque t'il pas les fonctions htmlentities() & mysql_real_escape_string() pour sécuriser les variables ?
</hors sujet>


cthierry
WRInaute accro
WRInaute accro
 
Messages: 2108
Inscription: Sam Jan 15, 2005 9:16

Re: Simplifier une ligne de code

Message le Lun Nov 16, 2009 20:49

Heu à la base il demandait juste de simplifier une ligne de code, pas de rentrer dans une polémique que je qualifierais de stérile.

Désolé!


Formation recommandée sur ce thème :

Formation Référencement naturel Google : apprenez une méthode efficace pour optimiser à fond le référencement naturel dans Google de façon durable... Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités