Style de codage

devlop78
Invité n'ayant pas de compte PHPfrance

16 sept. 2011, 11:30

Et le plus drôle, avec le switch, c'est qu'on peut s'amuser à enlever certains breaks pour faire un goto amélioré..

En parlant de ça, et pour la première fois, j'ai utilisé un goto en Php, il y a quelques jours.
Oui moi ça pourrait me rappeler le Quick Basic que j'avais écrit à l'âge de 8 ans ...

Pour revenir, Zend Framework suggère lors de la création d'un projet en ligne de commande :

Code : Tout sélectionner

defined('...') || define (...);
Cependant, dans le code source, je n'ai pas l'impression que l'utilisation soit très courante. Par contre je note, à l'instar de d'autres codeurs :

Code : Tout sélectionner

if (null === x)
alors que perso j'écris toujours

i

Code : Tout sélectionner

f (x === null)
Je trouve le deuxième plus lisible (sinon je ne l'utiliserais pas ...), mais je suis certain qu'ici certains me diront catégoriquement le contraire, on va donc éviter les débats stériles là dessus (comme la plupart des débats que je provoque, je ne sais pas pourquoi ??) ...

ViPHP
ViPHP | 3300 Messages

16 sept. 2011, 13:38

Code : Tout sélectionner

if (null === x)
alors que perso j'écris toujours

i

Code : Tout sélectionner

f (x === null)
Je trouve le deuxième plus lisible (sinon je ne l'utiliserais pas ...), mais je suis certain qu'ici certains me diront catégoriquement le contraire, on va donc éviter les débats stériles là dessus (comme la plupart des débats que je provoque, je ne sais pas pourquoi ??) ...
Je suis entièrement d'accord avec toi, pour moi la variable dans un test est systématiquement à gauche, je suis pas fan aussi des "===" la plupart du temps le type n'a pas d'importance dans le test parce que l'on sait quel type on a en façe de soi (parce casté plus tôt ou parceque le type est imposé par un autre méchanisme)

un autre truc pour la lisibilité c'est les tests un peu plus velu j'ai tendance à faire un truc comme ça:

if	(
		($test1 && $test2) ||
		(
			$test3 <= 1500 &&
			(
				$test3 != 0 ||
				$test3 < 1000
			)
		)
	) {
	echo 'toto';
}

ca n'a rien à voir avec les histoires de 72/80 colonnes (que je ne respecte jamais d'ailleurs) mais je trouve ça quand même beaucoup plus lisible
Fait du php depuis que ca existe ou presque :)

devlop78
Invité n'ayant pas de compte PHPfrance

16 sept. 2011, 14:22

72/80 colonnes ?

Mammouth du PHP | 672 Messages

16 sept. 2011, 14:41

72/80 colonnes ?
Je dirais héritage du Cobol (et peut-être d'autres vieux langages de prog).

A l'époque où on codait sur des cartes perforées, les lignes étaient physiquement limitées à 80 colonnes. Et les 8 dernières étaient réservées pour le numérotage...

devlop78
Invité n'ayant pas de compte PHPfrance

16 sept. 2011, 14:48

lol ...

ViPHP
ViPHP | 3607 Messages

16 sept. 2011, 15:42

Et je trouve ça quand même vachement utile aujourd'hui de limiter à 80 caractères !
ça permet avec nos grands écrans d'aujourd'hui de pouvoir toujours avoir deux fichiers l'un à côté de l'autre !
Et ça c'est top :)

Mammouth du PHP | 672 Messages

16 sept. 2011, 15:51

Et je trouve ça quand même vachement utile aujourd'hui de limiter à 80 caractères !
ça permet avec nos grands écrans d'aujourd'hui de pouvoir toujours avoir deux fichiers l'un à côté de l'autre !
Et ça c'est top :)
+ 1

En plus, ça force à écrire des lignes relativement courtes, ce qui améliore la lisibilité (je trouve)...

devlop78
Invité n'ayant pas de compte PHPfrance

16 sept. 2011, 16:45

Surtout quand on utilise un IDE qui prend déjà de la place en largeur avec l'explorateur de fichier ;)

Edit : D'ailleurs, j'avais même pas remarqué ... Netbeans m'affiche un petit trait rouge ... Je viens de mesurer ... Ca correspond à 80 caractères ^^
Du coup pour jouer le jeu, j'ai sauter une ligne (je suis dans la vue).

Sans jeu de mots, bien vu ;)

ViPHP
ViPHP | 3300 Messages

16 sept. 2011, 18:20

Moi j'aime vraiment pas être limité pour des considérations d'un autre temps
Fait du php depuis que ca existe ou presque :)

devlop78
Invité n'ayant pas de compte PHPfrance

16 sept. 2011, 20:10

J'avoue que là, avec la tonne d'indentation, il est quasiment impossible de le respecter :
class x
{
    function y
    {
        if ()
        {
            $a = new Machin (array(
                'truc' => array(
                    'enfin' => $_SERVER['x'] . $this->view->url(array('controller'=>'b',...))
                )
            );
        }
    }

}
Je veux bien sauter des lignes, mais un moment ça devient lourd ... On a déjà 93 caractères sur la grande ligne, il faudrait séparer la concaténation, la liste de l'array, etc ...

ViPHP
xTG
ViPHP | 7331 Messages

16 sept. 2011, 21:01

class x{function y{if (){$a = new Machin (array('truc' => array('enfin' => $_SERVER['x'] . $this->view->url(array('controller'=>'b',...))));}}}
Moi j'dis il y a pas mieux. :^o

J'avoue que la règle du 72/80 est pas vraiment adaptée... A la rigueur pour de l'assembleur c'est facile, mais pour un langage "évolué" sur un programme complexe c'est tout de suite ingérable...
Les règles c'est bien, mais faut pas que ça devienne une trop lourde contrainte.
Car en plus si on la respectait on pourrait perdre en lisibilité sur certains cas !

ViPHP
ViPHP | 3300 Messages

16 sept. 2011, 21:10

class x{function y{if (){$a = new Machin (array('truc' => array('enfin' => $_SERVER['x'] . $this->view->url(array('controller'=>'b',...))));}}}
Moi j'dis il y a pas mieux. :^o

J'avoue que la règle du 72/80 est pas vraiment adaptée... A la rigueur pour de l'assembleur c'est facile, mais pour un langage "évolué" sur un programme complexe c'est tout de suite ingérable...
Les règles c'est bien, mais faut pas que ça devienne une trop lourde contrainte.
Car en plus si on la respectait on pourrait perdre en lisibilité sur certains cas !
sans compter que par exemple en html le fait de sauter des lignes (et d'indenter) peut avoir un impact sur le rendu. Moi ça fait longtemps que je m'embarrasse pas avec ces règles, comme tu dis il y a plus important que les règles c'est le sens de ces règles et quand être trop strict revient à perdre l'interêt premier il faut dire stop

Ca vaut aussi pour la vie en société d'ailleurs... :)
Fait du php depuis que ca existe ou presque :)

devlop78
Invité n'ayant pas de compte PHPfrance

17 sept. 2011, 01:16

Oui dernièrement j'ai perdu un quart d'heure sur deux images qui s'étaient éloignées (alors qu'elles étaient collées et doivent l'être) parce que j'avais aéré le code. J'ai cherché si il n'y avait pas de padding, margin, et ce avec firebug, mais rien ne bougeait ... Il ne fallait pas chercher bien loin. :)

Essayons de respecter la règle des 20 caractères maximum, ça peut être drôle ...

ViPHP
ViPHP | 4039 Messages

18 sept. 2011, 16:51

tiens, on parlait des conditions booléennes.

A la place d'écrire ceci:
if ( !isset($a) && !isset($b) ) { }
il est possible d'inverser la valeur de toute la condition et d'aboutir à ceci:
if ( !( isset($a) || isset($b))) { }

En inversant ainsi tout un groupe, les AND deviennent des OR. C'est assez élégant, et ça permet de situer ses compétences en logique. :twisted:
(et ça peut vraiment aider dans certains cas)
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

ViPHP
ViPHP | 5462 Messages

18 sept. 2011, 17:44

je ferais surtout
if ( !isset($a, $b) ) { }
:wink: