IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Vos conseils pour développer du code propre


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut Vos conseils pour développer du code propre
    J'entends souvent parlé de code propre. Ceux qui en parle ont une façon particulière et, d'après moi, beaucoup trop complexe de programmer. Souvent, ces gens clament pouvoir sauver quelques millisecondes de traitement.

    J'aimerais savoir, en PHP:

    1-Qu'est-ce que du code propre?
    2-Avec les serveurs qui existent aujourd'hui, est-ce vraiment pertinent de sauver quelques millisecondes de traitement?
    3-Faut-il s'empêcher de faire certaines choses parce que, techniquement, ça n'est pas propre?


  2. #2
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Voici un bout de mon code fin 2004

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
    359
    360
    361
    362
    363
    364
    365
    366
    367
    368
    369
     
    <?php
    session_start();
    include("Base/pgConnect.php");
    include("Passwd/PasswdAnnuaire.php");
     
     
     
    if ($_POST['DateAnnee']) {
     
     
    $_SESSION['DateMois'] = $_POST['DateMois'];
    $_SESSION['DateAnnee'] = $_POST['DateAnnee'];
    $_SESSION['DatePlus'] = $_SESSION['DateMois'] + 1;
     
     
    switch ($_POST['DateMois']){
     
    	case 1 :
    		$_SESSION['NomMois']='Janvier';
    		break;		
    	case 2:
    		$_SESSION['NomMois']='F&eacute;vrier';
    		break;
    	case 3:
    		$_SESSION['NomMois']='Mars';
    		break;
    	case 4:
    		$_SESSION['NomMois']='Avril';
    		break;
    	case 5:
    		$_SESSION['NomMois']='Mai';
    		break;
    	case 6:
    		$_SESSION['NomMois']='Juin';
    		break;
    	case 7:
    		$_SESSION['NomMois']='Juillet';
    		break;
    	case 8:
    		$_SESSION['NomMois']='Août';
    		break;
    	case 9:
    		$_SESSION['NomMois']='Septembre';
    		break;
    	case 10:
    		$_SESSION['NomMois']='Octobre';
    		break;
    	case 11:
    		$_SESSION['NomMois']='Novembre';
    		break;
    	case 12:
    		$_SESSION['NomMois']='D&eacute;cembre';
    		break;
    }
    }
     
    $_SESSION['idParticipant']=$_POST['Nom'];
     
     
     
    if ($_POST['Heure']) {
     
    			/**
    			 * Vérification que l'on a bien choisi un participant
    			 */
    				if ($_POST['NomRetour']=='') {
    					echo "<P>Vous n'avez pas selectioné de participants</P>";
    					echo "<meta http-equiv=\"refresh\" content=\"3;url=index.php?section=Registre\" />";					
    				}
    		else {
     
    $heure = isset($_POST['Heure']) ? $_POST['Heure'] : null;
    $date1 = isset($_POST['Date1']) ? $_POST['Date1'] : null;
    $_SESSION['heure']=$_POST['Heure'];
     
    	if(isset($heure))
     
    		{
     
     
     
     
    			/**
    			 * Vérification que toutes les données du registre soit bien numérique
    			 */
     
    			/**
    			 * Initialisation d'un variable booléenne a true
    			 */
    				$BisNum=1;
     
    					/**
    					 * on parcours le tableau $heure
    					 */
    						for ($i = 0; $i < count($heure); $i++)
    						{
    							if ($heure[$i]=='') {
     
    								$heure[$i]=='0';
    							}
       						// si la case du tableau contient autre chose que des chiffres
      						 if (!ereg('^[0-9]{1,2}(\.[0-9]{1,2})?$', $heure[$i]))
         						{
         							// alors on mets le booleen à faux on tu sors de la boucle
         							$BisNum = 0;
        							 break;
        							}
    									}
     
    	if ($BisNum)
    	{
     
     
     
    		/**
     		* parcours du 1er tableau en mettant les index dans $index et les valeurs dans $valeur
     		*/
     
    	    foreach ($_POST['Date1'] as $index=>$value) {
      		/**
      		*  Récupération de la valeur du tableau 2 dont l'index est celui du tableau 1
      		*/
        		$value2 = $_POST['Heure'][$index];
     
    	    	/**
        	 	* Construction de la requete de mise à jour ou de update function créer grâce au langage pl/pgsql
         		*/
        			$sql = "SELECT insertupdate($value2,'".$value."',$_SESSION[idformateur],$_POST[NomRetour])";
        			pg_query($Connect,$sql) or die ('Erreur dans le shéma');
     
    													}
     
    			echo "<p>Insertion des heures de". " ".$_SESSION['NomPrenom']." "."ok";
    			//je récupére ici le nom et le prénom pour l'afficher aprés l'insertion, une petite vérification visuelle
    			$_SESSION['PrenomNom']=$_SESSION['NomPrenom'];
    			unset($_SESSION['NomPrenom']);
      			echo "<meta http-equiv=\"refresh\" content=\"1;url=index.php?section=Registre\" />";			
     
    					}
     
    	else 
    	{
    		?>
    		 <form id="info" action="index.php?section=Registre" method="POST">
     
    		 <P><b>Vous avez mal not&eacute; une r&eacute;ponse</b></P>
    		<ul>
    		<li>Seuls les chiffres sont accept&eacute;s</li>
    		<li>Les d&eacute;cimales s'écrivent avec un point ex :12.75</li>
    		<li>Attention de respecter la d&eacute;cimale, 30 Min = 0.5</li>
    		<li>Il ne peut y avoir de case vide, le minimum est 0 </li>
    		<li>Maximum 2 chiffres avant le point.</li>
    		<li>Maximum 2 chiffres apr&egrave;s le point.</li>
    		</ul>
     
    		<table border =1>
    		<tr>
          <td><P>Nom du Participant</td>
    			<?php
     
    			/**ici on crée autant de cases que dans le mois numeroter de 1 à la fin du mois*/
        		$i=1;
       			 for($s = 0; $s < $_SESSION['num']; $s++)
        		{
    			?>
          	<td><?php echo($i); ?></td>
    			<?php
            	$i++;
        		}
    				?>
        		</tr>
        		<tr>
        		<?php
        		echo "<td><input  name=\"\" value=\"$_SESSION[NomPrenom]\"></td>";
    			echo "<INPUT type=\"hidden\"  name=\"NomRetour\" value=\"$_POST[NomRetour]\">";	
     
    			for ($i = 0; $i < count($heure); $i++)
        				{
    		?>
          <td><input maxlength="5" size="1" name="Heure[]" value=<?php echo $heure[$i]?>></td>
     
    		<?php
       					 }
     
    				?>
        		</tr>
      			</table>
     
    			<?PHP
    				for ($v = 1; $v < $_SESSION['num']+1; $v++)
        			{
    			?>
     				<INPUT type="hidden" id="date1" name="Date1[]" value="<?php echo (date($_SESSION['DateAnnee'].'-'.$_SESSION['DateMois']).'-'.$v)?> ">
     
     
    		<?php
    	}
    	?>
    		 <input type="submit" name="envoi" value="Enregistrer" />
    			</form>
    			<?php
    	}
    					}
    						}						
        			}
     
    else {
     
    	echo "<p>Bonjour <b>".strtoupper($_SESSION['UserName'])."</B> bienvenu(e) dans le registre pour le mois de <b>" .$_SESSION['NomMois']." ".$_SESSION['DateAnnee']."</b><p>";
        /**fonction définnissant le mois choissi par le menuregistre.php */
    	$_SESSION["num"]= cal_days_in_month(CAL_JULIAN, date($_SESSION['DateMois']), date($_SESSION['DateAnnee']));
     
    ?>
    <form id="formulaire_1" action="index.php?section=Registre" method="post">
     
      <table border="1">
        <tr>
          <td rowspan="2"><p>Choix du participant</p>
            <select name="Nom" onchange="document.forms['formulaire_1'].submit();" >
            <option value="" selected> </option>
    <?php
    /** fonction créant le menu déroulant des personne inscrite dans l'association*/
        $sql = "SELECT idparticipant,parnom, parprenom FROM participant ORDER BY parnom ASC ";
        $result = pg_query($Connect, $sql);
        while ($row = pg_fetch_array($result))
        {
            $id = $row["idparticipant"];
            $valeur = $row["parnom"] ." ". $row["parprenom"];
    ?>
              <option value="<?php echo($id); ?>"><?php echo($valeur); ?></option>
    <?php
        }
    ?>
            </select>
          </td>
          </tr>
          </TABLE>
          <TABLE border="1">
          </FORM>
          <tr>
          <td><P>Nom du Participant</td>
    <?php
    /**ici on crée autant de cases que dans la mois numeroter de 1 à la fin du mois*/
        $i=1;
        for($s = 0; $s < $_SESSION['num']; $s++)
        {
    ?>
          <td><?php echo($i); ?></td>
    <?php
            $i++;
        }
    ?>
        </tr>
        <tr>
     
     <form id="info" action="index.php?section=Registre" method="POST">
     
    <?php
    if (isset($_SESSION['idParticipant'])) {
     
     
    /***
    Ici on récupère le nom et le prénom du participant suite au javascript du menu déroulant
    afin de l'afficher dans le <td> Nom du participant
    */
    $sql2 = "SELECT idparticipant,parnom, parprenom 
    		FROM participant 
    		WHERE participant.idparticipant= $_SESSION[idParticipant]";
    $resu1 = pg_query($Connect, $sql2);
    $affiche = pg_fetch_array($resu1);
     
    $_SESSION['NomPrenom']= $affiche["parnom"] ." ". $affiche["parprenom"];
     
     
    /**ici on crée le même nombres de case mais avec récupération des valeurs inscrite dans la base de données
    et on crée un champs caché avec les dates du mois*/
     
    $recupsql = "SELECT * FROM registre WHERE regjour  >='$_SESSION[DateAnnee]-$_SESSION[DateMois]-01' AND regjour  <'$_SESSION[DateAnnee]-$_SESSION[DatePlus]-01'
    AND registre.idparticipant=$_SESSION[idParticipant]
    AND registre.idlogin = $_SESSION[idformateur]
    ORDER BY regjour";
    $soluce = @pg_query($recupsql);
    $row = @pg_numrows($soluce);
    }
     
    if ($row!=0) {
     
     
    echo "<td><input  name=\"\" value=\"$_SESSION[NomPrenom]\" align = \"center\" ></td>";
    echo "<INPUT type=\"hidden\"  name=\"NomRetour\" value=\"$_SESSION[idParticipant]\">";	
     
    while ($row =pg_fetch_array($soluce)){
     
     
    	echo "<td><input maxlength=\"5\" size=\"1\" name=\"Heure[]\" value=\"$row[regheure]\"></td>";
     
    }
    }
    else {
    	echo "<td><input  name=\"\" value=\"$_SESSION[NomPrenom]\"></td>";
    	echo "<INPUT type=\"hidden\"  name=\"NomRetour\" value=\"$_SESSION[idParticipant]\">";	
    	?>
     
    	<?PHP
    for ($v = 1; $v < $_SESSION['num']+1; $v++)
        {
    ?>
          <td><input maxlength="5" size="1" name="Heure[]" value="0"></td>
     
    <?php
        }
    }
    ?>
        </tr>
      </table>
     
    <?PHP
    for ($v = 1; $v < $_SESSION['num']+1; $v++)
        {
    ?>
     <INPUT type="hidden" id="date1" name="Date1[]" value="<?php echo (date($_SESSION['DateAnnee'].'-'.$_SESSION['DateMois']).'-'.$v)?> ">
    <?PHP
        }
    ?>
     
     <input type="submit" name="envoi" value="Enregistrer" />
    </form>
    <a href="Excel/AfficheDonnee.php" target="_blank">Voir le r&eacute;sultat</a>
    <?php
    if ($_SESSION['heure']) {
    ?>	
    	<table border =1>
    		<tr>
    		<td>Dernier enregistrement</td>
          		<?php
     
    			/**ici on crée autant de cases que dans le mois numeroter de 1 à la fin du mois*/
        		$i=1;
       			 for($s = 0; $s < $_SESSION['num']; $s++)
        		{
    			?>
          	<td><?php echo($i); ?></td>
    			<?php
            	$i++;
        		}
    				?>
        		</tr>
        		<tr>
        		<td> <?php echo $_SESSION['PrenomNom'] ?></td>
    			<?php	
    			//unset($_SESSION['PrenomNom']);	
    			for ($i = 0; $i < count($_SESSION['heure']); $i++)
        				{
    		?>
          <td><?php echo $_SESSION['heure'][$i]?></td>
     
    		<?php
       					 }5
     
    				?>
        		</tr>
      			</table>
     
    	<?php
    }
    }
     
    ?>
    Voici le même aujourd'hui

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    $registre = new Registre($_POST['mois'],$_POST['annee'],$_POST['id_participant']);
    A ton avis, quand je dois modifier mon code, lequel est plus facile pour moi?

    Je ne gagne pas quelques milisecondes, je gagne des heures à ne pas essayer de comprendre ce que j'ai voulus faire.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    1 - un code propre est à la fois simple (pas de fonctionnement tortueux), efficace (on utilise les fonctions et methodes adaptées) et bien organisé (bien présenté et facile a relire).
    On voit que les élements vont plutot dans le meme sens : si le code est simple, il est facile a relire et comprendre ; si le code passe par des chemins invraisemblables pour obtenir obtenir un resultat il sera illiisble et peu efficace.

    2 - A l'inverse : pourquoi gaspiller du temps et des ressources ?
    Comme l'indique Maitrepylos, un code sale est surtout un code dont personne ne peut plus rien faire a part son auteur (et encore pour peu qu'il ne se soit pas passer trop de temps).

    3 - La question a se poser est surtout : existe t-il une meilleure maniere de faire ?
    Sachant que parfois on est dépendant d'autres choses et qu'on est donc obligé de faire des concessions.

    Voir aussi :
    http://fr.wikipedia.org/wiki/Principe_KISS
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut
    MaitrePylos: Tout à fait d'accord sauf que ta classe Registre, elle a l'air de quoi

    Donc la "propreté" du code est complètement subjective. À deux codes efficaces, quelqu'un peu trouver que son code est simple, lisible et facile à modifier et l'autre peu trouver que ce n'est pas le cas.

    Je vous donne un exemple, une personne avec qui j'ai travaillé disait avoir du code propre et était très anal à propos de la chose. Mais pour quelqu'un qui ne connaissait pas la façon dont c'était fait, il fallait remonter une échelle incroyable pour aller modifier du code. C'était l'enfer. Mais pour lui qui a étudié cette méthode à l'université en France, c'était du code propre.

    J'ai un autre collègue maintenant qui se limite beaucoup pour ne pas sâlir le code et ainsi brime les demandes des clients malgré que je sache que ces choses sont techniquement possible.

    Je crois qu'un code propre est clair et facile à modifier, lisible, bien commenté mais aussi flexible. Est-il possible de rajouter des trucs imprévus?, etc...

    Mais à date, les exemples de code propre que j'ai eu dans ma carrière n'était pas tellement propres et étaient souvent beaucoup trop compliqué pour rien (donc pas KISS du tout...)

    Et il faut aussi choisir entre sauver quelques millisecondes de chargement et le temps d'ajout, de correction et de modification du code.

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Est-il possible de rajouter des trucs imprévus?
    C'est un problème que je rencontre souvent : la gestion des particularité fait qu'on est obligé de salir un code très générique.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    FoxLeRenard
    Invité(e)
    Par défaut
    Citation Envoyé par sabotage Voir le message
    1 - un code propre est à la fois simple (pas de fonctionnement tortueux), efficace (on utilise les fonctions et methodes adaptées) et bien organisé (bien présenté et facile a relire).
    On voit que les élements vont plutot dans le meme sens : si le code est simple, il est facile a relire et comprendre ; si le code passe par des chemins invraisemblables pour obtenir obtenir un resultat il sera illiisble et peu efficace.

    2 - A l'inverse : pourquoi gaspiller du temps et des ressources ?
    Comme l'indique Maitrepylos, un code sale est surtout un code dont personne ne peut plus rien faire a part son auteur (et encore pour peu qu'il ne se soit pas passer trop de temps).

    3 - La question a se poser est surtout : existe t-il une meilleure maniere de faire ?
    Sachant que parfois on est dépendant d'autres choses et qu'on est donc obligé de faire des concessions.

    Voir aussi :
    http://fr.wikipedia.org/wiki/Principe_KISS
    Oui oui l'Ami, c 'est ce quatriéme point le plus inacccessible , et pourtant les génis ne s' expriment qu'en KISS

  7. #7
    Modérateur

    Avatar de MaitrePylos
    Homme Profil pro
    DBA
    Inscrit en
    Juin 2005
    Messages
    5 496
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : Belgique

    Informations professionnelles :
    Activité : DBA
    Secteur : Service public

    Informations forums :
    Inscription : Juin 2005
    Messages : 5 496
    Points : 12 596
    Points
    12 596
    Par défaut
    Citation Envoyé par Prosis Voir le message
    J'ai un autre collègue maintenant qui se limite beaucoup pour ne pas sâlir le code et ainsi brime les demandes des clients malgré que je sache que ces choses sont techniquement possible.
    Il a simplement de la chance que je ne suis pas son employeur

    Un code propre et correcte, n'a rien à voir avec la complexité d'un code propre et lisible.

    Ce n'est pas parce que c'est difficile à faire qu'il faut bâcler ou à l'inverse ne pas le faire.

  8. #8
    FoxLeRenard
    Invité(e)
    Par défaut
    J'avais dans ce fil, répondu a Sabotage mais pas vraiment a la question,

    je suis assez OK avec ce qui a été écris mais justement un point est sur, c' est comme une maison, on l'achéte, puis on vit dedans on l'adapte on bricole, répare entretient etc ... et aprés "il y a ce je ne sais quoi" qui fait que c'est plus NET comme le jour de l'achat ,


    J'ai un autre collègue maintenant qui se limite beaucoup pour ne pas sâlir le code et ainsi brime les demandes des clients malgré que je sache que ces choses sont techniquement possible.
    ceci procéde de la même constatation,

    Alors je répond a ma façon,

    Un code propre est un code bien écrit, bien maintenu, et réguliérement réécrit complétement !!!

  9. #9
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Points : 44 155
    Points
    44 155
    Par défaut
    Malheureusement c'est ce que je disais : on commence par une belle autoroute et on a besoin (ou parce que le client le veut) de traiter de multiples cas particulier qui font autant de vilaines deviations dans le code.
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  10. #10
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 691
    Points : 20 222
    Points
    20 222
    Par défaut
    Pour coder propre faut déjà je pense se forcer à suivre une norme de codage. Quand toutes les variables son nommée de la même facon par exemple ça aide beaucoup.

    Après il est à mon sens évident que la POO aide grandement à garder du code clair , tout comme séparer les différente couches.
    C'est quand même autrement plus agréable d'ouvrir un fichier php et de n'y voir que du code pur et pas des bout d'html partout.

    Malheuresment , dans mon cas en tout cas , il est extrêment difficile de garder du code propre tout au long d'un projet quand je developpe pour des clients.
    Bien souvent il ne savent pas ce qui veulent. Rajouter une toute nouvelle fonctionnalité n'est en soit pas problématique mais quand elle change radicalement le comportement initial et que ca doit être fait pour hier , et bien on va hélas au plus rapide....

    (ca se sent que je viens d'avoir une demande à la con ? )
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  11. #11
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 101
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 101
    Points : 8 211
    Points
    8 211
    Billets dans le blog
    17
    Par défaut
    Mon grain de sel :

    La programmation lettrée (ou programmation littéraire) est une approche de la programmation préconisée par Donald Knuth.

    « Je crois que le temps est venu pour une amélioration significative de la documentation des programmes, et que le meilleur moyen d'y arriver est de considérer les programmes comme des œuvres littéraires. D'où mon titre "programmation lettrée".

    Nous devons changer notre attitude traditionnelle envers la construction des programmes : au lieu de considérer que notre tâche principale est de dire à un ordinateur ce qu'il doit faire, appliquons-nous plutôt à expliquer à des êtres humains ce que nous voulons que l'ordinateur fasse.

    Le praticien de programmation lettrée peut être vu comme un essayiste, qui s'attache principalement à l'exposition du sujet et à l'excellence du style. Un tel auteur, le dictionnaire à la main, choisit avec soin les noms de ses variables et explique la signification de chacune. Il cherche à obtenir un programme qui est compréhensible parce que les concepts ont été présentés dans le meilleur ordre pour la compréhension humaine, en utilisant un mélange de méthodes formelles et informelles qui se complètent l'une l'autre. »
    http://fr.wikipedia.org/wiki/Programmation_lettrée



    2-Avec les serveurs qui existent aujourd'hui, est-ce vraiment pertinent de sauver quelques millisecondes de traitement?
    Oui, surtout quand elles peuvent être facilement sauvées. L'exemple le plus courant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ( $i = 0 ; $i < count($grosTableau) ; $i++ ) { ...
    Si $grosTableau comporte 10 000 éléments alors en faisant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $n = count($grosTableau) ;
    for ( $i = 0 ; $i < $n ; $i++ ) { ...
    ... on économise 10 000 appels à count( ), ce qui n'est pas négligeable.

    3-Faut-il s'empêcher de faire certaines choses parce que, techniquement, ça n'est pas propre?
    Ah là ça devient philosophique
    Un problème exposé clairement est déjà à moitié résolu
    Keep It Smart and Simple

  12. #12
    Membre habitué
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 440
    Points : 184
    Points
    184
    Par défaut
    Philosophique peut être

    Mais je me vois mal en train de dire à mon patron ou à un client que je ne peux pas faire ce qu'il demande parce que le code n'est pas propre...moi quand mon patron me dit "Est-ce possible?" je réponds en général "Oui" à moins d'être certain de ne pas pouvoir le faire.

Discussions similaires

  1. Mes conseils pour avoir un code propre
    Par vtuning.net dans le forum Contribuez / Téléchargez Sources et Outils
    Réponses: 6
    Dernier message: 08/11/2007, 16h46
  2. Conseil pour développer une application
    Par karim15 dans le forum Delphi
    Réponses: 1
    Dernier message: 05/02/2007, 17h09
  3. [MySQL] Réaliser un script de statistiques : vos conseils pour l'architecture de la table ?
    Par MaTHieU_ dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 26/08/2006, 00h46
  4. [Architecture] Conseil pour développement appli Client/Serveur
    Par etiennegaloup dans le forum Développement Web en Java
    Réponses: 11
    Dernier message: 22/01/2006, 11h44
  5. Réponses: 10
    Dernier message: 31/12/2005, 20h10

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo