JeuWeb - Crée ton jeu par navigateur
[Coding style] Vos solutions pour un code lisible ? - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : [Coding style] Vos solutions pour un code lisible ? (/showthread.php?tid=4309)

Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17


RE: [Coding style] Vos solutions pour un code lisible ? - NicoMSEvent - 05-09-2009

(05-09-2009, 02:00 AM)Allwise a écrit : ..., d'autant plus que PHP n'est pas un langage typé et que quand on lit function getAgadou($maVar, $var2, $blablabla), on connait pas le type des arguments ni celui du retour.

d'ou le préfixage dans les noms de variables... et un nom de fonction parlant ( getNom retourne un string, getAgadou retourne un objet de type Agadou)
function getAgadou($p_s_maVar, $p_i_var2, $p_i_blablablas) //le fait de mettre blablabla au pluriel signifie que c'est un array d'int passé en paramètre (pour ceux qui ne sont habitués a la norme :p

et puis avec un langage orienté objet, c'est encore plus facile a comprendre (juste la première ligne de commentaire ici pour aider a la compréhension, mais dans le code complet on aurait pu s'en passer)

//rendre la monnaie, $l_f_valeur_pieces contient dans un tableau la valeur des pièces trié décroissant
foreach(array_keys($l_f_valeur_pieces) as $l_i_compartiment_piece){
$l_f_valeur_piece=$l_f_valeur_pieces[$l_i_compartiment_piece];
while($p_f_monnaiearendre>=$l_f_valeur_piece && !Distributeur->ReservePieces[$l_i_compartiment_piece]->isVide()){
Distributeur->BacRetourPieces->Empiler(Distributeur->ReservePieces[$l_i_compartiment_piece]->Depiler());
$p_f_monnaiearendre-=$l_f_valeur_piece;
}
}
return $p_f_monnaiearendre;



RE: [Coding style] Vos solutions pour un code lisible ? - Zamentur - 05-09-2009

Et bien mon avis concernant les commentaires, c'est que dans la quasi totalité des cas il suffit juste de mettre les commentaires phpdoc.

Enfin à condition que l'on fasse des méthodes unitaire c'est à dire qu'une méthodes fait une action (et pas 2 en une)

Dans certains cas ou l'on juge le code un peu complexe on peux mettre un commentaire, notamment pour préciser un cas limite, une formule mathématique etc...

Mais effectivement si on en met trop on sera contraint de changer le commentaire si il y a changement, et bien souvent on ne le fait pas


RE: [Coding style] Vos solutions pour un code lisible ? - Sloop - 05-09-2009

Je n'ai pas tout lu mais j'ai vu que quelqu'un parlait du coup des 10.000 itérations. Qu'il le sache, qu'il arrête de penser.
Quelle est la différence en terme de secondes ? 10 ? Non, si j'ai bon souvenir, c'est ridicule. Il existe d'autres choses bien plus importants que d'optimiser cela. Mais bon -_-' Il vaut mieux se crêper le chignon sur des bêtises que sur des choses essentielles.


RE: [Coding style] Vos solutions pour un code lisible ? - SorenS - 05-09-2009

@NicoMSEvent : j'ai pas mal de mal à lire ton code dans ton exemple. Le p_f_ avant certaines variables ? pas d'espace entre les lignes non plus d'ailleurs. Je trouve que préciser directement dans la variable ben :
- c'est moche
- pas pratique
Une variable bien nommée, commentée lors de son initialisation peut facilement se passer de ça Smile

/**
* Nom du personnage de l'utilisateur
* @Type String
* @Access private
*/
private $namePlayer;

De plus ---> génération de phpDoc automatique ensuite


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 05-09-2009

Rien de ce qui suit n'est à considérer comme une attaque personnelle. Je vais juste expliquer rapidement pourquoi je trouve le code illisible (sans faire de ronds de jambe).
  • La langue : mélanger français et anglais dans le code, c'est curieux (cf. isVide()) ;
  • La notation Hongroise est très verbeuse pour ne rien apporter : le nommage des variables suffit. Un prix, on sait tous ce que c'est. De plus, je ne comprends pas trop comment l (long int) et f (float) peuvent cohabiter ;
  • Le nommage n'est pas cohérent : on a une variable $p_f_monnaiearendre, où sont passés les underscore ? De la même manière, pourquoi l'attribut ReservePieces s'appelle-t-il ainsi alors que tes autres variables sont de la forme reserve_pieces ? Et pourquoi n'a-t-il pas d'accesseur ?
  • C'est quoi Distributeur ? C'est ta classe ? Si oui, pourquoi appeler ses méthodes avec -> plutôt que :: ? A moins que je n'ai déjà oublié la syntaxe de PHP… :heuuu:
  • Le code n'est pas assez aéré, il manque des espaces entre les opérateurs et les opérandes ;
  • Le commentaire n'est pas une phrase correcte ;


//rendre la monnaie, $l_f_valeur_pieces contient dans un tableau la valeur des pièces trié décroissant
foreach(array_keys($l_f_valeur_pieces) as $l_i_compartiment_piece){
$l_f_valeur_piece=$l_f_valeur_pieces[$l_i_compartiment_piece];
while($p_f_monnaiearendre>=$l_f_valeur_piece && !Distributeur->ReservePieces[$l_i_compartiment_piece]->isVide()){
Distributeur->BacRetourPieces->Empiler(Distributeur->ReservePieces[$l_i_compartiment_piece]->Depiler());
$p_f_monnaiearendre-=$l_f_valeur_piece;
}
}
return $p_f_monnaiearendre;


Juste en aérant et en virant la notation Hongroise, c'est déjà plus mangeable :


//rendre la monnaie, $valeur_pieces contient dans un tableau la valeur des pièces trié décroissant
foreach(array_keys($valeur_pieces) as $compartiment_piece){
$valeur_piece = $valeur_pieces[$compartiment_piece];
while($monnaiearendre >= $valeur_piece && !Distributeur->ReservePieces[$compartiment_piece]->isVide()){
Distributeur->BacRetourPieces->Empiler(Distributeur->ReservePieces[$compartiment_piece]->Depiler());
$monnaiearendre -= $valeur_piece;
}
}
return $monnaiearendre;

Une petite traduction, une uniformisation des noms et paf, ça devient un bon code (de mon point de vue, je le rappelle).


Sephi-Chan


RE: [Coding style] Vos solutions pour un code lisible ? - NicoMSEvent - 05-09-2009

(05-09-2009, 11:37 AM)Sephi-Chan a écrit : Rien de ce qui suit n'est à considérer comme une attaque personnelle. Je vais juste expliquer rapidement pourquoi je trouve le code illisible (sans faire de ronds de jambe).
la critique est constructive, je l'accepte (voir ma signature :p)
Tout d'abord j'ai pondu ce code en 4eme vitesse, je ne l'ai meme pas testé. (oups, je pense avoir mélangé syntaxe C++ et php :p)
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]La langue : mélanger français et anglais dans le code, c'est curieux (cf. isVide()) ;
un bon point pour toi ^^
je repère plus facilement mes ajouts de code comme ça (par rapport aux objets standards en anglais, même si c'est une mauvaise excuse :p)
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]La notation Hongroise est très verbeuse pour ne rien apporter : le nommage des variables suffit. Un prix, on sait tous ce que c'est. De plus, je ne comprends pas trop comment l (long int) et f (float) peuvent cohabiter ;
$p_ pour les paramètres, $l_ pour les variables locales, $g_ pour les variables globales...
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]Le nommage n'est pas cohérent : on a une variable $p_f_monnaiearendre, où sont passés les underscore ?
quand j'écris vite, j'ai tendance a oublier mes normes Wink
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : De la même manière, pourquoi l'attribut ReservePieces s'appelle-t-il ainsi alors que tes autres variables sont de la forme reserve_pieces ? Et pourquoi n'a-t-il pas d'accesseur ?
pour moi, le plus intéressant du code était dans la ligne empiler - dépiler (pas pris la peine d'avoir un accesseur pour la variable dans l'objet... je sais, c'est pas bien ^^)
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]C'est quoi Distributeur ? C'est ta classe ? Si oui, pourquoi appeler ses méthodes avec -> plutôt que :: ? A moins que je n'ai déjà oublié la syntaxe de PHP… :heuuu:
Distributeur est un objet instancié (et puis je pense m'être emmêlé les pinceaux entre la syntaxe C++ et PHP)
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]Le code n'est pas assez aéré, il manque des espaces entre les opérateurs et les opérandes ;
tu as raison, c'est plus clair comme ça. j'ai des habitudes difficiles a changer Wink
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : [*]Le commentaire n'est pas une phrase correcte ;
les informations principales sont contenues dans la ligne, je n'ai pas cherché a faire une phrase :$
(05-09-2009, 11:37 AM)Sephi-Chan a écrit : Une petite traduction, une uniformisation des noms et paf, ça devient un bon code (de mon point de vue, je le rappelle).
en effet, c'est plus lisible. (même si je trouve que la notation hongroise permet d'avoir une vue plus claire de ce qui se trouve dans telle ou telle variable, et d'ou elle vient... si c'est un parametre ou pas par exemple)

Je soulève juste que le fait de passer un objet qui est retourné par une fonction, directement en paramètre dans une autre fonction, n'est pas pour moi une habitude qui rend le code moins lisible (que du contraire) Smile


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 05-09-2009

(05-09-2009, 12:01 PM)NicoMSEvent a écrit : Je soulève juste que le fait de passer un objet qui est retourné par une fonction, directement en paramètre dans une autre fonction, n'est pas pour moi une habitude qui rend le code moins lisible (que du contraire) Smile

Hm okay pour la notation Hongroise, j'avais effectivement oublié la portée de la variable. Wink
Concernant le passage d'un appel de méthode (qu'elle retourne un objet ou autre), j'en e trouve pas ça illisible non plus (tant que ça ne fait pas une ligne trop longue).


Sephi-Chan


RE: [Coding style] Vos solutions pour un code lisible ? - Anthor - 05-09-2009

(04-09-2009, 06:13 PM)NicoMSEvent a écrit :
(04-09-2009, 04:30 PM)Anthor a écrit : Ça existe encore les echo ? Big Grin

tu utilises quoi? ^^

Du MVC, généralement je n'ai donc jamais d'echo autre que pour une variable... Et surement le echo final du front controller ^^

Alors simple quote ou double quote je m'en tamponne le coquillard mais profond Smile C'est de l'optimisation de développement amateur qui n'a strictement aucune utilité.


RE: [Coding style] Vos solutions pour un code lisible ? - Sloop - 05-09-2009

(05-09-2009, 02:30 PM)Anthor a écrit : Du MVC, généralement je n'ai donc jamais d'echo autre que pour une variable... Et surement le echo final du front controller ^^

Alors simple quote ou double quote je m'en tamponne le coquillard mais profond Smile C'est de l'optimisation de développement amateur qui n'a strictement aucune utilité.

Une parole sage (il y en a d'autres ici notamment naholyr) parmi une mer de paroles futiles.


RE: [Coding style] Vos solutions pour un code lisible ? - Sephi-Chan - 05-09-2009

Ce sujet ne parlais pas de performances mais de lisiblité du code, à l'origine.

Pour parler d'optimisations (des sérieuses, hein, pas des affaires de guillemets), une discussion a été lancée aussi : Optimiser une application Web. N'hésite pas à y contribuer (ce sera forcément plus intelligent que ce genre de commentaire…).


Sephi-Chan